Skip to main content Farid Yusof's Blog

Chronology of How I Became a Software Engineer

cover

I started becoming interested in computers when I was very young. Back then, I still remember using Windows 3.1. Although the main purpose was just to play Prince of Persia, I kept tinkering with other things too. Calculator, PaintBrush, and whatever I could explore.

As a kid, I really loved playing games. To the point where my parents would get angry because I was always gaming. At that time, my mother was still studying. She brought home books about computers, if I remember correctly, Borland C. I tried to implement the simple instructions from the book on the computer. By then, I was probably already using Windows 98.

Besides learning basic things, I also experimented a lot with modifying existing software, changing icons, changing software titles, and so on.

The dopamine rush kept hitting every time something I tried actually worked. This was also the period when the internet was just starting to become popular. Who doesn’t remember the loud, screeching modem sound that took more than a minute before you could finally open Yahoo Messenger?

Around this time, I started to understand FTP. I uploaded websites (HTML), built my own site using Microsoft FrontPage, then upgraded to Macromedia Dreamweaver. I uploaded everything to the server using FileZilla. At that point, I didn’t really know how to code websites yet, but later on, I started learning Perl/CGI and then PHP. All of this was coded inside Macromedia Dreamweaver.

Fast forward a few years later, there was a period when the internet / telephone line at home was cut off. If I remember correctly, I was in matriculation at the time. Mobile phones were becoming popular, with various Nokia models everywhere. Somehow, I managed to get internet access on my laptop through tethering. There were two ways, as far as I remember:

  • TMNet dial-up using a mobile phone line
  • GPRS tethering

Both worked, but TMNet dial-up using the mobile line was faster than GPRS. So I used my parents’ mobile phone for this. The result? Their mobile bill skyrocketed.

When I was in university, I became heavily influenced by the internet, especially the concepts of server-client architecture and MMO (massively multiplayer online) systems. I was deeply into the Ragezone forum. That’s where I learned a lot about networking and tried to understand how distributed or client-server systems actually work. Everything was unofficial, there was no formal course like in class. Servers went down, got hacked, social scams, I’ve experienced all of it. These are some of the servers I built:

  • Forsaken World
  • Jade Dynasty
  • Perfect World
  • Risk Your Life (RYL)
  • etc.

To be honest, through trying to create game servers, I learned more about software in general, how it works, and this was further strengthened by the theory I learned in class.

All the MMO games I built had to be promoted using websites. This was when I used a lot of PHP, MySQL, and jQuery.

Up until now, I’m still learning. Technology moves fast, so we have to learn fast too. In the context of backend development, my journey went like this:

shell code snippet start

PHP → Java → Node.js → C# → Go → Rust

shell code snippet end

What I gained from this journey is a strong foundation. The fundamentals remain the same and don’t shake. Just like a house whose foundation is its pillars, and just like Islam whose pillars are its core principles.

Whether you’re a vibe coder, an AI-assisted coder, or a “real” coder, the fundamentals are still the same.

comments powered by Disqus