It's one of the most common challenges to overcome when starting out as a programmer. And it's a perfectly normal thought pattern, though not one that is much welcomed. So what is it and how do you get rid of it? Let's go over a few ways in which you can at a minimum begin to decrease that anxiety of not-enoughness when writing code and come to realize that just maybe, everything is fine and we aren't going to catch fire and lose every job ever.
First let's start with what it is. Here is a formal definition from the internet. From Wikipedia to be exact, because that is as formal as I can kind of get these days. Impostor syndrome is defined as:
A psychological pattern in which an individual doubts their accomplishments and has a persistent internalized fear of being exposed as a "fraud".[1] Despite external evidence of their competence, those experiencing this phenomenon remain convinced that they are frauds, and do not deserve all they have achieved.
If this sounds like you, then congratulations. You have a syndrome. A long with others, such as hunger and not feeling great always. These are also detrimental to your overall well-being to some extent.
I have a theory that the only reason that we suffer from such things as these, is because things have gotten too easy in our society, and as such it's getting more difficult to find more naturalistic problems, such as stampedes and wild cougars circling our camp grounds. So we invented a few, and feeling inadequate is one of them.
Impostor syndrome is a part of the human condition. It is as natural as feeling hungry or fearful during tough situations. And we should treat it as such. There is no real magic pill that you can take so that you don't feel inadequate doing a task. But there are certain steps that you can take to reduce it and to just not let it bother you really so that you can focus on get your work done.
Why it can be a good thing
If you are working on something where you don't break a sweat and can get it done in a relatively short amount of time, then we tend to think that that's the ideal situation to live in. Wrong. If you were given something that's even a hair-pinch more difficult than that one day, you will undoubtedly panic to some extent and curse the person that handed you such a project. How dare they challenge your current skillset. I'd say, it's more beneficial to feel inadequate working on something and asking for help then to spend years of your life doing simple and trivial tasks that require little challenge. Just imagine if video games never got as complicated as Level 1. If you never needed to upgrade your HP and MP and just had to run straight for 2.5 minutes.
Impostor syndrome can also be interpreted as one other thing, and maybe more of you can relate better to what I'm going to say next. You lack the confidence in your current skillset. Even the best race car drivers today still have to go through a loss somewhere in their timeline and career. Even they get nervous stepping into that car with decades of experience.
Maybe you won't know where to start or even how to do this new task. This is normal. Maybe you will think that it is impossible to accomplish and that you will be fired pretty soon. Also normal. You will either sit there and not figure it out, in which case you might be fired. Or you will adapt, learn, get stronger and come out victorious on the other end, after you do some due diligence and get to learning.
Because overcoming it will require some form of action from your part. You have to physically pick up a book, or laptop, or scroll and such and learn this thing which you feel unfamiliar with. Again, totally normal. This is the whole reason why we have the concept of books. To transfer cultural and societal knowledge from generation to generation.
3 ways to deal with it
1. The main way to deal with impostor syndrome is to take on more difficult tasks in your day to day work life. This is where most people fall short. They want to magically get the required skills with the most minimal amount of work and be considered amazing. Why should I have to study more than that other person? they say. And the truth is, you don't have to do anything. You can stay at your current level and feel inadequate until you are tired of feeling that way. At some point, you are going to have to face it. Whether you get handed a difficult task at work, or whether you get laid off, there will be some trigger that will inevitably push you forward.
2. Get the hard part over with as soon as possible. When you step into a cold shower, you only feel the cold once. And eventually everything settles and you acclimatize to the temperature and the environment. Humans are phenomenal creatures of acclimatization. Instead of repeating what you know already, multiple times for hours or even days, focus on the parts that you don't know just yet, but that you would like to know.
3. Another approach that you can take is to realize that there are indeed people better skilled at this than you. Vastly more superior in most ways of your craft. But they probably don't work at your company. More than likely, you'll work with people that are somewhat close to where you are from a skills perspective. They also struggle sometimes and they also ask questions and eventually they get better.
You might never encounter these phenomenal people in fact. And that's quite alright. You work will still be appreciated by your close circle of co-workers and friends that rely on your skills to get their job done.
And lastly, ask yourself this one question.
Have I ever not learned a skill that I have today?
You learned to drive, to speak a language, to read (if you are reading this) and probably hundreds of other seemingly trivial things. But none are trivial. They are just too easy for you now and you don't notice them. But on the first day on the road driving by yourself, you should technically feel like an impostor. You are sharing the road with thousands upon thousands of other drivers with years of experience and tons of steel moving at phenomenal rates. And here you are with a paper permit and limited ability to determine pedal pressure, distance and have no predictive model yet of other drivers tendencies.
But eventually, you forgot about the process and you just drove to destination B without a hitch. And the same is true for programming and for learning anything else really. Your first project is going to be way harder than your 10th, by orders of magnitude. So feel comfort in the uncomfort and realize the uncomfort is just the feeling of you learning something new. And if you panic and run away, which is common, that challenge will still be there waiting for you for whenever you decide to come back.
It sucks, and no one likes going through it. But the rewards will always present themselves at the most opportune time. Mainly when you are about to collapse over a coffee-stained keyboard, only to discover that your code stopped giving your errors and that the output was what you expected and you won't be fired. And you'll then be ready to do it all over again.