logo

My Journey to Web Development

me

February 7, 2024

Daniel Larkin

Featured image

The Beginning: Objective-C

My first experience with programming was with Objective-C, the legacy language used in iOS development. The year was 2013 and I was inspired by the seemingly overnight success of the mobile game "Flappy Bird". Back then, it was widely reported that the simple game was created by a lone developer in only a few days time and that the creator was being compensated handsomely through ad revenue generated by the app. Eventually, the pressure on the dev became so great that he ultimately decided to pull the game from the app store, citing his worry that people were spending too much time playing the game. By the time the app was taken down, I had heard enough and decided that I wanted to build an iOS app of my own. The logical first step was to learn the language of the iPhone: Objective-C.

If you're familiar with programming, you can probably imagine how that went. I was young at the time, a sophomore or junior in high school, and I had no prior programming experience. Although I quickly picked up on the basics of variables, functions, data types, and control flow, Objective-C is a notoriously difficult language to pick up, even for seasoned programmers. Beyond the basics of programming, I struggled with the concepts of memory management and UI/UX design, critical components to building quality iOS apps, so, like the Flappy Bird dev, I became overwhelmed and eventually hung up the idea.

Rediscovering Programming: Swift

Fastward 6 years to my final year of college, with grad school set to start later that year, I was reminded of my interest in building iOS apps. I had heard of Apple's new language, Swift, that was reported to be much more accessible than Objective-C and decided to dive back into iOS development as something to occupy my time during the summer.

My second go at programming went much more smoothly. After a refresher on the basics that I had learned years earlier, I sailed through the Udemy course I was taking and made several iOS apps. To my surprise, many of the apps actually looked and functioned really well. Overall, I found Swift a much more pleasant working experience than Objective-C and learned valuable skills that I still use daily as a web developer, such as using the command line, git, installing and using third party packages, and building multi-file projects that scale.

Forced to Quit

Ok, so I wasn't technically forced to quit iOS development, but it sure felt like it at the time. The problem was the system I was using was a bit dated, and in the Apple ecosystem, that meant I was no longer able to update to the latest MacOS and therefore unable to use the latest Apple developer tools. On top of this, I had just started grad school and decided, once again, to put programming on the backburner. This time, however, I knew I had the skills to pick it up much quicker when I was ready to.

Web Development

The pandemic hit right in the middle of my second term of grad school and led to the cancellation of an internship I had lined up for the summer of 2020. With the state of the world turned upside down in what felt like overnight, I came to the realization that coding could be more than just a technical skill, it can be a skill that provides stability in uncertain times. So, during the initial phase of social distancing during the pandemic, I put my "out-dated" MacBook back into service with a new SSD and upgraded memory (I still use this system today) to begin a dive into web development. Through the rest of the year, when I wasn't working on school related projects or working, I was learning everything I could about the web and its technologies.

By the time New Year's Eve rolled around, I had several web development projects under my belt and decided it was finally time to pick up React. After that the rest is history. I fell in love working with React and building web applications. I’m even at the point now where I feel like the web is the future and native apps on iOS or Android will only be required in certain specific scenarios. Standby for a post on this topic.

My Current Stack

I'm constantly learning and experimenting with new web development technologies. However, I've found myself settling into using NextJS as a full stack framework with TypeScript & TailwindCSS. When it comes to working with data and databases, I really enjoy working with MySQL or PostgreSQL along with an ORM like Prisma. I absolutely love the developer experience when these technologies are paired with something like tRPC. It makes building web apps a true joy!

Conclusion

I mainly wrote this post so I had something to put on my blog page when I deployed my site, but I hope it helped you learn a bit more about the experience that has shaped my web development journey. No matter where you are in your journey, never forget to keep learning. If you're starting to get bored, it probably means it's time to learn something new!