Coping with Imposter Syndrome as a Developer
Imposter syndrome is a collection of feelings of inadequacy and
incompetence that persists, despite your obvious evidence of success
There are two types of engineers: Those who’ve experienced the infamous imposter syndrome and those who won’t admit it. Imposter syndrome is extremely prevalent in the developer community. Ask someone you look up to if they’ve ever felt like they don’t deserve the job they’re at. I would characterize imposter syndrome as a lack of confidence in one's abilities and skills.
I don’t speak from an authoritative point of view, but rather as a peer who has had to deal with imposter syndrome all my life. I have to ask myself, do I want to carry this anxiety for the rest of my life, or do I want to have a chance to enjoy sunsets, like the normal person I aspire to be.
If the above rang a familiar bell, this article is just for you. I’ll shed light on ways to cope with imposter syndrome and eventually beat it. Hopefully, as a result, you’ll become a more confident and happier person.
Just Because It’s Hard Doesn’t Mean You’re Not Good at It
Programming is hard. Like really, really hard. There, I’ve said it. I’m not a prodigy at coding, but I never gave up, and neither should you. Programming is humbling — there’s so much to know. Accept the fact that it’s not possible to know everything about programming, computer science, and maths.
There’s a real reason why you don’t work alone on massive projects. Teams allow you to allocate more time and more thought power to the parts of the field that you specialize in.
Think about it this way: I’m sure you at least once saw a post where a company was persistent in finding “unicorns” who can do everything. You name it — front end, back end, dev ops, iOS, Android, and a backflip blindfolded. Without a doubt, it’s an insane request. Why do we put so much burden on ourselves to know everything, causing the inevitable cascade of imposter syndrome effects, when we laugh at the mythological job requirements.
Learn to Say No
For some reason, it’s remarkably hard to say no when someone is visually excited about a project and wants you to hop on the train. Agreeable people tend to struggle with this more than less agreeable folks.
I’m sure there are people who said ‘no’ to Google, Apple, and Facebook when asked to join. I know, make one mistake, and miss the big show. It’s incredibly painful to live with the idea that you could have been a zillionaire if you just said ‘yes’ and joined the project. Those cases are extremely rare, though.
Knowing when to say ‘no’ is a skill. Like with all skills, it’s trainable, and with time, you can become better at it. You should always keep your ears open and be open to new ideas. As a developer, we’re students for life, and we shouldn’t forget that.
A decision-making framework: Here’s how I decide between a ‘no’ and a ‘yes’
Here are a couple of questions that should reveal how you feel about a project and whether you’re tilting more toward a ‘no’ or a ‘yes.’
- Can you honestly commit to this project full-time for at least six months?
- What happens if you get bored or tired of the project? Are you able to continue and push through when things get tough?
- Are you getting paid? Do the bills get paid or do you have to live on previous savings?
- What happens if a co-founder leaves or dies. Will the project die overnight? Who will be the captain if a storm approaches?
- Are you excited about the future of the project? Or are you apathetic? Do you dream about the project and can’t stop writing code?
I bet if you take the time and go through the questions, you’ll find some clarity as to what to do.
Exercise, Exercise, Exercise
I’m a big advocate of moving your body, literally. We’re not genetically born to live stationary lives. But what am I supposed to do if I want to work and meet my absurd deadlines? Do I just get up and not work? I know, it’s hard — this is something I’m also personally struggling with since I want to get stuff done like you. Acknowledging the issue is already half the battle won.
Imagine if you could buy only one car for the rest of your life — I’m betting my savings that you’d take good care of that car. You would change the tires and oil and bring it to maintenance more than you normally would, right?
Well, if you agree with the above metaphor, think about this for a moment: We only get one body for the rest of our lives. Let me say that once more — one body, per person. That’s it, no refunds, no swaps, everyone has to deal with the cards they’re dealt with.
We only get one body for the rest of our lives. It would be foolish to not maintain it.
It doesn’t have to be a frenzy. Start small, but most importantly, start today. Like a well-known brand says, “Just do it.” The Chinese say the beginning is the most difficult part of doing something new. Most importantly, take the time to take care of your body.
If you’re feeling motivated but having difficulties picking a sport, here’s a cracker — Remember middle school? Can you remember what your favorite sport was at that time? Go with that choice as your first.
Become a Mentor, Teach Kids or Junior Developers
Remember when you started coding and wished someone took you under their wing and showed the way? I remember like it was just yesterday. I’m a self-taught programmer and I had no mentors to ask for help. Luckily, I knew English well enough and had the luck to be around when Stackoverflow and Google existed. I’m aspiring to be the mentor that I never had.
Teaching is humbling — there’s something about it that makes you appreciate what you’ve accomplished previously. Also, if you're like me and your personality type tilts more industrial — i.e. you have to literally work every day to feel sane — teaching fulfills that dreadful void.
Cynically, teaching also teaches you patience, a priceless skill to attain. I’m speaking as someone who lacked patience, only to work myself up to attain it. I’ve become a better brother, friend, and person thanks to that.
The next time you go to work, school, or contribute to open source, pick up someone's code, review it, and leave positive notes and ways to improve. When it comes to reviewing code and other people's work, It’s super easy to be insensitive. I know I’ve been an insensitive person at least a few times. By admitting it, I’ve grown as a person, and so will you.
Imagine if every pull request or bug report is a friendly note saying how much the users like using your application, and they include some pointers on how to improve. Those notes would be appreciated and motivate you to work harder, wouldn’t they?
Thanks for reading, I hope you found this article useful. If you’re having severe imposter syndrome symptoms, please note that I’m always open to friendly banter.