After four years in marketing and graphic design, I enrolled in code school and decided to pivot to software development. While I was ready for the challenge, I faced many unknowns about the path I chose. Here are four things I wish I knew before becoming a software engineer.
1. Imposter Syndrome affects software engineers at all experience levels.
Imposter Syndrome is a phrase I’ve heard a lot since becoming part of the tech community. People who experience it have doubts about their accomplishments and a constant fear that they will be exposed as a “fraud.”
Since switching careers, Imposter Syndrome manifested as negative self-talk:
- “My team will probably become frustrated with me and start to view me as a hindrance.”
- “How did I even manage to get hired in the first place?!”
I tried my best to ignore that nagging voice. I tried to rationalize my feelings with the notion that they would disappear once I gained more experience.
I could not have been more wrong.
Now that I have been in my role and part of the tech community for the better half of a year, I have come to realize that software engineers of any skill level can encounter Imposter Syndrome. Those feelings of fear won’t magically go away with experience. What will help is to combat them with positive affirmations:
- “My team understands I’m not as experienced as they are and don’t expect me to make contributions at their level.”
- “I wasn’t hired based solely on skill level. I was hired because my offsite code challenge demonstrated my aptitude, and the team felt I had the right attitude for the role.”
It’s completely normal to experience Imposter Syndrome. It’s okay to have those feelings of fear. Don’t ignore them like I did!
2. Software engineers are problem solvers first and coders second.
During a chat with a fellow software engineer, I expressed my concern that I am not making meaningful contributions because I am not committing enough code. I thought I wouldn’t be a “real” software engineer until I start to commit code and an arbitrary amount of it, at that.
My colleague helped me to see the folly in that belief. It was only my second week on the job! Of course I hadn’t really committed any code to the codebase. He explained that software engineers aren’t merely code writers. Software engineers write code, but that doesn’t automatically make you a software engineer. The job involves many other skill sets and complexities.
Problem solving is one of the main principles of programming, and code is merely a tool to help provide a solution to a problem–code is not the solution itself. The code you write will not be nearly as effective if you don’t have an understanding of the problem you are trying to solve. Don’t be afraid to ask questions to gain a better understanding. Ask early, and ask often.
3. You won’t move forward if you don’t fail.
I am admittedly a perfectionist and can be very hard on myself. There have been times I’ve let it make me feel incompetent when I make a mistake–even if the mistake is a result of my lack of experience. At times, it has held me back from reaching out of my comfort zone.
One of my teammates was able to sense this. What can I say? I wear my heart on my sleeve. He encouraged me to tackle the unfamiliar. After he told me this, I really thought about why I hadn’t been taking on more tasks that present concepts that are foreign to me. I realized that my perfectionism was just the surface–it’s because I had a true fear of failure.
Failure is a necessary part of growth and learning, and when you’re in the thick of learning something new it can be really easy to forget. I am certain there are other junior developers who are terrified of accidentally entering the wrong command in the terminal and causing an irrevocable catastrophe! To be completely honest, my heart still flutters sometimes when I enter a remove command or perform merges.
4. Software engineers don’t have a uniform.
There are many who seem to have beliefs about what “real” software engineers are and how they’re “supposed” to look and act. If you ask someone outside of the tech industry to describe a software engineer, the typical answer might be that he is a white, middle-aged, introverted, and sloppily-dressed male.
That belief is objectively wrong. Right?
While going through code school, one of my instructors regaled me and other female students with tales of her experiences being a woman in the tech industry. She described situations where her choice in more feminine clothing caused others to take her less seriously as a software developer, and because of that, she began to wear “plain” clothing. I find it extremely upsetting that she had such a negative experience. I questioned: how I could avoid having an experience similar to hers? I realize now the question I should have asked is: how can I (and other women) create a healthy and positive culture for women in tech?
I find myself fortunate to work for a company that doesn’t judge ability based on looks. There are female engineers in my department that awe, inspire, and empower me with their individuality and expertise. To me, a “real” software engineer is someone who enjoys solving problems. They are people who thrive on learning new things, love tackling challenges, and are relentlessly curious. No uniform or dress code required.
How do we kill the “real” software engineer stereotype? Be you! Wear what you want. Learn from those with more experience and support others who have less. Share your stories like my instructor did. In the end, she found what worked for her. She encouraged us to be ourselves. She absolutely did not want to let her negative experiences stop us from pursuing a career in tech. Sharing stories like this will help others see that not every developer or engineer fits stereotypes.
Thank you so much for taking the time to read about my journey and the valuable lessons I’ve learned in just a few short months. Are you a new developer or one who has been in the industry for a little while? Are there things you wish you knew before entering the field? Share your thoughts in the comment section below, and let’s continue the conversation!