Stephen Smith

My Journey To Programming

2023-05-07

Life has a funny way of presenting us with unexpected opportunities and challenges, taking us down new roads we never thought we'd explore. As I hit the big 3-0 this month, I'm looking back on my journey from a life immersed in music to an exciting new career as a full-stack software engineer.

My experience may not be entirely unique, but during times when I doubted my capabilities and questioned my choices, discovering and connecting with others' stories helped me to persevere. So I will attempt to document my own experiences in the hope that someone looking for motivation might just stumble upon it.

The Creative Grind

For the better part of my life, I've been a recording and performing musician. I've busked on the streets of Melbourne, Sydney, and Brisbane, played in packed nightclubs, and hit the coastal road for tours with my mates. My music career has led me on incredible adventures and created memories I'll cherish forever, but it wasn't always smooth sailing. There were times when inspiration ran dry, gigs became scarce, and winter made busking near impossible. Like many artists, I occasionally found myself seeking more traditional jobs to make ends meet.

S.J. Smith - Caravan (Dec, 2015)

Although there was nothing inherently wrong with the jobs I'd held (mainly in hospitality and retail), they never provided the sense of challenge or fulfilment I craved. While these positions certainly equipped me with valuable physical and soft skills that I continue to utilise today, I was never truly passionate about the work I did; it was merely a means to an end.

In early 2020, when the world remained blissfully unaware of the changes about to take place, I had just wrapped up a debut album that took me a couple of years to create. I was getting ready for a big release and planning a small tour to promote it. But, as we all know, 2020 turned out to be the year from hell. Although I went ahead with the album's release, the subsequent two years of intermittent lockdowns in Melbourne effectively derailed any plans I had to promote my work.

Feeling worn out at this point, and after more than a decade of pouring my heart into music, I knew I needed a change. First off, I wanted to make music just for the fun of it - I was tired of trying to make an income from my art and simply wanted to enjoy it again. But I also craved some kind of career. I wanted to pay the bills, buy a home, do all the adult things, but I also wanted to find meaningful work. I just didn't know what that could be.

In early to mid-2021, I still hadn't figured it out. By that time, I'd been working as a carpenter for six months. My friend's company had hired me to clean bricks during the lockdown (a job I'd never wish on anyone), but it turned into a carpentry apprenticeship that helped me get out of the house and earn some money. However, most of my free time was still spent indoors. For fun, I decided to build a PC, something I'd always wanted to do but never got around to. Around the same time, my older brother in Brisbane completed a coding bootcamp and landed a contracting gig as a junior developer. I was incredibly proud of him, and also inspired. That's when it hit me: Why not give coding a try?

Discovering a Brand New World

I began with a free Python course on YouTube, specifically Mike Dane's course on the Free Code Camp channel. A huge shout out to Mike — he's an amazing teacher, and I owe him a lot for teaching me many of the fundamentals for free! After learning the basics, I started experimenting by creating whatever came to mind. One of the first things I made was a live weather painting that ran on a Raspberry Pi and e-ink display. Then I wanted to create apps I could carry around and tinker with during my work breaks, so I bought Angela Yu's Flutter/Dart course on App Brewery and learned how to make mobile apps. Angela is another fantastic teacher who introduced me to concepts like Object Oriented Programming and how to organise and refactor code. With Flutter, I created a small construction calculator for work, which I'm now rebuilding in React. After that, I wanted to learn how games were created, so I learned some C# and Unity. I made a 3D rocket game where the player could fly around and navigate a course, searching for fuel along the way. It was just a bit of silly fun but still an excellent learning experience.

Low-quality rendered 3D rocket in a dark cave with floating round objects
A crappy 3D rocket game I made learning C# and Unity

As I experimented with different languages and frameworks, I found joy in the general process of thinking logically and solving problems. The cycle of trying, failing, and finally succeeding was rewarding, even when I was just working on silly experiments.

At this point, I was completely hooked on coding. When I wasn't working, I was coding, and if I wasn't coding, I was watching YouTube videos about coding or chatting with my brother about it. I wanted to try every framework and shiny new tool I came across online. Around this time, I started working on the Mornington Peninsula, helping build a modern farmhouse and guest cottage with ocean views. It was an incredible experience, but it meant waking up around 5am and driving two hours to get to work. The commute home was even worse, as we'd hit the city during peak hour, and some days I wouldn't get home until 6pm. But it didn't stop me from coding — I'd code all evening until midnight, then wake up at 5am and do it all over again. I also started listening to tech podcasts during my commute. Back then I was mostly listening to Code Newbie. Listening to stories about others who had transitioned into the tech industry kept me focused.

I'm feeling exhausted just thinking about it, but at the time I felt like I'd found a new passion, and the prospect of turning it into a career truly excited me. One day after work, I remember taking my dog for a long walk and calling my brother. I'd been considering the idea of joining a bootcamp, but for some reason, I felt like I needed someone else's approval. I told him how I felt and asked if he thought it was a good idea and if he believed I had what it takes. He was incredibly supportive, and I'm so grateful for that because the following week, I attended the Coder Academy information night webinar.

I'd like to pause my story for a moment to give a special shout-out to my brother, Derick Yearnsmith. Although I received plenty of help from online tutorials and an amazing bootcamp that I'll discuss soon, my brother is the true MVP of my programming journey. He was always there to simplify programming concepts that I struggled with, he introduced me to git, helped me set up my Linux environment, and taught me how to write aliases and bash scripts. Okay, back to the story...

Honing My Skills, Finding My Niche

