What is programmer imposter syndrome?
Imposter syndrome symptoms:
- You’re either self-taught developer / programmer or a college educated one
- You feel like your fellow developers with fancier-than-yours university degrees have more knowledge than you do
- You lack confidence in your abilities as a developer and think of yourself as unqualified to accomplish the tasks in hand
- You think Googling almost every problem you have in hand isn’t what “real developers” do
- You’re afraid some day there will be some sort of restructuring in your company and your new superior and colleagues will find out that you’re a fraud!
- You may even live way beyond your means, your emergency fund is growing exponentially (actually this is a good thing!)
- You constantly hear horror stories about interviews and how technically challenging they are, especially if you’ve been with your employer for a long time
- You don’t believe in your ability to sell yourself to a new employer
These symptoms ring true to you?
Welcome to Software Development world! You’ll like it here.
Here’s the thing, what you’re experiencing is extremely common. Literally everyone has experienced the symptoms you’re going through at a point or another in their career. It’s as important to understand why you feel the way you’re feeling as it is to change your mindset. One doesn’t go without the other.
As in, let’s dig into the reasons why you’re experiencing imposter syndrome
Software development is an ever-changing field.
It’s a field that’s getting bigger by the day – literally! The demand has been outgrowing the supply for years now and there’s a ton of supply. Since more and more new developers arrive into the field, it of course encourages the development of new frameworks, programming languages and tools. But you knew what you were getting into, didn’t you? Looking at you, front-end developer. To prove my point, there’s an actual website that counts the days since the last
HTML page housing a
<div class="days">0</div> element.
iframe, is it at zero? I rest my case.
there’s an actual website that counts the days since the last
Movies, news articles, tech blogs (aside from this one of course), YouTube videos, etc. Media loves to showcase two types of software developers:
- The digital nomads that spends their days programming
AIon the beach for no longer than 3 hours before hitting yoga class
- The college / university dropout that automates their breakfast routine with a
Pythonscript and throws together a social media network that “disrupts the market through growth hacking and cloud computing, while making the world a better place”
Obviously, the non-pirate, average programmer that’s excellent at his job programming and maintaining an ERP for a manufacturing company doesn’t make the headlines. Here’s an excellent quote by Steven Furtick to illustrate my point:
“The reason we struggle with insecurity is because we compare our behind-the-scenes with everyone else’s highlight reel.”
There is a misconception that all software developers are absolutely brilliant. Perhaps it was a prerequisite for software developers back in the 1980s where the go-to IDE was the notepad and 128k RAM was all they had to work with? Since then, programming languages, tools and practices have evolved and most software development is done at higher level, therefore, is more approachable. Today, we’re working with a different set of problems. Hardware limitations are no longer an issue, the pressure to stay up to date and therefore relevant to the market is.
The temporary, self-deprecating fix
These little white lies will make you feel better for the day
- Fake it ’till you make it!
- Everyone’s just winging it anyway
- It’s just something I’ll have to learn to live with (
The permanent, self-improving fix
Here’s what you can do that will last a career-length
1. Replace Fixed mindset with Growth mindset
Cliché? Sure. Even though ‘growth mindset’ is a buzzword, it has some weight to it. Take a look at how these two mindsets differ one from the other.
According to Carol Dweck from Stanford University, here’s what a “Fixed mindset” represents:
And, Carol’s definition of “Growth mindset”:
This translates into software development in the following way: if you don’t know how to tackle a task at hand, it does not mean that you’re stupid or incompetent or a fraud. It means that it’s your first time tackling this sort of task and you don’t know how to go about it – YET. Instead of shying away from tasks that you deem too challenging, you should challenge yourself in order to GROW, it’s the only way to go about getting smarter. There’s absolutely no personal or professional growth in performing the same tasks and duties forever I promise you.
2. Get the clear picture from your team lead
Your team lead is THE person you should seek feedback from. Not yearly, not quarterly. If possible, try to arrange a recurring meeting with your team lead or manager on either a bi-weekly or monthly basis. Doesn’t have to be long, 15-30 minutes would do.
In the one-on-ones, cover at LEAST these three points:
- Expected Short term specific improvements (2 weeks – 3 months)
- Expected Long term specific improvements (3 – 6 months)
- Your current strengths
These meetings are a strict necessity ESPECIALLY when you start a new job at a company!
Once you have some goals, discuss your progress with your manager at your regular meetings. Things change and so should goals, so don’t be afraid to refine or change goals as circumstances change.
3. Become a generalist with a specialty
As previously mentioned, the software development field is huge! You can’t master everything and you’ll probably end up learning a bit of everything along the way. What you can do is learn one thing, very well. Become the go to resource for that one specific thing and own it.
In any field, there is merit to the professional that has a decent understanding of the big picture while shining in what they specialize in.
4. Don’t shy away from asking questions
Ever, but especially in the first 3 months at a new position. If the code base is too much of a cluster for you to understand on your own, ask for help! If you’re not certain about what a method does – ask!!
There is definitely no stupid questions but there is a “preferable” time to ask about the basics – during your probation. When you’ve been maintaining the same code base for a couple of years it’s kind of expected of you to understand it.
5. Remain up to date on the job market trends
Try to keep contact with software developers from other companies as these are your main sources of information on where the trends are heading. Your ex colleagues, friends that work in the same field, college or university classmates are witness accounts on what’s going on in their companies. By comparing your current situation to the one of five others you’ll have a clear picture if too much is being asked of you – and this doesn’t mean quit your job!!! If you’re getting an intermediate developer’s salary while accomplishing senior developer’s tasks you should be compensated accordingly.
6. You kind of have to accept it
It never really goes away. As previously stated, the biggest challenge with imposter syndrome is to stop comparing your behind the scenes to others’ highlight reel. You’re not there when other developers and software engineers are struggling to understand and apply foreign to them concepts, you’re only there when time comes to shine with knowledge. Try getting on Instagram, do you compare your car with cars you see in the top “suggested posts” cars? Probably not, cause you know better.
The purpose of this point is to make you ACCEPT the fact that in your entire life time, even if you were to study and learn new things related to software engineering on a daily basis, you would still have a bunch to learn. Once again, it is too vast of a field to master. You should actually see it as an advantage – if you ended up in software engineering, it’s probably because you like computers. There will always be more to learn so you won’t ever be too far away from what you have learned in the past.
Thing is, there’s always going to be a software engineer that’s better than you, and one that’s worse than you. Even though you should definitely strive to be the best, it shouldn’t be your goal. The goal should be to be better than you were yesterday (one more cliché, you’re welcome).
The fact that you won’t ever be the best isn’t the most motivating thing, I admit. However, it is pretty liberating, isn’t it? You only have your yesterday’s to compare to.
Other tips to completely ditch imposter syndrome:
- Reflect on how far you’ve come and things you have accomplished. Just take a look at your GitHub code from a year ago? 2 years ago? 5?
- Constantly learn something new. Even if they’re general concepts. Specialize in one thing but have an understanding of other subfields.
- Radical acceptance.
- Treat your job as a learning opportunity – because it is one.
- Simply do your best on MOST days (being realistic here). By doing your absolute best you certainly won’t blame yourself in case things do go south.
- Tell yourself “Good ole’ Imposter Syndrome is acting up again” out loud when it does. Self talk is a thing.
Contribute to this guide
If there are ways to overcome imposter syndrome that aren’t featured in this guide and that have worked for you, please consider sharing with us and we’ll be sure to update this guide in order to benefit a larger audience!