Learning to Code

a screen with computer code

When I was 28 I ran a marathon. This came hot on the heels of my having bench pressed 225 pounds for the first time, and marked the culmination of a half decade of hard work. I had successfully transformed myself from an overweight slob to an extremely healthy fitness enthusiast, and now needed a new challenge. Nearing my fourth decade of life on Earth had begun to wear on me slightly, as I'd had numerous jobs but nothing which I would be happy doing long term. I wanted a career.

I happened to have recently gone on a few dates with a young woman who had transitioned from chemical engineering into web development, and the way she described her new position greatly intrigued me. I had lived in Northern California in my early twenties and knew people in the tech industry - many of whom had suggested that I would be good at coding - but had never really seriously considered it as an option.

I reached out to my cousin Ben, an experienced web developer with a degree in Software Engineering, and told him I was thinking of getting into tech. He responded enthusiastically and offered to mentor me throughout the learning process. His faith in me was invaluable, as was the knowledge that he and I are extremely similar in aptitude and disposition. If he could write code well, surely I could learn to at least do it adequately.

I began investing as much time as I possibly could into learning to code, starting with HTML, CSS, and computer science. I audited courses online, watched dozens of videos, and began to use Codecademy and other similar resources to get some practical experience. Ben and I video chatted a couple of times each week, allowing me the opportunity to directly ask for clarification of anything which was confounding me. His answers often went over my head, even as he attempted to dumb himself down for my benefit.

After a few weeks I purchased a web development bootcamp on Udemy and began to broaden my horizons to include JavaScript and React. Progress was slow in coming and it always felt like the more I learned, the more I realized there was to learn. I knew that the only way was forward, gradually building my comprehension brick by brick. It was still difficult not to lose faith.

An invaluable part of the learning process was the positive reinforcement of incrementally being able to understand more and more of what Ben was telling me with each passing week, and consistently being able to use more specific and technical terminology in our discussions. Equally valuable was the fact that every time I felt I was starting to get a handle on a technology or concept, I would discuss it with him and realize how far I was from achieving mastery. This kept me hungry.

About three months into the process my skills had developed to the point where I was able to start building simple websites. I continued my theoretical learning but devoted most of my time to practical application of my burgeoning abilities. I began to improve by leaps and bounds in efficacy as I applied what I had learned in a hands-on environment. Gaps in my knowledge were exposed organically as I attempted to implement new features, and repeating simple processes solidified them in my brain.

A few months later I began to dedicate the bulk of each day's programming to coding challenges which I found on various websites, principally Codewars. This vastly improved my ability to think programmatically and approach problems as an engineer. There's nothing quite so frustrating as being stuck on a problem, but also nothing quite so satisfying as figuring out its solution. I spent about six weeks completing over 300 challenges, which was tremendously fun in addition to being extremely beneficial. I've always loved Sudoku, and this was essentially just a different sort of puzzle. The difference is that nobody makes a career of solving Sudokus.

I was positioned well for success when covid-19 forced us all indoors, having already spent a number of months alone in my room in front of my computer. My productivity increased exponentially as all other distractions in my life melted away and I completed a number of new projects, expanding my knowledge base all the while. I became the stereotypical programmer, writing code from sunup to sundown before signing off and realizing I'd consumed nothing all day save for a dozen coffees. I looked the part too, as I lost over 40 pounds.

Imposter syndrome is the sneaking suspicion that one is secretly incompetent and unqualified for one's work, and is omnipresent in the mind of virtually every single person who writes code. I am no exception, so one of the happiest moments of my life was when Ben told me that I was ready to start contributing to a professional codebase. His validation meant the world to me since I'm ultimately incapable of assessing where I stack up compared to other programmers. Since then I've been applying for jobs as a developer, having built this very website to showcase my portfolio of applications to prospective employers. The process has been long and challenging, but it'll all have been worth it once I get my foot in the door of the tech industry. I just need someone to give me a chance.

My favourite part of my chosen field is that it never stops evolving. The status quo is frequently disrupted by brilliant people who invent increasingly efficient and abstract ways to communicate with computers. Even the best and most experienced programmers in the world constantly have to incorporate new tools and design patterns into their work, so the primary skill that makes them exceptional is their ability to quickly comprehend and internalize cutting edge concepts. I would have learned to do things in a radically different way if I had taught myself to code a decade ago, and many of the technologies I use today will be archaic and obsolete ten years from now. I find this incredibly exciting because it means that there really is no such thing as achieving mastery of programming, only mastery of the ability to learn to program. The journey is the destination, and it never ends. This suits me perfectly, as there's nothing I love more than teaching myself new things. It's the only way to grow.