Issue 02
Jun 29, 2022 · 6 minute read
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
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.
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 and Fresh.
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 none of that will matter to my brain.
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.
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.
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.
Start listing the facts.
Out of the following scenarios, which is more likely?
Or
Be really honest with yourself here.
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.
You'll be a better developer for it and you'll learn so much more.
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.
Want to learn and master LiveView?
Check out the book I'm writing
The Phoenix LiveView Cookbook