From Playing on PC to Building Software: My Journey into Programming

Joaquin Diaz - Sep 16 - - Dev Community

My First Encounter with a Computer

It all started many years ago when I was just a kid, and my dad brought home a 486 PC. Back then, every time he went to work, he’d let my brother and me use it, and that’s how it all began.

I quickly learned how to navigate through the system directories using a few basic commands, and while I only remember using the classic MS-DOS text editor, that wasn’t the point. What really blew my mind were the video games, especially one in particular: “Prehistorik”. I spent countless hours battling dinosaurs and solving the game’s challenges. That’s when my curiosity and love for computers were born.

A New World

Every few years, we’d upgrade our computer, and with each new machine came more innovations and possibilities: 5 1/4 and 3 1/2 inch floppy disks, the mouse, better monitors, more disk space, more RAM, and so on.

And with that came new games. I particularly remember Prince of Persia, Maniac Mansion, Monkey Island (the GOAT), and Wolfenstein 3D. These experiences weren’t just entertaining, they also taught me new things about how to interact with technology, often without me even realizing it.

Time passed between one game and another, and soon it was time to decide what to study. Although I had many interests, so many years in front of a screen left their mark on my subconscious. And off I went... a Bachelor’s Degree in Computer Science.

Time to Really Study

The Computer Science degree wasn’t what I expected. It was a world filled with complex mathematics, algorithms, new concepts like recursion and pointers, computer architectures, system design, statistics, compilers, and many more topics.

I learned to program in languages like Assembly, Pascal, Lisp, Delphi, and Java. These first steps were tough, but they were fundamental for what was to come. Little by little, I improved and began to understand how software worked.

By this time, something new had emerged called “the Internet”. Maybe it could be used for more than just sending nudges on MSN Messenger.

First Job

At some point, the opportunity for my first job came along. A friend offered me the chance to work on HTML and CSS layouts for WordPress sites, all compatible with Internet Explorer 6 (yes, the horror), but it was freelance and remote. What started as small projects gradually grew. I began playing around with PHP, a bit of JavaScript, and learning the quirks of working on the web.

Not long after, another friend from university told me about an opening at the company he worked for. I applied, went through several interviews, health exams, aptitude tests, and who knows what else. Finally, I got the news: “You start next Monday”.

This was my first formal office job. Surrounded by people with much more experience than I had, I learned 90% of what I would apply in the next ten years. Beyond the technical knowledge, the most important thing from this job was that all my dev colleagues became great friends to this day, and it was one of the best teams I’ve ever been a part of.

I had four courses left to graduate, but I decided to focus on work, at least for a year, then I’d go back... spoiler alert: I never finished my degree.

Absorbing Everything

Working at a startup often means rolling up your sleeves and doing everything. We coded, did deployments, configured servers, backed up data, provided support, monitored different products, estimated new features, and more.

It was a dynamic environment, where I encountered technologies like MS SQL Server, Entity Framework, VB.net, and C#. It was a time of intensive learning in databases, design patterns, testing, web, and desktop applications, and many other areas of software development.

It was also my first experience with agile methodologies and version control technologies like TFS and Tortoise SVN. It was a constantly evolving world, and there was always something new to learn every day.

New challenges

Over time, and with some job changes, my path started leaning more toward backend development with .Net and mentoring junior developers. In one of these projects, I got a glimpse of a frontend framework they were using: AngularJs.

Suddenly, a new challenge came up: a temporary project that required full-stack skills, particularly C# and Angular. They urgently needed 2 people for the positions, and they offered me a few months of ramp-up on the frontend. I accepted and recommended a colleague specializing in frontend who I was working with. They hired her. We shared knowledge, I learned a bit more about Angular, and I explained what I could about the backend.

Three years later, we had turned that 3-month temporary project into a long-term project for the consulting company we worked for, hired over 40+ people for that client, I had my first trip to the US, and made new friends who I’m still in touch with today.

Pandemic

Then came layoffs due to mergers and the pandemic, a new reality. COVID-19 hit.

I decided it was time to explore new horizons and focus on personal projects with Node.js and Python. However, with the rise of cloud platforms and microservices everywhere, I found myself moving away from backend development and decided to return to my roots: frontend.

The latest version of Angular at the time was pretty cool, but there was a lot of hype around React and Vue, so I decided to build the same small project with all three technologies. The one I enjoyed the most was React.

I dove into that new world, discovered hooks, and soon landed my first formal job as a frontend developer with React.

Since then, I’ve stayed in frontend-oriented roles, with occasional adventures into backend development with Node.js or Go.

What I’ve learned along the way

What started as playful curiosity turned into a career that has opened many doors for me: I’ve had the opportunity to travel, meet amazing people, stay up to date with the latest technologies, and, above all, learn something new every day.

It’s not always easy, I still struggle with imposter syndrome, but that’s part of the process. Over the years, I’ve worked with complex architectures, microservices, microfrontends, UI component libraries, various AWS services, CI/CD pipelines, and I’ve seen a lot of things, from the chaos of a small startup to the structure of large corporations. And I’m sure the best is yet to come.

The world of development never stops evolving, there’s always a new approach to learn and emerging technologies. I’m looking at you, AI.

And here I am, after that first game of Prehistorik... centering a div.

. . . . . . . . .