While we may all describe the feeling differently, what is it exactly? Imposter syndrome can be defined as a collection of feelings of inadequacy that persist despite evident success. 'Imposters' suffer from chronic self-doubt and a sense of intellectual fraudulence that override any feelings of success or external proof of their competence.
Imposter syndrome is rough and something that many people deal with. Doubting your abilities and feeling like a fraud disproportionately affects high-achieving people, who find it difficult to accept their accomplishments.
What about Imposter syndrome in software engineering? It’ll come as no surprise that it’s fairly common. With multiple ways to accomplish any one task, second-guessing your own approach is the norm. While imposter syndrome tends to impact women at higher rates, both men and women report the effects of this syndrome.
Everyone goes through at least a phase where they feel like an imposter. Remember when you were new to the job? Your first coding assignment? The job description was probably pretty intimidating, with requirements for understanding things like Agile methodology and experience using tools you didn’t have access to in your coursework like Visual Studio or GitLab. You were asking yourself, “Am I ready for this?”
Brad Gentry is a Senior Software Engineer here at Allstacks and a big proponent of decreasing the stigma around mental health issues amongst developers. He has over 15 years of experience and still struggles with imposter syndrome. He provides these words of encouragement,
“Those of us who suffer from imposter syndrome emphasize the fact that we’re “just” standing on the shoulders of giants, without acknowledging that we had to climb a giant to get there.”
As you gain experience, you should be building confidence at the same rate; however, even for the most experienced engineer, it’s easy to find yourself in a swirling sea of self-doubt. You’re constantly pushing the envelope under the banner of improving, learning, and moving forward. But often, that desire comes from a nagging sense that there’s always something better--a new language, a better package, a more apt data structure. That same feeling that pushes us to improve can also trick us into thinking that we’re not good enough to find a perfect solution. It happens to more of us than you may realize. Salesforce ran a survey a few years back that found nearly 60% of tech employees experienced imposter syndrome. It’s a thing, so we’d better learn to deal with it.
Keep Imposter Syndrome at Bay
You don’t have to stay in that imposter’s mindset. Here are a few things you can do to remember who you are, what you’ve already accomplished, and what you are capable of.
Remember, you’re your own biggest critic.
Even though you’re on a team with what feels like experts who are miles ahead of you, you’re the one that’s going to give your work the harshest critique. While attention to detail is essential and reviewing your work is encouraged, channeling all of the potential ways someone can find flaws in your work is usually not helpful. If you’ve solved the problem, not introduced any issues, and may have fixed some formatting along the way, not only did you get things done, but you made the world slightly better.
Keep track of the wins.
Remember when your parents kept every award you got in school? You’ve got to be your own cheerleader now. It’s helpful to note your achievements, like significant features you helped ship or bugs you squashed and their impact on the company and customer. When you’ve learned new technology or a new coding language. These are all good things to remind yourself of and look great on a resume.
Always be learning.
Some days it definitely feels like it, but you are not done learning. The more we are challenged, the more we learn what we’re capable of. And that learning process shouldn’t be why anyone feels like an imposter; it’s a crucial part of continuing to be a high-performing expert in your field. Set time aside each week or month for continuous improvement and learning opportunities.
Here are some ways to get started:
Learn a new coding language or tool. (Vue.js could be a good one to try.)
Read a book that will advance your understanding of the work you are doing or the industry you are in. May we suggest some of these?
Participate in hackathon or coding challenges
Benchmark yourself and set personal goals.
To get better at anything, you need to assess how you are doing today to see your progress. We’re big believers in letting the data speak for itself. It will provide you with evidence-based support and encouragement. And data doesn’t lie.
With every effort, try to start by defining what would make it successful. With development tasks, these can be goals for the company [like a runtime performance target] or personal goals [I want to do this using that library I read about]. Setting defined outcomes and meeting them gives you a few stakes in the ground:
You take the time to define success instead of iterating it as you go. It’s easy to get lost in a cycle of iterative improvements when you’re far past what would be successful.
You can look back and know you did everything you set out to do. This can help avoid the nagging feeling that you missed something. New ideas and thoughts can get logged for improvements for later.
If you find something you struggle with, missed, or forgot, you can add it as a criterion for next time. You are less likely to forget, you have concrete ways to improve, and you avoid beating yourself up over a mistake.
For goal-setting, put together a vision board, or more likely, you’ll use a spreadsheet. Make your personal goals SMART, specific, measurable, achievable, realistic, and timely. They should fit on one screen or sheet of paper, so they are manageable. When you can track personal goals, it’s another way of seeing yourself moving forward.
Fake it ‘til you make it.
It’s easy to get overwhelmed by the number of articles, posts, and HackerNews threads about dev effectiveness and how that new operator you’re unfamiliar with can save hundreds of CPU cycles. But always remember, you’re building something that works, and by nature of it working, you’re adding value to the world. Every solution can be iterated on. Even Newton and Einstein had their ideas and thoughts built on and improved over the years. Present your ideas with confidence, and take suggestions and criticism as iterations and improvements, not attacks on your skill or ability.
Building software is a team sport.
Our work as developers can often feel like an individual sport, especially now if you are working from home. More than likely, you are part of a team working on individual components at different times but ultimately rely on each other to deliver the final product. Being a part of a team is proven to increase self-esteem. Be sure to engage with them to get feedback either through code reviews, jumping on a video call, and pair programming to reap all of the benefits of being part of a team. These relationships do not need to be purely transactional so be sure to stop and learn more about your co-workers through non-work-related conversations and enjoy lunch with your team.
While Allstacks can’t solve imposter syndrome, we can help provide you and the team the insights into your work that help you see the impact you are making in the organization and progress to your goals. We can help answer questions like What is getting done by you and your team? How efficiently are you tracking against goals? Will you meet set deadlines?
It’s not likely that imposter syndrome will just disappear overnight. However, being intentional about reflecting on your work, setting goals, and appreciating how far you have come will ultimately lessen the impact it has on your day-to-day work.
Here are some additional resources that we are big fans of that may help you on your journey to being confident in your role and continuously getting better: