How I non-traditionally entered software development

From coding hobby to humanities college to failures to being paid to do what I do for fun.

At first, coding was just a hobby

I would characterize my start as fortuitous and unintentional. I had been playing heavily with CSS and HTML since I was a pre-teen. Occasionally I would also dabble in PHP and SQL, and basic website, database, and server management. Why? I liked building anime and video game websites and customizing message board platforms.

I majored in the humanities in college

By the time I was applying to college, I had convinced myself and my inner circle that I wanted to be a neurologist (typical immigrant child, something medical). I declared I would be a neuroscience major. When I was admitted and had to pick courses, I was daunted by all the math required immediately in my first semester. (While I excelled in math in elementary, I struggled in high school.) I quickly switched to “undeclared”, then gravitated towards religious studies (especially moral philosophy) and East Asian studies (Japanese concentration) as my two majors. I also tried a computer science class, and though I was the top student, I found it incredibly boring; probably the professor’s lack of enthusiasm played a part, who knows.

Four years later, I graduated with top marks but fully scared for my life ahead. Like any fresh, confused humanities graduate, I contemplated law school and grad school–I could still make my parents’ bringing my sibling and me to this country “worth it” by becoming some other kind of “doctor,” right? I also thought of nursing school. Honestly, none of those options really spoke to me, but I at least thought I should get some kind of experience first, and more importantly, start making money to pay my loans.

(In the summer after my third year, I had applied for JET to TESOL in Japan, but I was only waitlisted. I also was a finalist for TFA, but I changed my mind before the final interview after reading horror stories. In the summer after graduation, I continued my work as a service desk student employee, which I was part of since my first year. I moved back home with my parents when school started again at my college.)

I failed at admin work

I figured I was qualified for writing and administrative positions. After about two to three months of job hunting, I got an offer as a legal assistant at a decent law firm. My starting salary was $37k, $2k higher than what it should’ve been “because of my grades” (wahaha). I had been applying to other jobs that paid almost half that. I was excited because I thought this would be a good opportunity to learn more about law before committing to try out law school. I moved out of state, close to the new job, to a shared house where I rented part of a finished basement. However, I lasted less than 3 months before I got fired, so I did not qualify for unemployment insurance. I was devastated and embarrassed. I panicked because I didn’t know how I would pay for rent.* I also knew in the back of my mind that I had just escaped a dead-end job.

I was unemployed full-time for about a month. In that month, I got a two-week temp gig as an admin assistant in which the boss was starting to like me and was considering hiring me. I also was frantically looking to add to my skillset. In a fit of desperation, I let an online salesman convince me to buy a $700 comprehensive suite of online courses to get CompTIA A+** certification, and I started taking these courses.

(*) Privilege check: my parents would have helped me, but out of pride I did not want to rely on them for something like this.

(**) This is a standard certification for entry level service desk jobs.)

Then, an opportunity

Towards the end of that gig, I surprisingly got a bite from a technical recruiter for a junior “computer systems analyst” role. Vague, right? (Apparently it is a standard GSA title.) They had found my resume on (ha!) I was confused. The job description sounded programming-heavy, but there was also what I thought were service desk responsibilities as well there. I had always listed my coding hobbies in my resume, but never did I think that made me qualified to have a professional programming job. However, the recruiter convinced me that I was a serious contender for this entry-level role, so with great hesitation, I agreed to have my resume screened by the hiring manager, and I was later called for an interview.

I was deeply lucky to have the hiring manager I had. I talked about my coding hobbies briefly but emphasized mostly my  service desk experience and CompTIA studying. I panicked when he explained to me that the job I was interviewing for was more programming-heavy. I was much more comfortable with the idea of doing service desk work. But he assured me that I will have many more opportunities for career growth in programming.

He told me my hobbies already exemplified a lot of the basic stuff I would be doing in this job, and having the natural interest and drive to learn these things meant I could grow in the job to fill in other gaps. My college transcript further evidenced that I’m probably smart and definitely a hard worker.

I didn’t understand him at the time, but now I’m forever grateful to him for believing in me, giving me that advice, and starting me on my path in software development. At the end of the interview, he already had made me an offer with a salary almost twice that of the legal assistant job. In retrospect, it was quite low for a developer job*, but I was incredibly grateful and already off to a much better (second) start.

(*) I remember my immediate reaction to him was, “That’s more than I expected!” and his sage advice to me was, “Don’t ever say that to a hiring manager again.” I was just grateful to get anything at this point, after all

The job itself was also far from glamorous and very slow-paced. But I took advantage of this opportunity and slow pace to learn as much as I could. Imposter syndrome’s greatest strength, perhaps, is its ability to drive someone to keep on learning. And of course, I couldn’t have asked for a better first manager, post-first job firing. I learned so much life and career advice from him.

The rest is history. I’ve grown more and more on the job and in my spare time, practicing, taking courses, solving algorithmic puzzles, networking with people with more, less, and different experience than me, and constantly (until recently) doubting my abilities along the way. I’ve changed companies several times, each environment rapidly increasing my salary (!), widening my network, stretching my skills, and challenging my preconceptions.

To be honest, though, I’m getting tired of changing jobs. 🙂 I always hope, with whoever my current employer is, that they stay that way for a long time. But if I ever get dissatisfied again, I’m fortunate to be in an industry where I can easily find another place.

Language/architecture tinkering order:

  • HTML and CSS
  • PHP and SQL
    • with procedural programming
    • and technical documentation
    • centralized version control (SVN)
  • JavaScript, more CSS
  • Java, much more SQL, some ColdFusion, much more JavaScript (with Angular1)
    • with database design, software design patterns, more technical documentation, requirements gathering
    • decentralized version control (Git)
  • Scala
    • with functional programming
    • and new technology spikes, software architecture

See also

What would I do now, if I could rewrite history?

Would I have stuck with computer science in college? I think my majors shaped a lot of my adult values and perspectives. For sure, they also shaped my social circles and role models. So even if majoring in computer science would’ve given me a much more solid foundation for software development, I don’t think I would’ve changed my majors. Perhaps I could’ve been more ambitious and minored in math. I wish I had believed in my math abilities more. I think math is incredibly value and hard for me to self-learn.

Also, apparently from the Washington Post:

Contrary to popular belief, English majors ages 25 to 29 had a lower unemployment rate in 2017 than math and computer science majors….

That early STEM pay premium also fades quickly, according to research by David J. Deming and Kadeem L. Noray from Harvard. After about a decade, STEM majors start exiting their job fields as their skills are no longer the latest and greatest. In contrast, many humanities majors work their way to high-earning management positions. By middle age, average pay looks very similar across many majors.   - 10/19/2019

But because so many software development and computer science (and math) resources are online for free or cheap, I think I can continue to gradually fill in knowledge gaps. I would be much less effective at doing that with moral philosophy and East Asian studies.

That said, I would have given myself more credit for my valuable coding hobbies and applied to more programming jobs, not just administrative ones. I also wish I had discovered sites like Udemy and edX and meetup groups like Women Who Code earlier in the process.

I don’t think coding bootcamps were a thing when I first started, but if they were, I would’ve wanted to join one--I just don’t think I would’ve been able to afford it!