Co-authored by Amanda Clouser and Scott Peterson
Imposter Syndrome is a common topic in the tech world, especially in the Software Development world. Itās also a very personal topic, arising to each person for different reasons and impacting each person differently. Here is an exploration of the topic from two points of view: Amandaās and Scottās.
Introductions
Amanda
Hi, my name is Amanda, and I am a software developer that is floating in a constant state of self-doubt, fear, and feelings of inadequacy - aka Imposter Syndrome.
I never knew what computer science was until I got to college and felt lost in my business major. My dad is a software developer, so I switched to a Computer Science major because I didnāt know what else to do - and then became so intimidated by the know-it-all-been-coding-since-I-was-4 guys in my classes that I switched to the easier āsisterā major of Information Systems (IS). Looking back, this is definitely where my Imposter Syndrome issues began and was the first time in my life that I really felt this kind of inadequacy.
Despite changing to the less machine language heavy major and sticking with IS (still had development but also a focus on project management), I landed a software development role out of college. The feelings of being not good enough for the field lessened in some ways when I got more comfortable in the tech stack, but amplified again when I learned I was on a losing side of a gender wage gap. I later moved on to Michigan Software Labs where Iāve really been able to acknowledge my struggles with Imposter Syndrome and have been encouraged to shed the fear that I hold and receive affirmation that I do belong in the tech world.
Scott
Hi, my name is Scott, and Iāve been a full-time software developer for about 3 years.
In my life Iāve worked many jobs, been on many teams, learned many new skills, and tried many new activities. And none have produced the feeling we label as Imposter Syndrome as software development. Why is that?
I played organized baseball for twelve years. Iāve been on teams where I was among the worst players and teams where I was among the best. I was always aware of my ability and contribution. By the time I stopped playing organized baseball I recognized my contribution had been on a negative relative trend for many years, and the enjoyment wasnāt there for me anymore. But I was never made to feel bad, even if I was among the worst players on a team. When I was among the youngest players I knew that I wasnāt supposed to be among the best at this age.
I took the Chartered Financial Analyst exam a handful of times, doing better each time, but never passing it. But I never felt I was an imposter, that I shouldnāt be taking the test. I just felt I hadnāt worked hard enough or didnāt have enough passion.
Iāve started new jobs where no prior knowledge or skills were needed and excelled immediately.
Iāve started jobs where prior knowledge and skills would have helped, and while I was nervous initially, I had no feeling that I didnāt belong or shouldnāt be there. Just that I was starting on a path.
But at almost every step on my software development journey, I wonder if I can do it, if Iām cut out for it, if I belong.
Why is Imposter Syndrome MORE prevalent in Software Development?
Amanda
I think there are 2 main reasons Imposter Syndrome seems to be especially pervasive in the software development profession.
Media Portrayal
Pop culture, film, tv, etc all seem to portray software developers to be nerdy men with little social skills, but have a strong knowledge of all things of the micro-electronic nature. There is absolutely nothing wrong being that, but itās not all that exists in the software industry.
I donāt feel like I fit into the tech world outside of actual development. I am a woman, I donāt have a clear concept of how much 1 GB is compared to 1 TB, I do not understand Pokemon, Iām not entirely sure I know what a Raspberry Pi is, etc.
It feels silly to list all things that I think make me different, because despite me not fitting into the generic mold of āsoftware developerā that has been defined by tv shows, movies, and ārevenge of the nerdsā culture - I still have good relationships with my coworkers and I donāt struggle to find commonalities, and Iāve learned that all my coworkers have hobbies or quirks that donāt necessarily align with the media portrayed role.
I actually do fit in, but the stereotype kicks me and many others right back out.
Spinning Reel of āNewā
The second reason Imposter Syndrome can be extra difficult to move forward from in software development is because of the vast amount of languages, platforms, and data storage that there is to learn, and they are changing and expanding at such a rapid speed. It can feel like you can never keep up and that you donāt know that much about the field - and you probably donāt.
Accepting not that you donāt know everything, but that you canāt know everything is crucial.
Scott
Software development is a unique collection of infinite knowledge, mixed with conceptually difficult topics, mixed with non-tangible concepts, all engulfed by the fact that little replaces pure time spent developing software.
Take a conceptually difficult subject like astrophysics. Not all people can cognitively do it. Effort, passion, time spentāmay not be enough.
Take subjects of giant breadth, like biology or religion or law. Any single thing may not be conceptually difficult (there are of course, but relatively less), but personal attributes like determination, effort, passion, significantly affect whether youāll grasp the subject.
Software has some of both.
Software is also a non-tangible world, so when someone types ~/projects/enter_narnia.bash || grep āMr. Tumnusā -r
we have no mental model or context to begin understanding what is going on. It is pure witchcraft.
Software also has a steep learning curve, so the skills and abilities of someone even five years our senior appear like sorcery.
Mix breadth, with occasional conceptual difficulty, with non-tangibility, with a steep learning curve, surrounded by wizards and sorcerers, and Iām not surprised I feel like an imposter.
Software development āprogressionā is not linear. Thereās no universally accepted road map. No one can ever say, āIām 73% of the way there.ā And in the absence of those sorts of mental models, we assume that weāre 2.74% of the way there. Or that weāll never get there.
What are the biggest manifestations of Imposter Syndrome to you?
Amanda
Fear is the first thing that comes to mind for me when I think about Imposter Syndrome. Fear of failure, fear of not knowing enough, fear that no one will resonate with what Iām writing right now - I too often let fear dictate my life.
Fear of failure drives me to do better, fear of not knowing something often slows me down. Fear of rejection can stop me completely.
Iāve been afraid to write a tech related blog post because I think that I donāt know enough, or that someone is going to tell me that what I wrote was stupid. And to be honest, I donāt know enough and someone probably would think what I wrote is stupid - but should that stop me from trying? I tend to assume that anything that I know is not of value to anyone else or that what I know is wrong and someone else has a better idea. Iāve gotten better at controlling it, but if there is tech that is foreign to me I will spiral into thinking that everyone else knows this but me and panic that I need to learn it all, when really I just need to stop, breathe, and remember that you canāt and shouldnāt know everything.
Scott
Imposter Syndrome affects me most significantly, by causing me to assume the worst, when I donāt have the information or experience to assume otherwise.
When I come across something I donāt know how to do, I assume:
- that everyone else already knows how to do it
- I will have a hard time learning it.
When I push a commit that has lint errors, or submit a Merge Request without unit tests, or completely overthink a feature implementation, overlooking a simple way to do it, I assume that no other developer has ever done this.
How can we Handle That / Respond to That / Combat That?
Amanda
This feeling of inadequacy and fear of failure have faded a little more with every day that passes because Iāve learned more about my trade and Iāve also learned that with the things I donāt know, Iāll be able to figure out. Itās still easy to get wrapped up in fear when people start talking about some new technology that you havenāt learned yet and they are using new terminology, but I have learned that instead of either pretending to know what everyone is talking about or letting myself get stressed about not knowing something I āshouldā know, Iāll take 5-10 minutes to find and read a couple articles about the topic, and oftentimes itās no longer scary or intimidating after that.
No one is expecting you to be knowledgeable in every facet of software development, itās not possible and those who say they are knowledgeable are either anomalies or lying. My advice? Drop the āfake it until you make itā attitude and embrace humility. Focus on lifting your ability to learn something - so that when there is new tech that you donāt know anything about, instead of feeling scattered because you donāt know what it is, you can have the confidence to say āI donāt know what that is, but I can learn itā. This isnāt going to come overnight, but if you can chip away the protective layer it will make you a better coworker, developer, interviewee, and person.
I think knowing that a significant amount of people around you are probably suffering from the same thing can be a great step forward to starting to shed the fear and move forward. I know I just talked about the things you donāt know, but when you do know something, have confidence but openness when talking about it.
Scott
I think that more than most activities I have undertaken in my life, software development requires tons of affirmation along the way.
āyou understand that the tilde means the root of your file system, and that forward slashes separate directories (just a coder term for Folders), and that dot files are just files like anything else, and that in coding land files donāt always need file extensions like youāre used to? Here is why knowing all that is important and here is also why you have accomplished something.ā
āyou understand what a class is, what instantiating means, how you can access and use methods and properties on that class? Here is why knowing all that is important and here is also why you have accomplished something.ā
Otherwise we donāt have the mental models to conceptualize what we have learned and why it is important. We donāt know if we have learned the fundamental theorem of calculus, or learned what a pencil is.
Recently during a coaching meeting I was expressing how I felt more confident and able picking up tickets, now that I needed to ask fewer questions, and was getting to MR and merged quicker. I received affirmation, but much more importantly, (my paraphrase), āwhen the time inevitably arrives that you donāt feel that way about work youāre doing, DO NOT assume that youāve regressed.ā That framing helps stave off feelings of inadequacy and imposter syndrome.
When I worked at Potbelly I didnāt spend 90 minutes stuck making a sandwich because of a typo, being in the wrong directory, or not being connected to the VPN. Software is a different world!
Summary/Takeaways
Amanda
Sometimes you have to just let time and experience do its thing and you will eventually feel a little more comfortable the more you are immersed in the software world
You arenāt the only one that feels like youāre faking it ātill you make it
Buzzwords are just buzzwords, donāt let them scare you.
You do not have to conform to the ānerdā stereotype that media places on software developers, most of us donāt.
Scott
When teaching, always be looking for ways to contextualize / benchmark / quantify what youāre teaching.
When youāre learning, do the same.
Do not observe impressive, unfamiliar, and mysterious abilities of others in a vacuum, assuming that you: (1) should be able to do that now, (2) would not be able to learn how.
Looking for more like this?
Sign up for our monthly newsletter to receive helpful articles, case studies, and stories from our team.
A 3-part framework for getting your software project approved internally
September 25, 2024Explore this strategic approach to securing internal buy-in for your custom software projects. The framework emphasizes starting with a lean business case, engaging key stakeholders across the organization to align economic, operational, and technical considerations, and embracing an iterative learning process to make informed decisions.
Read moreUX Writing Tips
February 3, 2023Kai shares a few tips he's collected on how to write for user interfaces.
Read moreMake an AI Art Generating Slack Bot in 10 Minutes
February 3, 2023David shares how easy it is to create your own AI art generating Slack bot using Typescript and Stable Diffusion.
Read more