Does this sound familiar? You recently became a software developer and you worked with someone who is really good at software development. They are so good that you set a goal to be just as good as this person in the future.
Of course, such a change doesn’t happen overnight. Becoming a better software developer is a slow process. Because of this reason, sometimes you’re left wondering if you are making any progress. So, here are some things you can check for to see if you passed the beginner (junior) stage of being a software developer.
You Have Went Through Impostor Syndrome
“I have no idea what I am doing.” A phrase that software developers are all too familiar with. Even experienced developers feel this way when they tackle new technologies and or programming languages. The difference is how the developer handles the feeling of knowing he or she doesn’t know anything.
A beginner gets overwhelmed by the fact that they don’t know anything and let it be an obstacle that blocks them from succeeding. They began to think everyone else knows what is going on when some of them might be as lost as they are — they just don’t show it. On the other hand, an experienced developer goes off to learn what they don’t know to unblock themselves. So, if you were ever in a situation where you don’t know something but taught yourself the information, then you are probably beyond the beginner phase.
You Avoid Writing New Code as Much as Possible
You learned the hard way that writing perfect code is just a fairy tale. Every line of new code that you write needs to be tested and verified that it doesn’t introduce any bugs. Instead of writing new code, you learn to reuse code that has been tested.
You Use Libraries and Frameworks
This point ties in with avoid writing new code as much as possible, but I feel that it deserves its own section.
You learn to trust libraries and frameworks because they are tested and maintained. You stop trying to reinvent the wheel because you realized that the amount of work that goes into it doesn’t pay off.
When you find yourself needing to write your own code you always consult the documentation or search for libraries to make sure what you need doesn’t exist. If part of the functionality is out there then you opt to use it instead of writing your own code.
You Spend More Time Thinking Than Coding
You start to notice you’re spending more time thinking about the big picture of the project. You start to think about the architecture of the system you are building. You start to think where in the architecture would your code fit in. You start thinking about how would your code affect the other components of the system.
You Write Tests
The value of tests are undervalued and are also something that you don’t get taught in most schools. As you develop software more and more, you begin to see the value of tests. They act as a support for your code, not an enemy. Strong tests break when you introduce new code, which you slowly realize is not such a bad thing. It requires you to update the tests, which means you need to have a deeper level of understanding of your code.
You See Software Development as Problem Solving
Initially, you may view software development as coding. You envision what a software developer does all day is code. Then you compare that vision with reality and noticed a staggering difference. You noticed that you haven’t been coding much at all.
You have been fixing problems, working with your team to improve efficiency, and communicating with product managers to meet business needs. All of what I listed consist of close to no coding at all. However, over time you begin to understand that software development is way more than just coding. Software development is about problem-solving.
If you look at software development as solving problems then it ties in with fixing problems, improving team efficiency, and communicating with product managers to solve business needs. Coding is part of software development too, but it only makes up a small part of it.
You Care More About Clean and Maintainable Code
Initially, you just want to code something that works. You do not pay attention to adhering to an existing structure and convention. You have not thought about how the code you write will affect the existing codebase. You probably have an idea where this is heading… spoilers, it doesn’t end well. The result is code that works for that moment of the project’s state.
As soon as another part of the code change (e.g. refactor) the code you wrote, which should have no relation to the code change causes things to no longer work. Imagine if this was happening all over the place. How maintainable would that be?
I know a portion of you might not have experienced this (which is great!), but others would have gone through something similar as I described. And those developers learned the value of clean and maintainable code the hard way. So, if you’re already thinking about how to write clean and maintainable code, you’re probably way past the beginner phase.
I hope this post was helpful to you. If you found this post helpful, share it with others so they can benefit too.
Are you feeling like you are not a “true” software developer? Did this point help you figure out that you are on the right path to being a better software developer?
To get in touch, you can follow me on Twitter, leave a comment, or send me an email at steven@brightdevelopers.com.