Imposter Syndrome among Developers
Interesting take on Imposter syndrome and my experience with it in the tech sector.
Hello, am David. It's 5a.m on a cold Wednesday morning in Nairobi. I just apply for a position in a large ($100b MarketCap) U.K. firm that a friend just forwarded to me. I told myself two excuses, one being that it requires experience in two frameworks that I don't majorly use, and another is that it is likely more competitive with already over 200 applicants.
I have more than 6yrs experience in the field and I have always been a great asset to have to all the companies I worked for; yet, I still constantly fight against the dreadful feeling of imposter syndrome.
What is imposter syndrome
I assume the dictionary definition would sound something like this:-
I define it as this uphill battle I have had in my career where I learn so much but it's never enough to feel confident and qualified to have a voice in my field. I define it as my consistent habit of turning down compliments for any achievement or accomplishment.
Factors Contributing to Imposter Syndrome Among Developers
Let's explore a few factors that have contributed to imposter syndrome among developers (like me).
Comparison to others: The Developer community is arguably the most socially connected professional community in the world. I have always been a few clicks away from connecting with other developers on various continents (through Hashnode, DevPost, Twitter, Reddit, Blind, IndieHackers, StackOverflow, Github, Hackernoon and so many others). I am personally a proud member or contributor in over a dozen Tech WhatsApp groups all over East Africa. The most commonly shared content in these communities is opportunities, achievements, tips and tricks or resources. The curious mind of any developer will always force you to engage with others and either contribute or break down the content shared. This forces us to compare our abilities and achievements with others. Imposter Syndrome then kicks in when I share my first 'Hello World!' in NextJS and a colleague shares an advanced article on optimization for better web performance in NextJS.
Rapid technological changes: It is impossible to keep up with the pace of tech advancements. I know this article will take me about an hour to write and a dozen new libraries or frameworks would already have been released and I won't be able to keep up. I personally just got a good grasp on Flutter (Dart) and NextJS, but my colleagues have been constantly spamming me with a new framework called Svelte (am talking about you @eman). I constantly have a hard time pronouncing it correctly but somehow expected to learn the language fluently as it "shifts as much work as possible out of the browser and into your build step. No more manual optimizations โ just faster, more efficient apps".
Open source culture: OpenSource development is inviting friends, colleagues or anyone to your codebase to contribute, share and modify a technical solution (so basically tech communism). This will typically also include code reviews that can intensify feelings of inadequacy, sometimes making others hesitant. The thought of having someone review your code turns a great concept of sharing or contribution into some sort of exam. I find myself doing unnecessary procedures and spending a lot of time just to ensure I contribute code that passes every test and inevitably gets merged into production. This however is not practical as software development is extremely subjective.
High expectations:
Software developers also have high expectations and a culture of excellence. All tech projects I have worked on are always built with the most optimistic assumptions of scale. It is an immensely competitive field where everyone is trying to push the limits of what technology can do. So many worry to enter the field because others have progressed so far and make it seem improbable to even try climbing that mountain. New developers run to the community to share their exciting accomplishment of publishing the first 'Hello World!' only to meet other developers launching their new programming languages.
Strategies for Overcoming Imposter Syndrome
Imposter Syndrome has negatively impacted a majority of software developers on career advancement and general mental well-being. In my experience, it has affected everyone from all career levels; I hear new developers complain about it almost as much as senior engineers at Fortune 500 companies. I believe it has also affected the tech industry in immeasurable ways. You can tell by how many demo private repositories people have, the amount of built projects that people keep in their computers and won't share; or the number of people that churned from breaking into the tech sector. Here are a few strategies I have used to overcome Imposter Syndrome
Self-awareness:
There is a great analogy about a boat that sets off from a port, a few hours later, it is in the ocean so far with no landmarks or islands on sight. This can make the sailor not have perspective of how fast he is moving, or if they have come to a halt. The middle of the ocean is the toughest part of the journey and it is not easy to recognize your progress and yet others tend to speed up. Several years ago, I wrote my first Python program as I set off, it is easy to dismiss my progress over the years and instead feel dreadful that I may not qualify for a senior position in a large U.K. company; a thought I would never have had when I began. I choose to look at that as my landmark and motivation to go even further. I deeply encourage self-reflection to identify when imposter feelings arise and then look for your landmarks of progress.
Normalize failure:
If you can, get excited for failure for it has been one of the greatest paths for learning and growth. Software development has never stopped being Binary, it either works or it doesn't. When it doesn't work, it opens a door to more knowledge as to why it doesn't.
Understand that this will also happen more times than you expected and you won't be able to keep track. After so many years, I instinctively implement proper API CORS policies without knowledge of why. This was the result of probably a weekend I wasted debugging CORS.
Seek support:
Most software developers climbed up through their careers with the help of mentors and peers; it is also a heartwarming fact that they are also always willing to mentor and guide others.
Peers and Mentors are a lot more effective and likely to be mindful of your progress, and achievements.
Record achievements and Success:
Keep a record of your accomplishments and progress. This can be hard to do over the years and so I recommend actively updating your LinkedIn profile. A few years down the road, you can always view your profile to reflect on your progress and squash any feelings of self-doubt. Celebrate every success with the community regardless of size, time or feedback.
Continuous learning:
If there is one thing to take away from this article, it is to never stop learning. I know, a strange oxymoron that guarantees constant growth and propels you forward. Learning new things does not discard the previous knowledge you already got. I say this as someone who started programming using Notepad as my IDE, I still get excited to see every VIsualCode update or AndroidStudio release. Your continued learning is more experience than the number of years you spend Clocking In and Out of a workplace.
Conclusion:
It is important to remember that Imposter syndrome is common and doesn't reflect actual skill or talent. I also encourage you to be kind to yourself, embrace your journey, and remember that you are not alone in this journey.
I wish you the best of luck :).
You can reach out to me using the links below:-
Website / Portfolio: https://davemarko.com
LinkedIn: David Marko
Twitter: @0xdvvid
Email: markodave46@gmail.com