There are many different ways to learn how to code, each with varying opinions of the “right” way to do it.
Are you a stronger coder if you get a degree? Are you more flexible at coding if you learned it on your own? Do you really think the programming languages you chose to learn were the best choice? Did they set a good foundation for your career?
As a beginner in tech, I often feel behind, or out of my element. I doubt my decisions frequently. In class, it feels like I have to work twice as hard as everyone else. In my coding classes, I constantly ask the teacher to explain what’s going on. I wear my vulnerabilities on my sleeve.
Sometimes I’ll take a step back and wonder, “Am I the only one? Does everyone else just get this stuff? What if I’m just not meant to be a programmer and everyone sees it and just hasn’t said anything?”
Turns out there is actually a name for this fear — it’s called impostor syndrome, and it’s particularly common in tech.
And that’s no good. So let’s break this down.
Impostor syndrome is a behavior pattern in which people have insecurities about their accomplishments and have a constant fear of being exposed as a fraud, even if there is concrete external evidence of their competence.
So you can be great, but still feel like you’re awful.
Victims of the impostor syndrome attribute their successes to luck, timing or the result of fooling others into thinking they are more intelligent. It can lead to anxiety, stress, low self-confidence, depression and self-doubt.
According to research, 70% of people will experience at least one impostor experience in their lifetime, and celebrities like Maya Angelou, Tom Hanks, Michelle Pfeiffer, Chuck Lorre, Neil Gaiman, and Emma Watson have publicly admitted to experiencing this.
There is a misconception that brilliance is a prerequisite for software developers, and there is significant pressure to stay on top of the current trends. But in truth, with coding, the more you know, the more you realize you don’t know. It’s easy to get overwhelmed.
Additionally, succeeding in coding consists of failure. Sure, you can call it trial-and-error, but, usually, it just feels like failure.
As you progress, you start to interact with more advanced coders, and it feels harder to stand out amongst them. The more experienced you are, the more aware you are of what else is out there to learn. This awareness leads to even more opportunities to fail and can fuel feelings of inadequacy.
Meanwhile, it is hard to shake off unrealistic perceptions of the tech industry — succesful new tech startups and their founders are promoted as brilliant when their hard work is rewarded with venture capitalist money. Working without positive media attention, starting coders can begin to question whether they’ll ever make it to becoming a top-tier developer.
The bad news is that impostor syndrome never completely goes away. You will always have to fight it.
Fortunately, there are great methods to fight this problem.
First, let me just remind you of some harsh truths that you already know:
- You will never be an expert in software development — there will always be more to learn.
- There will always be more programming languages to learn and hardware to work with.
- Technology will always change.
- There will always be someone who knows something you do not know.
- There will always be someone who has a different approach from you.
If you want to survive in tech, you have to always be comfortable with being uncomfortable. If you feel like your skills are insufficient, that means you’re being challenged, and you need to be challenged to improve your skills. If you want to be a developer, then you need to….always be developing.
All good? Ok, moving on.
The first step to facing impostor syndrome is recognizing it. It’s commonly associated with perfectionism, overworking, undermining one’s own achievements, fear of failure and discounting praise.
If you’re having thoughts like “I must not fail” or “I feel like a fake” or “I just got lucky,” then you’re on your way, baby! If you’re not the greatest at taking apart your own thoughts, take this quiz — it’s a little invasive, but much cheaper than therapy.
Now focus on making a decision about your career. What type of position are you going for? Center your career goals and create a path for yourself. When you have a path set in front of you, it can be easier to figure out what skills you need to learn.
This way, you can separate out what it’s important for you to learn versus what everyone else is saying you should know. There are a number of ways to do this, but the best way to start is by reading job descriptions.
Once you’ve decided what your goals are, you should become more aware of your learning style. Do you learn on the go? Are you more comfortable reading books or taking classes? What’s the best way for you to practice? What kind of side projects would be most beneficial for you? The other available options for learning how to code will always be there to complement your learning style as well, when you have time.
RELATED STORY: Which coding bootcamp works best for you?
My favorite way to combat this syndrome, which I realized I had been doing all along, is by discussing it with other beginners in tech. This can include talking to other students during lunchtime at coding school, posting on a coding community site (like freeCodeCamp or Stack Overflow or GitHub), or finding a peer pair (a colleague, classmate, someone else learning alongside you). Now, when I ask a question in class, I don’t worry as much that I’m the only one.
Finding a mentor can contribute to your confidence as well. A mentor can point you in the right direction, they can give you the big picture when you’re looking too far into the tiny details.
Before pursuing a peer programming relationship versus a mentor programming relationship, determine what it is that you need ahead of time. In a peer relationship, you’ll have someone who works alongside you who focuses on the immediate problem. In a mentor relationship, the mentor could naturally take over the process and make the decisions instead of working through the problem with you. Recognize the difference between the two and what kinds of things you’ll learn from them separately.
Another recommended technique for fighting impostor syndrome is to remind yourself of your accomplishments. We all know people who keep files of thank-you notes, frame their awards, etc. Personally, I envision myself in my little personal trophy room, surrounded by all kinds of sentimental junk — everything from my kindergarten soccer trophies to scripts I wrote in college to the first call sheets with my name on them here in Los Angeles to my first website. What would be in your personal trophy room?
I’ve thought about getting a real personal trophy room. I should probably focus on graduating from my one-bedroom apartment first.
You should list your new skills to your résumé or LinkedIn profile to remind yourself of what you’ve learned, too. This takes up very little time, and no space or money.
And if you’re feeling like you need a little boost — there’s no harm in rolling out your current skills for people to see. Share your knowledge by giving a talk at a Meetup or contributing to an open source project on Github.
You could also volunteer or assist in a beginners coding class, or mentor beginner coders yourself, which is a great way to realize everything you’ve already learned and take for granted.
Just remember: trust the process. Everything you’re learning is building on itself. You’re not going to get everything right away. Keep a growth mindset.
Just like you shouldn’t put discouraging comments in your source code, using a negative self-dialogue will hold you back. As a beginning coder, it’s important to remember that if you want to be happy in any tech position eventually, your first language must be a constructive one with a positive syntax.
Yes, technology may be taking over the world – but that doesn’t mean that the world of possibilities that it’s offering needs to take over you. Go through the steps — focus on your path, consider your style, consult with others and remember your accomplishments. There is no one code to get you to confidence.
This article is part of WorkingNation Associate Producer Jaimie Stevens’ “Starting Out in Tech” series where she shares her insight into becoming a computer programmer. Catch up on her previous articles here.
Join the Conversation: Share your thoughts on the latest Starting Out in Tech column on our Facebook page.