My path to software engineering
(in about 1037 words)
Intro
I often wish I could be be more brave to pursue what I call my passion so this transition journey could be shorter. Over time, I learned to make peace with myself. Yes, I'm practical, risk averse, doubt myself often. I had all the qualities that tried the hardest to persuade me from starting a new career, yet it never stopped me from making efforts towards learning Computer Science. So, one baby step after another, it eventually became clear to me that Software Engineering is the career I would like to pursue for life.
A Ten Year long Journey
I consider college life the start point of adulthood. From there, it took me ten years to be comfortably saying it out loud - yes, I want to become a full-time Software Engineer.
By the time I went to college, I was old enough to know it's important to pick a major that secures a job. Accounting just seems to be a perfect fit for a girl, as many still believes today. Classes and internship were easy for me. Accounting as a subject itself is logical, and I was good at recognizing patterns and applying them. However, I had many doubts about myself in that career - I'm not sensitive to numbers, which is a key quality of any good accountant. One million impact on the income statement is not much different from ten thousand in my eyes. The only difference to me is that the latter lacks one 0 from the other. I trained myself to know the former is more important, but I often became more interested in building the business models than researching the business implications behind them. At that time, technology was just something cool to me that could help automate procedures.
I came to the U.S. to get a master’s degree in accounting from University of Virginia. School was not as exciting as what I imagined, but I had a clear mission: finishing my CPA exams and finding a job before my graduation. Then I took a class that almost screwed up that plan for me. The class was called IT in Finance, with core curriculum to design an automated hedge fund trading system to compete against over 20+ teams in a tournament. That class truly intrigued me. I couldn't help going back to the computer lab every night to test my program. I remember how frustrated I was at myself. I was proud of being a goal-oriented person, while one month away from taking my CPA exam, I kept taking detours to the computer labs which had no relevance to my exam. This is when I started to realize how much I like programming. I had thoughts about getting another full-time degree but the cost and time aspects stopped me.
I started to work at a CPA firm after my graduation, but I didn't give up on doing more explorations in the programming domain. I took some online coding courses offered by Coursera and Udacity. Then I went to NOVA community college to take Data Structure (a core class in Computer Science). That class gave me so much fun and encouragement which led me to apply for the online Master of Science in Computer Science program at Georgia Tech, regardless of the low confidence I have in my skills. Luckily, I got in.
Many things happened in my life throughout my journey at Georgia Tech. I moved from the east coast to west coast, went through a heartbreaking breakup, switched jobs, met my husband and started a family. There were many times I felt overwhelmed and doubted if I would ever finish my Computer Science degree, but the goal I set for myself since the program start helped pull me through.
You only need to finish one class per semester, but don't give up halfway.
And I did it. I started my master’s degree in the fall of 2018, through ups and downs, did ten consecutive semester of one class per semester, until I graduated in December 2021.
(Only) Time Will Tell
I always wish there was a moment that I would realize yes this is it, this is exactly what I want to be for life, but it never happened like that. It was time truly helped me see perspectives. I knew I would like to become a full-time Software Engineer when I looked back in my adult years, and realized most of the happy or proud moments of myself were all related to that domain.
In college, it was the time when I spent all my time automating business models with excel formulas and macros for a competition disregard all the business analysis that should be taken in place. At UVA, it was the time when I was worried about my CPA exams but couldn't help going back to the computer lab to test my application repeatedly. At GT, it was the time when I thought I would not be able to finish school but made up my mind I would pick up programming again in a different way. At work, it was the time when my boss asked us one thing we were most proud of for the last year and all I could think of was a Python program I designed to automate a process which nobody else saw the value in.
What's Next
By the time I wrote this blog, I just finished my Google SWE interviews and anxiously waiting to hear back the results. I had many hopes towards passing this interview, but also knew the chance may be low given my performance. Before the interview, I spent about three month finishing up 300+ LeetCode questions and 10+ mock interviews. I cried often for not being able to finish up a problem in 45 minutes, but always kept on going. And that's what I'm going to do next as well. I will keep studying hard until I get a full-time Software Engineer job, and I'm optimistic I will eventually get something that suits me well.
More importantly, I know my journey won't stop at landing at a job. There are many fascinating areas in Computer Science that is waiting for me to explore. I will keep going.