The other day, I saw someone share a post about how they were feeling like they're lacking, not qualified for the dev position they're in and wanted advice on how to get themselves back up and move forward. This wasn't the first time I'd heard this from a developer, but that post got me thinking about when I was going through the same thing and how maybe the things that helped me could help someone else...and here we are :slight_smile:.
So what is this thing that so many developers are going though?
Unfortunately, it's so common it has a widely known name...Imposter Syndrome.
Imposter Syndrome is a very real mental issue (though not an official psychiatric diagnosis) that plagues millions of people all around the world...not just developers (but this is dev.to, so we'll just focus on us devs 😃). It often presents with personal feelings of self-doubt or unworthiness, even if others think the opposite. If left unchecked it can lead to anxiety and depression, and can even stifle growth and your ability to find meaning in the things you do. But what causes it?
It's believed there are many different factors that contribute to Imposter Syndrome, such as your upbringing (like high pressure from parents for a child to succeed), being in a competitive environment, or being a "perfectionist" (even just minor tendencies), just to name a few. But these alone are often not enough.
There is frequently some kind of trigger that causes someone to start feeling like an imposter. After a few successes, a sudden failure can cause someone to question their abilities, and start thinking "were those successes just luck?". Ironically, being given an award or promotion can trigger someone to feel like they don't deserve it. But one of the biggest contributers I've personally seen (and experienced) has been comparing oneself to other developers.
We're constantly seeing the work of others and comparing our own work to it. Whether we're reviewing someone's pull request, looking through posts and tutorials for some new thing we're learning, or just browsing the latest developer news, we're continually exposed to the talents of other developers. And it can be hard not to compare our own skills to those of the people that built those amazing projects.
The truth is, those people probably took tons of time to work on those things, and most likely have many more years of experience than we do in that area. But that doesn't stop us from thinking, "Geez, my work sucks compared to them", or "I could never build something like that". I know, I've been there. I've been a developer close to 10 years now, and I STILL feel the effects of Imposter Syndrome sometimes.
So what can we do about it?
First, let me just say something...You have earned the place you're at. You didn't accomplish all you have by chance.
Getting past Imposter Syndrome requires a mindset change, and that can be challenging to do. Changing the way you think is a habit. And like any habit, it takes time and effort to build. If you rely on quick successes or a single pep-talk to get over it, you're likey just "placing a box over a pile of dog 💩". You may not see it for a little while, but eventually someone is going to move that box. So how do we clean up the dog 💩?
The following are 5 things I actively try to do myself to overcome Imposter Syndrome. These are by no means a "silver bullet", but they have certainly made things better for me...and not just in regard to Imposter Syndrome. Since I started focussing on these areas, I've found that I'm happier, more motivated, and have expanded my circle of friends. Since they have been so possitively impactful for me, I thought maybe they would help someone else.
So finally, without any more delay, in no particular order, here are my 4 pieces of advice on how to overcome Imposter Syndrome.
Look for Success in Failure
I used to get frustrated when some bug would crash my app, or user feedback revealed that my design wasn't performing well. I thought I'd failed. That everyone was going to look down on me and lose trust in my abilities.
Getting upset over failure is a perfectly natural thing. But eventually I started trying to think of things in a more positive way. Fixing that bug that crashed my app only made my app better. I also learned a new way to do something while investigating it. Understanding what those users were saying gave me a better outlook on what they actually needed and what their problem really was.
We all want to succeed. But if you talk to any successful person, they will tell you that their road to success was littered with failures.
So when something doesn't work out and you feel like you failed, try to consider it with a more positive, open outlook. It may be a catalyst that causes you to learn something new, to make things better, or opens up an opportunity to colaborate with someone else you may not have otherwise.
Failures may mean something "bad" happened. But they also present an opportunity for something "good" to come.
Seek Better, NOT Perfect
Perfectionism doesn’t make you feel perfect; it makes you feel inadequate.
— Maria Shriver
I wish I had some clever anecdote for this, but sadly, I don't. As time went on, I gained more experience, and I had the pleasure of speaking and working with some incredibely talented people. I came to realize there's no such thing as the perfect dev, or the perfect software. There will always be gaps in someone's knowledge. There will always be bugs to be found and squashed, or optimizations to be made to some piece of software. Striving for perfection will always leave you coming up short. So instead, I like to offer this piece of advise...
Just try to be better than you were yesterday.
Maybe that means you learned something new. Maybe that means you fixed something that was broken or improved something that was lacking. Maybe that means you did something that made you healthier (mentally or physically). Remove the concept of perfection and instead, just strive to be better.
Something I like to do every few months is look back on the work I did 6 months to a year ago. When I do this, 2 things usually pop in my head. 1. "Ugh, how did that ever make it to production?! That code is terrible!". And then 2. "Geez, I've come a long way since then."
Seeing how much progress I've made alsmost always gives me a little boost. Even though I can't really see it each day, having confirmation that I'm actually getting better really makes a difference in my mindset. Maybe it will for you too?
Talk to Someone
There's a reason therapy is so widely used and recommended. Talking to someone about what's going on with you and your life can be immensly helpful (not just for dealing with Imposter Syndrome). But when I say "talk to someone", it doesn't have to be a therapist.
Sometimes just talking with a colleague or mentor can be just as helpful. When I was going through feeling like I was an imposter early in my career, I was able to reach out to my manager at the time. When he heard I was having a rough time, we started going for walks around the block a few times a week or going out to lunch. Getting out of the office helped, and we were able to talk freely. This was immensly helpful for me.
If there isn't someone in your academic or professional circle that you feel comfortable talking with, perhaps look for a local developer oriented Meetup in your area (there are tons!). There are also great online communities if in person isn't an option for you. 2 communities that I personally enjoy a lot are Level Up Tutorials and the Javascript Mastery - Programming & Coding Community Discord servers.
Regardless of your situation, there is always someone to talk to. There is nothing wrong with reaching out to someone.
Find Meaning in What You Do
Okay, that probably sounds little cheesy, but it really does matter. It's hard to feel like an imposter when you are doing something or supporting something you find meaning in. Unfortunately, I can't tell you exactly how to do this, because finding meaning is a deeply personal thing. What matters to me isn't necessarily what going to matter to you.
When I talk with people about this subject, the first thing I ask is "What are you passionate about?" It doesn't have to be coding (it rarely is). Perhaps it's music? Maybe local art, sports or a particular area of study?
I've met people who are extremely passionate about environmental cleanup efforts who put their coding to work to help organizations that support that cause. One guy loved psychology, particularly around how people learn, so on his spare time he built an app dedicated to helping people learn and retain knowledge...now he runs his own business! I personally found I really enjoy teaching and helping young developers begin their careers.
Coding is one of those skills that can be carried to almost any walk of life. If you can find something you care about that gives you meaning in your life, that Imposter Syndrome has a tendency to fade pretty quickly.
Conclusion
I wish I could tell you that by looking for success in failures, seeking to be better than you were the day before, talking to someone and finding meaning in what you do, your Imposter Syndrome will just disappear and all will be well, but sadly that's just not how it works. I can, however, say that these methods have genuinly made my life better and my work as a software engineer more enjoyable and rewarding. I hope that by working to adjust your own way of thinking, that they will do the same for you.
Thank you, and Happy Hacking 💻!