I embarked on Coder Academy's Web Dev Bootcamp in early 2022, leaving behind my carpentry job to fully immerse myself in the intensive 10-month program. Luckily, I had the support of my amazing partner who took up the slack and paid for groceries and most of the bills while I focused on study. Indeed, it was a challenging 10 months. Although I initially had a slightly better grasp of the fundamentals than most of my classmates, by the end of the first month, I found the course just as demanding as everyone else did. Around this time, the class size also noticeably shrank, but those who stuck around were in it for the long haul.

While the bootcamp primarily focused on web development, as an accredited course, it also required students to learn discrete mathematics and computer science fundamentals to obtain a Diploma of IT. To my surprise, I thoroughly enjoyed learning about sorting algorithms, base conversions, and weighted graphs. In terms of coding, we began learning Ruby, and created a terminal app before moving on to Ruby on Rails and PostgreSQL. After that, we dove into JavaScript fundamentals, the DOM, the Event Cycle, and Web APIs. In the final part of the course, we explored the MERN stack, which includes MongoDB, Express, React, and Node.

During the course, I found a new appreciation for web development. I loved researching out a problem, brainstorming a solution, and then making a user-friendly, accessible web app that attempted to solve the problem. I also realised how important accessibility is on the web, and learned the value of using semantic HTML to build user-friendly interfaces. In another twist, I actually enjoyed learning CSS; while most opted for Bootstrap or Tailwind early on, I chose to hone my custom CSS skills. I was inspired further by resources like Chris Coyier's blog and his Shop Talk podcast with Dave Rupert. I also spent many nights consuming Kevin Powell's fantastic YouTube content. I actually stuck with custom CSS for the entire course, only picking up Bootstrap for our final assignment. (I was so excited the first week of learning CSS I built a set of interactive CSS-only flashcards that I think still hold up to this day.)

White flash cards, styled like playing cards on a pink background
Interactive flash cards made with only CSS

For our final assignment, we were paired up to create a full-stack MERN application. I was fortunate to have a partner who was equally motivated as I was. In just a few weeks, we developed a live chat application for agencies that tracked the amount of billable hours their agents spent talking with clients. Although we were new to the MERN stack, we also had to learn how to use web sockets for the live chat functionality. In preparation for building the application, we interviewed an actual marketing agency to research the problem and developed user stories and a task board. I was really proud of the end product, and it was a perfect end to an intense 10 months.

Chat application with a modern green and purple user-interface.
Our final assignment, a live chat application with group chat and time-tracking functionality

I completed Coder Academy in October last year, while the tech industry was experiencing a downturn. Companies had been hiring aggressively during COVID, but it appeared that things were slowing down (I think this was still before the mass layoffs had started) . I knew it wouldn't impact me too much in Australia as a junior dev job seeker, but you could feel it in the air. Coder Academy typically did a great job securing internships for most of its cohorts, but despite their best efforts our group seemed to struggle with finding placements, and I personally wasn't getting any responses. I had one interview for an internship, which was an utter disaster and something I'll save for another blog post. I'll just say that I applied for numerous jobs during October and November, and mostly received generic emails in return, along with a few "get back to us in the new year" type of replies.

I vividly recall applying for SwiftFox. After the course, I had been learning additional skills like TypeScript and MUI to get ahead, both of which were mentioned in the job ad, along with several other things I was quite comfortable with. I saw the ad pop up on LinkedIn around 12pm and must have been one of the first to apply within the hour. I also emailed the hiring team and spent the next few hours researching the company and watching their webinar recordings. I was pumped – the job seemed like a dream first gig, and the company appeared to be developing software crucial for organisations striving to make a difference in the world. It was an opportunity to begin my career doing something meaningful, the kind of career I had set out to find two years earlier.

However, I didn't hear back for quite some time. Throughout the holiday period, I had almost given up on the idea of hearing back from them. I just continued working on my side projects, applying for jobs, and calling my brother to chat about coding. Then, unexpectedly, over a month after applying, I received an email. They had seen my application and were genuinely impressed, inviting me to advance to the next round! Needless to say, I was ecstatic. I had two interviews with the hiring team before receiving a job offer, and it was a pretty smooth interviewing experience overall. I could tell by how at ease I was during the interview process that I had found the perfect place to start my career as a developer.

TL;DR: Reflections On My Journey

I wanted to share this story because one of the things that really helped me through my career transition was listening to other people's stories. It's quite optimistic of me but I hope that this post might give inspiration to someone who is in the same position as I was 2 years ago.

If you didn't read the entire post (and I don't blame you), I asked ChatGPT to summarise my journey into some key takeaways and lessons:

  1. It's never too late to pursue a new passion and make a career change, as demonstrated by the author who transitioned from music to coding.
  2. Persistence and self-motivation are key in pursuing a new career, as the author spent long hours learning and practising coding while working as a carpenter.
  3. A strong support system can go a long way, with the author's brother providing guidance and support throughout their coding journey, and their partner providing financial support while they studied full-time.
  4. The abundance of free online learning material is highlighted in the story, with the author utilising free resources like a Python course on YouTube and online tutorials to explore new programming languages and frameworks.
  5. Overall, the story serves as an inspiration for anyone considering a career change or exploring a new interest, emphasising the importance of following your passion and utilising available resources with the support of those around you.

Wow, well done ChatGPT. I couldn't have put it better myself.

I want to finish this post by acknowledging some of the resources that helped me on my journey. I truly believe you don't need a fancy degree to get started in the tech industry, and it's largely thanks to wonderful people like the ones in this list, who are sharing their knowledge with the world:

Podcasts I regularly listened to:

YouTubers I frequented:

Blogs I've read:

These are just the ones I remember off the top of my head. As I remember more I'll add them to the list.

And of course another shoutout to Coder Academy, and my brother Derick Yearnsmith.