How 5 Years of Failure Made Me into a Developer
Table of Contents
What you are about to read may end up being a long story by internet standards because life isn’t always straightforward, especially when it comes to the cultivation of a passion.
In all its complexity, I want to share my story of how I grew to call coding one of my passions—so much so that I’m now in a coding bootcamp run by hackerYou (soon to be called Juno) and am now on my way to getting a job as a developer.
I guess my goal and hope here is to share what it’s like to try new things, what it’s like feeling insecure about where you are in life, and, at the other side, finding a sense of confidence in who you are. More importantly, I want to illustrate through my story that a career journey doesn’t have to be linear—that’s often just literary spin—because mine certainly wasn’t.
Maybe my story can help someone like me trust themselves enough to know that they’ll figure things out, even if they don’t know how yet.
That’s basically all the intro I’ll give to frame my story. Let’s get right into the heart of it.
The Seed
I got an undergraduate degree majoring in philosophy because I wanted to feel mentally capable, and the one thing philosophy taught more succinctly than any other degree was how to think logically and clearly. It worked.
The only thing it didn’t give me, however, was a clear sense of where to exercise my mind. For me, having the skills from a philosophy degree without concrete supplementary skills felt like walking through life with a million ideas about the world but not being able to do anything about them. It was frustrating, and I felt powerless.
At the same time, I remember sitting in a Starbucks in my junior year of university talking to my partner about the urgency of technology. Whatever skill I needed to complement my philosophy degree, I told him that it needed to include computer literacy. I felt that it was unacceptable that technology pervaded so much of my life—from the moment I woke up to YouTube to when I fell asleep to Netflix—yet I knew nothing about it.
Added to that, I knew that the world was inevitably going to become fully digital one day. (This fact is painfully obvious to anyone born in the 90s or later because we’ve lived and breathed through technology our entire lives. Most of us know why it’s better and how to use it.)
This reasoning came at me all at once as an epiphany, and it planted a seed. I told myself that I would try to learn a coding language.
The First Attempt
Like any sensible person, I figured out what coding language to start with and what course to use by reading reddit posts. I settled on Python and a series called Learn Python the Hard Way.
It felt awkward but kind of powerful to learn about loops and variables and conditional logic and functions and classes. I didn’t see the value though. I just thought that it was cool to be able to do things like print the numbers 1 to 1000 in under a second on a terminal.
At one point in my learning, one exercise was writing a build-your-own-adventure game. It was hard and daunting.
After about 2 weeks stuck on this exercise, my mom asked me how my coding was going. I remember, disheartened, just saying, “It’s going alright.”
I didn’t touch code again for 2 years.
The Second attempt
Fast forward to my first 2 years post-university.
I was working a monotonous data-entry and paper-pushing job at an insurance company. The repetitiveness of the tasks led me to believe that maybe some of those loops I had learnt in Python could be of use—the ones that could print 1 to 1000 in under a second.
I found Automate the Boring Stuff, a coding series showing all the ways Python can automate daily tasks on your computer from bulk renaming folders to web scraping to traversing through Excel files.
I gave Python a second try. Once again, I found some of the tools and libraries interesting and useful in fringe cases, but I couldn’t see a powerful daily use case.
I concluded this time that maybe coding wasn’t as powerful as I thought it was.
The Failed Business
At the same time as my second exploration into Python, I became obsessed with the idea of starting my own business. This obsession came about in part because I admired the stories of the founders of companies. And since most of the highly publicized companies and founders were (and still are) in tech, I found myself once again intertwined with the industry.
I quit my job and gave myself a year to build a business—with no real idea what I’d be building. This part of the story is complex and difficult to express, but to summarize, I failed over and over again.
Building a business is painstakingly difficult, and so it requires an inversely proportional amount of willpower, conviction, and naivety to make it through the difficulty.
I learnt some of the most painful lessons about life and about myself in that year—what I was and, more importantly, what I wasn’t capable of.
The reason this experience mattered to my coding journey is that it put me in a position of brutal self-understanding. I kind of murdered my own naive, impatient optimism and replaced it with a more marathon-ready, grounded kind of optimism.
The Pivot and Third Attempt
With some of these excruciating lessons burning in the back of my mind, I found myself one day repeatedly entering a state of deep immersion (or flow) while building some of the websites for my business ideas.
I had built several of my own blogs in the past 3 years through WordPress before, so this feeling of deep immersion didn’t feel new. (Funnily enough, I usually spent more time actually building my websites than actually using them.)
My foray into websites transformed into my third attempt at coding.
This time around though, I actually started to like coding. What started out as just website design and creation turned into so much more. I learnt how to install and use Linux—even Arch Linux. I learnt how to use the command line and git. I learnt how to build iOS apps. I learnt how to create my own dynamic websites and applications using tools like Jekyll or flask.
And without fail, all of those learning experiences sent me into a state of deep immersion.
(I can’t fully say how, but I think coding came easier because books like Doing Good Better taught me how to think more quantitatively.)
With a mix of desperation and those hard lessons I was still learning, I started to take coding seriously—like as a career.
To be honest, even then I didn’t feel 100% about the idea of becoming a developer though. I felt inadequate because coding felt like a daunting subject matter full of maths.
In a situation of indecision though, I decided I would start an experiment to answer my own worries.
Six months into my year-long business experiment, I pivoted to a new experiment: I would give myself one year to teach myself code, and I would aim to become an employable developer by the end of it.
But, as you can guess by now, it didn’t work out exactly the way I wanted. Six months into my coding experiment, my motivation started to wane. It was hard to wake up every morning and just code in a vacuum. I also didn’t want to completely drain my finances, so I got another job.
The Job Where I Got to Code
While still teaching myself code at home, I approached my new job with the goal of getting coding experience—even if my job title didn’t include the word “developer”. To do this, despite not feeling 100% confident about it, I explicitly told my employers that my aim was to become a developer. I wanted that to be clear from the beginning, so my employers knew how they could facilitate my growth within the company.
The amazing thing about having clear goals is that it led to opportunities. Because my employers knew what I wanted (and I made sure to remind them of it), I found myself taking on more and more technical responsibilities that involved code here and there.
Unlike my last job, I was able to actually automate some of the tasks that I thought weren’t automatable. For example, I built a script using AutoHotkey that allowed my team to copy a row of Excel values and instantly re-type them 20 times in a different order in a separate program. That little script alone gave me the opportunity to then work on a project using an SQL database and led me to automate half of one of our workflows using VBA in Excel.
Additionally, I was given multiple opportunities to build websites for the company, and it all started when my manager gave me the chance to create a website mockup for an upcoming meeting—all because he knew I was interested in that work.
All my wins at my company taught me that I was capable enough to create useful things as a developer. More importantly, I realized that coding can never be done in a bubble. Coding builds tools, and tools only have value if they’re used. That’s part of the reason why self-teaching was sometimes hard for me.
As a result of my experiences at my last job, I built the confidence to say with 99.9999% certainty that I am going to make coding my career.
Now, once again, I’ve quit my job. This time though, I’m taking the plunge into hackerYou’s web development bootcamp. And almost two years after starting my experiment to learn coding and get a job as a developer, I just might!
I truly hope sharing my story in all its layers helps someone in any way. If you made it this far, thanks for reading!
Too Long; Didn’t Read
Writing all of my experiences out in this story, I think some of the lessons lodged inside that can be pulled out include:
- Life isn’t a linear journey.
- Just because you couldn’t do something or didn’t like something the first time doesn’t mean it’s not for you.
- Life is a marathon, not a race.
- One good indicator that something is worth pursuing is whether it puts you into a state of deep immersion or flow.
- Clear goals communicated to yourself and others create opportunities.
- Don’t live in a bubble; the world makes so much more sense when you’re out there acting and living as part of it.