Next month marks my two year anniversary of working in the tech industry.
Before then, I was doing research in a biology lab, applying to medical school, being over-worked and underpaid. I absolutely hated life.
Now, I am a software engineer at a startup in downtown San Francisco. Every day, I am making decisions and building products that will shape the future of the company.
Though I now feel comfortable calling myself a woman in tech, and more importantly, a software engineer, it wasn’t always so.
For the vast majority of the past couple of years I have struggled with self-doubt and imposter syndrome in this rapidly moving industry. It wasn’t until recently that I finally found a sense of belonging.
I don’t think I will ever be satisfied with where I am or my breadth and depth of knowledge. There will always be more to learn and people to learn from.
However, in the past few months, I came to realize something —my “aha!” moment.
No one is born talented or even good at software engineering.
Knowing that there is a long road ahead doesn’t mean your life is any less accomplished at the present moment.
I’ve finally come to view each challenge as an opportunity rather than a setback. Each time I encounter a problem I don’t know how to solve is an opportunity to lift myself from where I currently stand.
There are two mindsets when it comes to approaching personal or professional challenges: the growth mindset and the fixed mindset.
Individuals with a growth mindset embrace challenges. They see challenges as growth opportunities.
On the other hand, individuals with a fixed mindset avoid challenges. In case they fail at attaining a particular goal, they view it as a flaw in their natural intelligence or talent.
To those with a growth mindset, failing means “I have learnings to do.” To those with a fixed mindset, failing means “I’m just not good enough.”
I used to have a fixed mindset. Every time I couldn’t do something I’d feel insufficient. I’d doubt my intelligence and my ability.
I always had a passion for learning but at the same time I used to be so scared of failure.
My first job in tech (right after App Academy) was not very challenging. It was fun for a few months because everything was new. However, 50% of my time was spent on mind-numbing static HTML/CSS (I fought hard for the other 50% — chances to work on back-end heavy and full-stack projects). After a year, I knew I needed more.
However, when I got the offer from Pillow, I almost didn’t take it.
When the chance for me to follow my ambition actually arrived, I was scared to take a leap of faith.
I was scared of finding out I’m not good enough, of being disappointed and feeling like a failure.
Staying where I were and I don’t have to worry about not performing my job. Going somewhere new and I could very well discover I’m not meant to do this, I’m truly not (insert adjective here) enough.
Nevertheless, I closed my eyes and leapt forward. Thank goodness I did.
When I started my new job, I still constantly felt the need to prove myself. What if I can’t learn fast enough? Should I fake it? Fake the fact that I know everything I’m supposed to know?
I made a resolution to never pretend I know more than I actually do in front of the other engineers on the team. Every time I wanted to ask a question or needed help understanding something but find myself hesitating for fear of appearing less than perfectly knowledgeable, I’d take a deep breath. No matter how dumb the question might sound to me, I’d ask anyway.
With my own internal drive and the help from my peers I have built features I’d never imagined possible when I first accepted the offer.
Your peers are your resources. Don’t be scared to ask for help.
Through the trial and error of the past year, I’ve come to a new acceptance for myself. I’ve accepted that failing does not mean failure.
I’ve come to learn that it’s better to make a mistake than never even have the courage to try.
As a result of the risks I have taken, my brain gradually moved from a fixed mindset to a growth mindset. Inevitably, I came to embrace challenges.
Every new sprint, when the time for picking new projects arrived, I always tried my best to land tickets outside my current realm of knowledge.
It would be so easy to pick a project I knew for sure I’d succeed and deliver with no impediment. The old me would view this kind of projects as a walking guarantor of gratification and ego-boost.
In my current mindset however, small successes and small validations are superficial. They don’t contribute toward my personal or professional development.
If I were to pick project after project where I could attain success with minimal effort, I would not be growing at an accelerating pace. I would be exactly where I am a year from now, two years from now.
Here’s the truth, in software engineering, you will not grow with a fixed mindset.
For me, the more willing I was to challenge myself, the more willing I was to look foolish (by asking for help, by admitting the things I don’t know), the more confident I actually felt. The first step towards overcoming anything is to take a honest look at yourself and face fearlessly the things you want to work on.
I’m a software engineer in San Francisco. I graduated from MIT in 2013 with a BS in biology. I started my career in tech at the start of 2015 and have been loving it since. If you like my work, follow me on Medium to receive more stories from me.
A version of this story was published on Medium.