I hate to admit it but certain stereotypes about developers kept me from even considering a career in programming for decades. I thought the same way that many people outside of tech still think - software engineering isn’t a field I’d ever be able to get into because developers must [insert stereotype of choice: have CS degrees from top universities, be terrible in social situations, know how to program FPGA chips at birth, etc].
I’m here to tell you that many of those entry-blocking stereotypes are invalid. In fact, common traits of the best developers are traits that you likely already have! Put plainly, you
can will be an amazing developer, even without that advanced degree in trigonometry.
Even at the most senior levels of engineering, you’ll never be expected to know everything. With so much information out there and with technologies changing and evolving every day, it’s impossible to know it all. No matter how long you’ve been in the software game there will always be more to learn: more programming languages to master, newer techniques to try, better ways to collaborate with others.
The best developers are the ones who embrace the change and who continually seek new opportunities to learn. These individuals adapt more quickly, develop and hone a broader range of skills, and are able to think more creatively. For these reasons, developers who love to learn also tend to enjoy their work more. And who doesn’t want to be happier at work?
A common misconception is that all software engineers are good at math. The truth is that most areas of software engineering don’t require math skills at all. What they do require is the ability to solve puzzles.
If you consider yourself the type of person who likes puzzles - whether you prefer jigsaw puzzles, logic problems, or you’re great at figuring out the ending of mystery movies midway through the film - you have a key trait common with the best developers. Coding - like puzzles - requires use of both sides of your brain (the left side for analytic thinking and the right for creativity) to answer questions like:
- Why did this break?
- How can I get this to work?
- How can I make this happen using the skills/tools available to me now?
- Why did this break? (yeah, I know this is on here twice but it happens a lot)
Writing code is a puzzle with so many unique correct (and also incorrect) solutions.
If you like to solve puzzles, chances are that you’re also good at recognizing patterns. Our human brains solve puzzles by looking for patterns among the information available to us.
From the day you start learning to code, you’ll similarly use patterns to solve problems. As you become more skilled, you’ll be able to quickly recognize problems similar to those you’ve encountered before and reuse code or similar solutions (aka software patterns) that work.
Any developer will tell you that a great deal of time at work will be spent troubleshooting and debugging your code. If you’re working with others, you’ll also need to fix errors in code you might only be seeing for the first time. Your success depends on your resilience as well as your ability to break up big problems into smaller parts in order to find a solution.
Debugging can be really frustrating - especially when you’re new. Invest time in learning to use the developer console and debugging methods in the language(s) you are programming in.
I mentioned this before but as a developer, you’ll never know everything. I’ll add that it’s impossible to retain all of that great knowledge you’ll be building at work. Chances are, you’ll find yourself Googling things like “what does git pull origin master mean” day after day.
Believe it or not, efficient Googling is an important skill for developers. No matter which programming language you use, Google (or whichever search engine you prefer) is going to be one of the most used tools in your tech stack throughout your entire career. Knowing what to put in the search will save you LOTS of time that would otherwise be spent reading through pages and pages of Stack Overflow questions to find the answer you're really looking for.