I can’t code. I’ve been developing for years and still have no idea what I’m doing. John, on the other hand, is like a coding master. Thanks a lot for making me look bad, John. Thanks a lot!
Maybe this is what goes though your mind at work.
We’ve all experienced this feeling. It’s known as the imposter syndrome. The imposter syndrome plagues those around the world. I’ve seen this syndrome a lot in the tech industry. The wealth of knowledge available around software development is crazy. Somehow we’re expected to know everything, or at least that’s how we feel.
I Can’t Code. I’m not Smart Enough.
This feeling overwhelms the developer. This leads to anxiety. We put on a face that shows we know what we are doing, but ultimately our truth will be exposed to the masses. We fear that the day might come… the day when we’re humiliated in front of others regarding our lack of true knowledge.
The Source of the Imposter Syndrome
Why is the imposter syndrome so viral for developers and software engineers? I believe this stems from two things.
1. The Hype Behind the Typical Software Engineering Role
We’ve been conditioned to believe that being a software engineer at Google, Microsoft, or Twitter is the holy grail of one’s career. Many people strive for these positions and talk about them on social media. The overwhelming hype of these positions is brainwashing new developers that they must have one of these roles in order to find fulfillment, even if that means moving across the country to San Francisco to pay $8,000 a month for a studio apartment in a basement. This common dream leaves intelligent developers competing for positions against individuals with the sharpest minds in the world.
This outrageous competition has spread to even the smaller companies who want to mimic the techniques of the tech giants. Thus, very challenging (and questionably useful) interviews are being used for the majority of technical positions. It is not uncommon for a developer to have a 3+ hour interview with numerous individuals.
I’m by no means recommending that we should diminish the challenge of software interviews. All I’m trying to say is that the challenge of the interview should be in accordance with the job role. A very challenging position at Google aught to have a very challenging interview. The solution is to beat the software interview.
There are numerous resources to beat the tech interview. There are books, classes, online courses, and more. More than any of these, there is one thing that will make you most likely to succeed at your job interview and overcome the imposter syndrome. That one thing: practice.
This post was sponsored by Pramp, a site where you can do unlimited mock interviews and get exposure working with other individuals. Pramp will give you the experience needed to ace the technical interviews at the big name companies as well as competitive start ups. Get paired with an individual, get questions and answers, and go through some mock interviews! Once you gain some interview experience, you can go through real interviews to get positions with actual companies, all through Pramp. Wow! Check it out.
2. Coding is Really Hard
In all honesty, I believe the second source of the imposter syndrome is the fact that coding is a very difficult task. I’m not just saying this because I’m terrible at it (although maybe true). New developers go into the job market overwhelmed with technologies, languages, frameworks, techniques, tools, paradigms, and expectations. Even if you manage to master one language, a different job role may require you to throw it all out in favor of another. This is ultimately frustrating. Although the excitement of always learning exists, it is darkened by an overarching feeling of always being a step behind in the ever changing tech world.
It doesn’t help that many hiring managers fail to look at the core values and attributes that create a good developer. We’re growing accustomed to the world where an employee stays for a year and moves on. This forces company’s to focus on those with the most knowledge in one particular area, even if another candidate has stronger character, is well rounded, and could surpass others in expertise if needed.
Learn the standard programming paradigms over specific implementations. Build your portfolio over your resume. I use my YouTube channel as my portfolio (hundreds of technical tutorials to document my knowledge and progress within tech).
My Experience with the Imposter Syndrome
I had imposter syndrome early in my career (not that long ago 😂). I managed to land an internship after doing really well at an interview. The expectations were high for me, and I regularly fell short. I began to ask questions, only to be told that I needed to do more research on my own. When I stopped asking questions, I was asked why I didn’t utilize the knowledge of my peers.
I knew I was smart enough for this role and capable of excelling, but as the pressure of my peers increased, the stress of being perfect increased. My imposter syndrome was less about technical understanding and more about navigating the corporate world.
One problem with me is that it takes me many hours to understand things. I need to understand the nitty-gritty detail for me to be able to create something useful. When working in teams, I regularly get told that I don’t need to worry about the details, which essentially renders me useless. Because of my nature to learn the details, I left meetings having more questions than answers. If I could redo the internship experience, I would really pry for answers (regardless of how stupid it made me look) and document the answers somewhere for the next guy.
Victory Over the Imposter Syndrome
This is no easy battle. Here are my two tips to gaining victory over this syndrome:
1. Lose the Ego
It takes a real man (or woman) to be the one to ask the dumb questions. Too many people walk around with a head too big to fit through a door way. Ego prevents you from learning from peers and prevents you from asking important questions. A person with an ego may think he’s the smartest person in the room, but his or her peers know that’s not the case.
This is different than confidence. Confidence is being sure of what you know. Ego is faking something everyone knows you don’t know.
2. Pretend Coding is Cooking
This is a pretty terrible illustration, but I have a serious level of pride about how little I know how to cook. I’m totally okay with saying “Cook?! Are you kidding? I burn water!”
Instead of having an ego about how legit you are at coding, have an ego about how little you really know. Like “What? Build an app to support 10 million users? I’ve never done it, but with the help of our talented team, I’m sure we won’t let you down.” Rather than saying “10 million users? Anyone as brilliant and stunningly good looking as myself will have no problem accomplishing such feat.” Spare yourself the pride and avoid condemning yourself to the stress of a task outside of your own capabilities.
3. Study Your Face Off
Although this seems simple, it works. The more you know, the less likely you are to feel inadequate. I’d recommend going through Cracking the Coding Interview.
To Finish it Off
Imposter syndrome is one of many challenges the developer faces. The chances are that this is going to come earlier in your career or when you have extra pressures to do well at your position later on in your career (financial challenges at home, for example).
Worst case scenario, you’re consumed by the imposter syndrome and you go to work anxious every day for the rest of your life as a total fake… Not so bad… But If you’re struggling and need a refresh, I recommend starting from the basics and learning what it takes to perform well in your role as if it’s your first job. Read about what it takes to get your first coding job, as these are the things not even the most experienced developers should forget.