Though this post applies primarily to people in tech, it is definitely applicable to everyone in whatever career you choose to pursue or are pursuing.
Relatively recently I made a tweet…
I have been into software for at least half my life now and there is at least one constant: the feeling of inadequacy. It is there sowing mustard seeds of doubt when you start out. It is there when you get your first internship role. It is there when you resume as a junior developer, mid-level developer. It is most certainly there when you become a senior developer.
I, and I’m sure you also, have at some point in time, dealt with this feeling of inadequacy. This is what this post is about. How I sometimes manage this feeling and how you can probably manage it too.
Things to absolutely accept
If you are just starting out, here are some things you have to learn to accept:
It will take time and effort. The amount of effort you put into it will help reduce the time it will take you to understand it but believe me; time is NOT optional. When you are embarking on the journey, accepting that it is a long and hard journey will make it easier to deal with the feelings of inadequacy.
It requires a lot of practice. In my opinion, I believe videos and articles have their place in the learning process, nothing teaches faster than mistakes. The problem with watching someone tell you how to do something is apparent when you have to do it by yourself without guidance. In my experience, learning the initial concept from an article or video is sufficient enough. The next step is throwing away your training wheels and going for broke.
The problem with using videos and articles exclusively is, it does not work this way in real life. Code breaks for a variety of reasons that the video will never be able to anticipate. Sometimes it’s a missing semicolon, other times it’s simply because an Elephant died in the Serengeti.
When you go for broke and start attempting to do things, you WILL make many mistakes. You will start feeling frustrated and you will consider quitting. These things will absolutely happen but as cliche as it sounds, persistence is what pays in the end. When you finally get it, you will have picked up so much experience along the way that you would never have gotten otherwise.
The things no one told you
It happens to everyone on any level of their career. It definitely happens to me at least. I know a lot of senior level engineers that face the same thing. Every one has to struggle with the feeling of inadequacy. You are not alone in this.
Most of the people you look up to also go through this. They have just had a longer time riding the wave and can potentially navigate it easier than you can. So as a side note, whenever you are going through the motions, talk to someone who has more experience than you and see how they get through this phase. It may help you to handle it better. The one thing you cannot afford to do though, is stop trying.
I recently joined a company in Hamburg and I had a hard time initially. I plagued myself with doubt and coupled with the stress of moving to an entirely new country, the struggle became worse. However, constantly reminding myself that I have not spent enough time (just 6 months now) to be able to master something that took years to build helps me deal with this anxiety.
Cut yourself some slack.
Remember that being in software development is hard. It is not a walk in the park. However, it is doable. Many people do it every day and many more will. You don’t need to feel dumb when you do not understand a certain concept. No. What you need to do it practice even more. Ask the right questions. If A confuses you, don’t ask about the entire alphabet, just ask about A. Sometimes understanding A is all you need.
Of course there is always another possibility. Maybe this just isn’t your thing. 🤷🏽♂️
If you have experienced or are currently experiencing this feeling, please leave a comment below, what you say might help others realize they are not alone. If you have some tips you can also share them below.