Hi there, yes you. I know everything about you how you have pretended to understand software development from A-Z, how you have mistakenly built a fantastic feature or application and how you have pretended to understand a new technology. You are just lucky ain’t you?
Well, you have always felt this way haven’t you and dreaded the day someone figures you out and discovers how bad of a software developer you are. Filled with a sense of self-doubt you become an impostor of your own self. You tend to forget all those hours you spent writing code, all the books you have read, the articles about why something is not working, the hours you spent watching YouTube videos, and lean towards the possibility that you were just lucky to be where you are today. We all get lucky sometimes we all do. Think about it you probably can build a full stack web application on your own from concept all the way to deployment but to center a div in front of your colleagues you feel you can't. The same colleagues that wouldn’t care less if you have an extra space in that function you wrote. And as a result, you start anticipating those small errors before they even occur, which in turn generates more errors. You start rewriting that function in search of that perfect implementation that doesn’t exist. Trust me a lot of software developers have felt this way and understanding impostor syndrome is relatively easy but knowing where it comes from is hard. All I know is it is an everyday battle. Here are four ways to improve as a software developer and add to all the amazing skills you already possess.
1. Skill Up
There are always new frameworks, new tools, and new languages. To be a good software developer enjoy learning new things, even if it means you become a beginner all over again. By developing experience in multiple frameworks or languages, you learn when and why to use specific tools, which makes you a better problem-solver and software developer.
2. Understand the fundamentals
Don’t be only good at using a particular tool or language understand the fundamentals of software development. Frameworks or particular languages are simply tools. The carpenter will tell you that his favorite tool is a hammer and the mechanic will say it’s the spanner, but it still doesn’t make it the “best tool to fix things”. All I am trying to say is to understand the basics of programming will put you in a position to pick up any new language or framework. And trust me with a strong fundamental you will be making your own framework in no time.
3. It’s Ok to copy code
As the saying goes “good artists copy, great artists steal”. Don't feel bad for repeating what you have seen people do before and reusing it for your projects. it can be very tempting to just copy and paste the code that someone wrote and watch it work perfectly. However, if you fail to understand the copied code the next time you encounter the same problem but in a different situation, that same code may not work anymore. My advice will be to learn what the code does exactly and understand how every part of it functions.
4. Think about the end users
You become a good software developer if you put the users first. It's important to consider your end-user throughout the software development process. While learning what they like and dislike will help you as a developer to understand behaviors and why a particular feature or update would be of benefit. So build software for users not to impress other software developers, unless you are building a framework by all means flatter us 😎.
Conclusion
Software development like any other profession needs constant evolution and improvements. Any software developer will at some point feel like a fraud, feel unworthy but it is about learning and growing. A software developer should strive to do their best at every effort, admit to failures and learn from them. The software development community is huge, and chances are someone somewhere solved the same problem you are struggling with so reach out and don't be shy.
Other Resources
freecodecamp.org/news/how-to-learn-programm..