How I Entered the World of Programming: A Personal History
Tags: beginners, motivation, programming
Published: 2024-05-18 20:54:05

Games have always been a part of my life in some shape or form. Whether it be the Pokemon game I obsessively played on my GameBoy I got as a consolation prize for a would-be PSP, or the Tomb Raider disc a friend of mine and I broke by playing it so often that it shattered in the CD reader. As time passed, I played more games, which gave me many memorable firsts. [Elder Scrolls Skyrim](https://store.steampowered.com/app/489830/The_Elder_Scrolls_V_Skyrim_Special_Edition/) made me realize the beauty of an open world that you can get lost in. [BioShock Infinite](https://store.steampowered.com/app/8870/BioShock_Infinite/) is a story that I still contemplate today. [Limbo](https://store.steampowered.com/app/48000/LIMBO/), while seemingly simple, inspired awe in me at how so much can be said without any words ever being spoken. Finally, [Undertale](https://store.steampowered.com/app/391540/Undertale/) gave me an interesting perspective on how I as a player might appear to the NPC characters.

As time went on and I continued playing games, I found myself growing more and more curious about how they are made. How did those healing spells I spammed in Skyrim work under the hood? How can entire worlds exist in a laptop that fits on my lap? How did Flowey in Undertale mess with me so much? As these questions grew, I found myself naturally curious about this laptop, console, and phone that housed my entertainment. And so in 2014, I decided to learn about computers in high school. At the time, I never realized how much that choice would impact my future but looking back on it now, I'm surprised that I even considered not doing the course because I was afraid it'd be too hard.

In high school, I had the preveladge of doing the [CS50 course](https://pll.harvard.edu/course/cs50-introduction-computer-science) as our teacher at the time believed it would greatly benefit our future prospects and honestly, he was right. This one course introduced me to the field of Computer Science in a completely different way from the dry lifeless textbooks that were part of the curriculum. Through the course, I saw myself progress from struggling to print "Hello World" as we used the C programming language, to spending 2 weeks pulling late nights with my study mates trying to solve the [pyramid problem](https://cs50.harvard.edu/x/2020/psets/1/mario/less/) (this was the first time I appreciated that <space>(" ") was a real character). As time went on and I continued failing forward, I saw myself progress through the course material and learn deeper concepts like pointers, memory management, data structures, and at some point in that journey I was reading the JPEG documentation because one of the tasks in the assignment I had to do was recover deleted images from a supposedly erased storage device (Best assignment ever by the way .... took me a month to get it working somewhat though).

From this course, and the expert guidance of my teacher, I got a taste of many computer science fields like low-level programming, game development, and web development which gave me a firm foundation when I later went on to study Electrical and Computer Engineering in university. It was a great program and I will always recommend it to anyone who wants to learn about Computer Science (It's free by the way).

Now having shared all this, some may wonder if I am getting to any point of greater truth. The simple answer is no. I just wanted to share this story to express how strange and beautiful life can be. I never imagined that the Gift who was busy messing around with his Pokemon cartridge would later learn so much about computers and programming and even get the opportunity to create more programs that I believe help make life for a small group of people that much better. Granted, I'm not a professional game developer but, that was never really my intention. To me, games became a part of the greater body of computer science and became one of the many reasons I love this field. From those games, I learnt about computers. From computers, I learnt about the Internet. From the internet, I learnt about web development. And finally, from web development, I got to enjoy solving interesting and difficult problems at work. And to think my path in life would have been completely different if I had been afraid to take that 1 simple computer science course in high school. It made me wonder how often we leave the potential of a wonderful future because of our fear of our present-day reality. And so, I thought I'd share this post in turn so hopefully someone else might find the courage to take that first step on their journey. You never know where the road will take you.

With this article. I've also decided to take my own advice and start this blog that I've been thinking of doing for over a year now. So, look forward to more completely unrelated posts or maybe they'll be related. I'm sure time will tell as they come out.