The Imposter Syndrome in Software Development

“The impostor syndrome, is a psychological phenomenon in which people are unable to internalize their accomplishments. Despite external evidence of their competence, those with the syndrome remain convinced that they are frauds and do not deserve the success they have achieved. Proof of success is dismissed as luck, timing, or as a result of deceiving others into thinking they are more intelligent and competent than they believe themselves to be.”

This is the definition Wikipedia provides for “Imposter Syndrome”.

Are you always questioning yourself if all the other developers you work with are more talented than you are? You fear that people will discover that you are faking your skills and think you are a phony? And, …. are you a Software Engineer?!

The imposter syndrome is very common among professions where work is peer-reviewed such as journalism, writing, … and Yes: Software Development. It is a sign that you apply extremely high standards to yourself which is not in balance to how you view others. Pair-programming can be particularly stressful but also writing open-source software and activities which push you into being genuine.  But keep in mind people with true ability tend to underestimate their relative competence.

I’m well aware of how us software engineers are judged. The industry still believes that the best programmers have no hobbies other than software development. And when we go home after a 12 hour work day, we’re expected to recharge our batteries while hacking away on some pet-project or busy ourselves learning one of the latest programming languages, which are all the rage now.

Unfortunately this behavior doesn’t actually make us better programmers. What it will make you though is a burnt out programmer.  Even worse, if all your input in life is from data/info/books/discussions related to programming, I’d go as far and say: You will not only turn into non-interesting individual, but eventually even lack the ability to see the bigger picture in your own tech projects!

Don’t believe me? Consider this: It’s 03:00 AM and you’re hunting for one of the hardest bugs you ever had to find in your code. You’ve already been stuck with this problem for the last 7 hours! You finally you give up and get back to your desk few hours later (after some sleep or a walk with your dog). Voila! You found the problem by doing nothing. Actually your mind found the problem!

Chances are you know this pattern very well and always wondered why sometimes the hardest bugs seem to get fixed by letting go.

The same applies on a macro-level. If you allow your mind some rest on a regular basis, even when work is your hobby, then you will automatically get better at your job and also more balanced than before.

If you feel like an imposter remember, the best work in science is built on previous research. Have a look at these computing Pioneers. Whether Charles Babbage, Dennis Ritchie, Einstein or Satoshi Nakamoto, … they all expanded on someone else’s work.

And being genuine isn’t nearly as important as being able to identify what is already available and can be re-used with a bit of “glue”.

Sometimes we put too much on our plate, but after some time we can handle it, and we aren’t phonies. And we move on to the next challenge. It’s OK to fake it until you make it. We all do it to grow our skills.

Learning new programming languages can be a nice, but what can be equally satisfying in terms of job-security and pleasure is deepening the understanding of a realm that you thought you already knew well. As a recruiter I prefer talking to people who have <5 languages on their CV and know they’re really experts in them, rather than a hipster engineer with ADHD, listing 20 exotic languages, where I’m sure they’ll lack deeper understanding in every single one of them.

Also remember that as a senior programmer it isn’t just the number of projects you have worked on or the languages you know, but also your ability to understand and translate requirements given to you by a person who doesn’t care about how it is implemented.

Sometimes being able to break the ice by talking about your last hiking trip or your passion for travel will get you further than cutting to the chase with low-level design details.

If you turned your passion into work and love your work so much that it becomes another way of expressing the passions in your life, remember: Nothing ever lasts! So the best chances to hang on to that passion for longer is by giving yourself a break regularly and staying balanced.

Valbonne Consulting provides Research & Consulting for emerging technologies in Internet/Web of Things (WoT/IoT/M2M) and Emerging-Tech. We specialise in decentralisation, security and privacy. We work across a variety of traditional industry verticals (Telecommunications, Automotive, Energy, ...). We support Open Source and technologies built on open standards.

Joachim Bauernberger

Passionate about Open Source, GNU/Linux and Security since 1996. I write about future technology and how to make R&D faster. Expatriate, Entrepreneur, Adventurer and Foodie, currently living near Nice, France.

Leave a Reply

Your email address will not be published. Required fields are marked *

  1. I was with you until “hipster engineer with ADHD.” Well as an engineer with 35 years experience and ADHD I say fuck you! I’m an expert in many languages and domains not because I am hip, but because my job required an expert, because I am good AND because I have ADHD!

    • I think that the author was focusing on those who are constantly moving and searching for the next “new” technology. Those engineers who, when asked if they know backbone say “backbone is so old – angular is the new hotness” and are constantly interested in moving towards the next “big thing”. Not those who have ADHD…

    • I think you missed the point of that article. Just because you know many languages doesn’t make you an expert. It’s about the ability to apply them that can make you an expert not cause you have a medical condition !

    • Are you also an expert in getting offended? The way you talk makes it sound like you are in the top-left of that graph.

  2. I think I understand what you were trying to get at with the ‘hipster engineer with ADHD’ paragraph, though I also did a double-take when reading it first. The paragraph hints at a wider problem we face as engineers.

    I think it’s good to separate “person that actually learned 20 different languages” and “person that put 20 different languages on their resume”. These are separate (but not mutually-exclusive) things.

    Recruitment can encourage us to try and stuff our resume with as many ‘keywords’ as we can. As an engineer on the job-hunting side, you’re always worried – will making my resume too targeted in that sense lose me the opportunity to get the interview?

    The other-side view of your ADHD paragraph would be “I’d much prefer to work for a company that asks for expertise in a particular language and/or technology, rather than one that has 20 different technologies listed on their non-specific job ad, all that I am expected to be an expert in with years of experience with. ”

    How I personally solve this is with two sections on my resume – one that clearly states “These are the languages I have gone in-depth with and that I’m involved in right now” and another that clearly states “These are the languages that I’ve tried in the past and that I could get back up to speed on quickly if required to”.

    If an interviewer is concerned that my number of languages makes my knowledge shallow, I would want them to ask me “How has learning languages Y & Z made you a better programmer in language X?”, with X being the main language used at the job.

  3. Hopefully this will give the people imposter syndrome to be a bit more confident their own skills ! Cause I know one or to Devs like this !

  4. Pingback: Bravery | Empressedwithwhat's not there Blog

  5. I think for some who work with a lot of very talented programmers you can downplay your own skill level – I know I used to think like that many years ago.

    Also the whole working on a hard bug and just taking time out chimes with me too. On one occasion I recall working long hours, going to bed early one night and waking up at 5am or thereabouts convinced I knew the solution. Rather than going back to sleep and risking fortgetting I got up, went into work and was polishing off the fix and finalising testing by 9am when everyone else was just arriving. In the pub by lunchtime…. 🙂

  6. Pingback: Week One…Python! | Katy Learns To Code!

  7. Pingback: Dealing with coding insecurities | bryanttunbutr

  8. Pingback: Do Experienced Programmers Use Google Frequently? · Code Ahoy | Raony Guimarães

  9. Pingback: Do Experienced Programmers Use Google Frequently? | 神刀安全网

  10. Pingback: El Sindrome del Impostor – Geektlan

  11. Pingback: Diversity in Tech: I Volunteer as Tribute! | Urban GeekMom

  12. Pingback: Setting things up. | Adrian scheff

  13. Pingback: Choosing the right tech stack for development [for developers] – Ankush Thakur

  14. Pingback: What to do when a coding error hits you? – Think the world!

  15. Pingback: The Impostor Condition Sucks - SEP Blog