Why do developers experience so much imposter syndrome?
Tags: impostersyndome, beginners, webdev, mentalhealth
Published: 2022-06-30 09:33:27

> The persistent inability to believe that one's success is deserved or has been legitimately achieved as a result of one's own efforts or skills. - Oxford Dictionary

<Divider />

Essentially a psychological occurrence in which someone (in the case of this article, a developer) doubts their skills, talents or accomplishments despite clear external evidence suggesting otherwise.

Almost every developer - irrespective of education or experience - has felt it at some stage of their career - and if they say they haven't, *I don't believe them.*

## Why is it so prevalent in software?
It's due to the very soul of the tech industry - a symptom of the open, free sharing, nature of the job. With so many different tech stacks, languages, paradigms, layers of logic and knowledge, it's literally impossible for a developer to know absolutely everything.

You _will_ come across someone that knows more about a topic than you do. 

Is it a language feature that'll set you off? A design pattern? Knowing how to host and distribute software? AI? Blockchain? Web3? SEO? Accessibility? Web design? Performance? Systems design? UX? 

We expose ourselves to as much as we can to make ourselves better in our roles - hell, the job itself is about constant learning to solve problems. **Our job is about learning things.** If a new ticket emerges tomorrow on your board and you don't know how to solve it, you're supposed to go and figure out how to do it. That's the job.

The modern web developer browses the internet daily for assistance, news and updates about their job - this culminates in more exposure to more things we don't know, and that can be a scary, scary thing for someone unsure of themselves in a professional capacity. Read something on Twitter? An article on Hackernews or Medium? Did someone just announce a new library on Reddit about something you feel like you _should_ know about?

Chances are, that can be the trigger for that anxiety and ultimately make you feel like an imposter, and that's before even considering how quickly things change around here. 

The rate that this industry moves is absolutely staggering. There is *always* going to be more to learn and it'll come at you at a pace that most humans can't keep up with. My team built a state-of-the-art marketing website with all the bells and whistles one could hope for around a year ago using some of the most bleeding edge, production ready tech available. Today, spending six hours on Twitter and Hackernews will tell you that your tech stack is archaic and that you should be building everything in [Deno](https://deno.com/deploy) and [Fresh](https://deno.com/blog/fresh-is-stable). 

## So, what is the cure?

Honestly, it never really goes away. **Sorry, but that's the truth**.

At the time of writing this, I'll have been working as a professional Software Engineer for over 9 years.

I have worked with engineers to create software that has won accolades, won hackathons against a plethora of talented engineers, been promoted several times across multiple organisations and now lead a team due to my _supposed_ knowledge. **But it doesn't matter** - every now and then (*read: weekly*) I'll see something online or talk to someone and feel like I'm a fraud. It happens. I know this is the case for other engineers I've spoken to as well, but even if there's no cure, there _is_ medicine to relieve the symptoms. 

<Divider />

### Embrace the opportunity
Re-frame your mindset. If you come across a person or an experience that triggers that feeling of not knowing, take the bull by the horns; ask questions, admit that you don't know something and take it as an opportunity to learn and get better. It's better to be humble and admit you don't know something if it presents a chance to fix it.

Do you find that there's an insurmountable number of things that you need to learn? *Prioritise*. Write them all down, score them according to their importance, or how much they interest you or perhaps which topic would be most relevant. 

Life is about learning - embrace the opportunity to learn something today that you didn't know yesterday.

### Embrace what that desire to learn really means
If not knowing something is upsetting you, it's likely that it's because you care and you want to improve. If you have the capacity and desire to be honest about what you know and don't, are able to learn new skills, tech stacks and paradigms then that's as much of a definition of the job as there'll ever be.

Recognise that and recognise that it's a better situation to be in than thinking you know everything. You don't. No one does.

### Rationalise the facts
Start listing the facts. 

**Out of the following scenarios, which is more likely?**
* That you scammed your way through all of your credentials, tricked every experienced interviewer you met and bamboozled a company into paying you a good salary to do a job you're not equipped to do

Or

* You know how to do your job, you've proved that through a series of rigorous tests which _are researched and designed by "the professional developers" to weed out candidates_, and met the criteria of a company willing to pay someone an agreed upon wage to do a job they believe you can do

Be really honest with yourself here. 


### Encourage your peers and promote collaboration
Software development is a team sport - almost every single product worth its merit - be that a website, an open source library you use, the circuit powering the device you're reading this on - has been built by a team of people with different skills all working together.

* Encourage teamwork 
* Recognise failure as an opportunity to learn and celebrate wins together 
* Pair program 
* Mob program 
* Write the code together
* Write the systems design document in a group
* Collaborate
* Teach each other
* Tackle open source issues
* Inspire and challenge each other.

You'll be a better developer for it and you'll learn _so_ much more.

<Divider />

Ultimately, just remember that there will always be a higher bar to compare yourself against - the breadth of possible topics of expertise in this industry makes people feel like they're not up to scratch if they come across something they don't know and that's completely natural.

Jimi Hendrix couldn't play the guitar until he could.

Everyone is a beginner until they're not. 

Be okay with the fact that you might come across something you know nothing about, but take solace in the fact that you have the capacity to; you've proven that before.