By Daniel Paschal – Lead Instructor LearningFuze Code School
I was reading an article on what it takes to be a successful web developer. It seemed to mirror what I believed were good traits and some we work to instill in the coding bootcamp. However it’s focus was very broad, going all the way up to senior developer in its supporting material.It made me think about what has made for successful students transitioning from College and coding bootcamps to the professional developer world. I’ve hired lots of people and I know the people I would want to work with again. These are the traits of people I have worked with, both in my professional life and in developers coming out of LearningFuze, that I saw as making them exceptional. Traits that, when I finally tried to adopt them, made me more successful as a developer.
Success in this case is measured, by me, by how much others want to have them on their teams and working with them. When you basically don’t need an interview or its a formality.
True traits of a successful/great developer:
- Bravery – There will still be fear. Any developer that never has a code that explodes on the first try isn’t trying anything new. Bravery helps you grow and learn and do the other things necessary to succeed.
- Humility – I have met plenty of coders that believed they were better than others. It’s a tempting lure. You know something, demonstrably, that others do not. Remember, however, that you once didn’t know it, either. Everyone’s path is different. While there may be lazy coders who lower the profession, there are also smug coders that also bring it down by being a pain to work with. Also humility allows you to ask questions of others and get tasks done more quickly!
- Honesty – In development, there are clear metrics if most things work or not. Maybe not work well or not (though that is debatable), but you clearly know when something doesn’t work. There is so much to do, it goes a lot better when you can just admit when something was a bad idea, bad implementation, or not done well.
- Inquisitiveness – It’s super easy to go with what you know and avoid your weak spots… eventually. In the beginning especially, you need to try many things. Figure out what you like and why. And if you don’t like something, figure out why others like it. Delve into the details and don’t take “huh, that was weird” for an answer. At least catalog it for a later thing to dive into and truly understand WHY it does what it does. CSS is a great example of this: super easy to be decent at it, really hard to explore its depths in its many implementations.
Breaking tasks down – Everything we do is likely to be complicated. Breaking it down to small steps makes it achievable. This may not seem like a quality, but it is when you consider you can train your brain to take everything around you and breaking it down into steps. It’s like reading board game instructions. It’s an acquirable quality to be able to write step-by-step instructions. Step-by-step instructions can be broken down into code more easily.
- Perseverance – To me this is an offshoot of bravery. The faith in yourself to know you will figure out a way, even if it isn’t obvious yet.
Here are traits that people may think are the bread and butter of web developers, but they are only an aspect of who we are. There are many cases where someone could have amazing levels in traits below but lack the traits above, and I wouldn’t hire them and know many wouldn’t either, or at least really weigh how much they can “stick them in a closet” to eek out some productivity.
So these are skills that are helpful, but they just won’t make you “great”.
- Smartness – I leaned heavy into this trait when I was younger. It kept me from realizing my true potential. I relied on being able to figure out anything, given enough time. However, because of that, I never explored a lot of concepts and really made them a part of my experience makeup.
- Experience – Obviously you’re not going to have a lot of this as a junior dev. This is a reward for doing things. Without the inquisitiveness to wonder, bravery to try things you don’t have experience with, humility to see lessons learned, honesty to admit when a solution doesn’t really work, or ability to break stuff down to make progress, you won’t get meaningful experience.
- Training – training is a true double-edged sword. Too often new developers go for shiny tools rather than meaningful foundations. Trends will change, tech will fall out of favor, and paradigms will grow and mutate. Foundational knowledge and the needed skills above will allow you to adapt rather than be told how to use something. Far too often I’ve seen people use code straight from examples and not dissect what the pieces means. I’m looking at you, express static folder example with the “path” function. Don’t be satisfied with “I looked at the docs and got it to work”. Master the foundations of your tools so when they change, you aren’t left in the lurch.
- Hard worker – This was a hard call for me, but there are so many people who aren’t effective workers that make this a real hit or miss trait. If you don’t break tasks down or explore options, you could be pushing an impossible boulder up a hill. Sure, you’re working hard, but is it working effectively?
There are many more skills that a developer can have, but these encompass most of the “great” traits.
So for all those out there looking for a quick path to greatness after attending a coding bootcamp or way to be the MVP in a team or company. There is no shortcut that I’ve found after 20+ years of trying except to be an awesome person, and that’s a person that succeeds in most any job.
Did I miss any skills? Did I mischaracterize anything in your view? Have you had different work experiences that make this list not work for you? Are you a junior developer and have issue with this list?
I would love to hear from you!