What is impostor syndrome? It's when you doubt your skills, value, or accomplishments to the point where you feel like you don't belong (see Wikipedia for more). This blog post focuses on impostor syndrome specifically in software engineering.
How do you overcome it? Easy: change your thoughts. 🙃
As you read, try not to push back against each and every point by identifying how it won't work for you, even if your situation truly is different somehow. The goal is to realize that you do provide value and that you have accomplished things.
I've split this into two sections:
If you're a junior developer, comparing yourself against a senior developer is outright unfair. They may have more years in the industry, more experience with the technologies you use, etc. You may think I'm about to say "compare yourself against other junior developers", but that's still comparing apples to oranges in a way. The only person you should be comparing yourself against is the old you. That's the only person who had the exact same circumstances that you had.
Ask yourself: "am I more effective now than I was a week ago? A month ago? A year ago?" For me, at any given point in the last ~15 years, when I would look back at code from ≥1 year prior, I would almost always think of how much better I could do if I were to rework it. That means that I learned! That should be the focal point in your mind.
The reason this blog post is targeted at software engineers is because the field is huge. It encompasses design, communication, planning, organization, delegation, coding, etc. You can be differing degrees of good at any subset of those areas.
Don't judge a fish by its ability to climb a tree. If you're great at refactoring systems but bad at justifying your designs during a meeting, you shouldn't focus on the weakness while forgetting about the strength entirely.
"Onboarding impostor syndrome" is what I'm calling the specific flavor of impostor syndrome that hits when you're new to a job. You feel like you're being flooded with terms, technologies, and processes, and it's hard to feel confident when you feel like you don't have ground to stand on.
While you shouldn't expect to be operating at 100% in your first days/weeks/months on the job, you still shouldn't feel like an impostor. Just like with learning a musical instrument, improper fundamentals could lead to months or years of undoing those patterns. This means that if you do feel like an impostor, be careful that you're not just relying on time to overcome it. I.e. explore, ask questions, make mistakes, and set aside time for learning.
Other people may not even be aware that you feel like an impostor. Maybe they think you're doing a great job. Let's consider the opposite scenario: picture someone you know or work with that you think is doing well. You may be unknowingly instilling impostor syndrome in them. For that to even be possible, it must mean that you're doing better than you thought!
This "reverse impostor syndrome" is the biggest food for thought that I have in this section since it takes some time to unravel. For one, you'll probably never actually know who feels like an impostor, let alone whether you're the cause. But even stepping back to think that it's possible might help change your perspective.
As you become more senior in your career, you'll have to deal with more ambiguity. It can take "small" forms like "what priority should this task be?" or larger ones like "how do we get this service up and running in the next year?" It's easy to feel like an impostor when you encounter these ambiguous problems and realize that you don't have an immediate answer for them.
Imagine if you could quantify ambiguity, e.g. before writing this post, I was at a 17 for what I wanted to say, but now that I'm almost done, I'm at about a 4. You'd be able to compare yourself exactly with everyone else at your job. However, we can't quantify ambiguity. For all you know, you could have the clearest picture in your mind compared to everyone around you. Impostors have a tendency to assume the opposite—that their ambiguity rating is triple what everyone else's is.
Ambiguity, by nature of not being concrete, cannot be dealt with directly. First, you have to make it concrete, then you can deal with it. The way one concretizes ambiguity is what's important. Talk to your co-workers about what paths they envision and try to see how they make these decisions. You may find out that your ambiguity rating isn't all that different from them.
(I'll make this point quickly since this will hopefully be irrelevant by 2022)
Working during isolation is not easy on people for tons of reasons, so if you can only trace your impostor syndrome to 2020/2021, then perhaps it's mostly due to isolation.
People don't tend to advertise how long something took or what their struggles were. Instead, you just see a design document or pull request that they produced and you think, "I couldn't have done that". Remember that they're just solving problems the same way that you would be solving them, and they're doing so incrementally.
Suppose you were to list all of your problems out to a co-worker. They might agree that some or even most of what you said are actually problems, but probably not that they're the same severity that you see them as. It's easy when you feel like an impostor to blow things out of proportion without realizing it. I think it's a defense mechanism: if the problems seem too large, then of course you couldn't be expected to solve them all! But now that you can't solve them all, you feel like you don't belong here anymore—that you're an impostor.
Try to identify which problems are "real". It's just like having to choose your battles in a friendship/relationship. Maybe writing tests takes you twice as long as everyone else on your team. Is it your biggest problem? If so, talk to your team about it. If not, try to figure out what the "real" problem is. Don't let the little issues pile up and add to your impostor syndrome.
Journal what you're proud of. Impostor syndrome stems from an inability to internalize your own accomplishments. If you feel like your accomplishments aren't tangible, then focus on what you've learned. Aim to write 1-3 things per day, even if they're small.
Here are some minor things that I've been proud of:
The other benefit of the journal is that it serves as a reminder when we tend to get negative. Do you remember your accomplishments from two years ago? Even when I stop to think about it, it's tough to think of which specific things I worked on or which problems I solved. With my journal, I can look back at those things to remind myself that I'm not an impostor.
This tip works two ways!
I mentioned earlier that you shouldn't compare yourself with your co-workers, and I still assert that. However, they are the closest to your situation both in terms of circumstances and responsibility. Talking to them about the issues you're facing with the intent to find solutions can potentially put a dent in your negative thinking.
Here's a more specific technique that's helped me: write down every question you have. "What does this function do?" "How did you come up with that design decision?" "Why are we using this technology?" In asking them, you'll get one of two benefits:
This is similar to journaling in that you first need to recognize what your accomplishments are, but then keep it in mind the next time a friend asks you how you're doing. I find that small communities are great for sharing accomplishments, e.g. a small subreddit or Discord server. The people there will likely care about what you've done, encourage you, ask questions, etc.
Everyone is different, so you need to find out what's worked for you and then remember it.
Your impostor syndrome likely wavers a bit such that you have highs and lows:
Impostor syndrome is insidious. It takes away from your sense of satisfaction and pride while raising your stress level. I wrote this post as much for others as I did for myself; I experienced impostor syndrome just last week, and I'm well into my career!
Please take some time to reflect on what you've read. If you feel empowered to work on your own impostor syndrome, then I urge you to pair action to impulse and commit to it in some way: make a calendar reminder, tell a friend, or add an item to your TODO list. Look at it this way: you've already taken the first step by reading this post. You can do it! 👍