My Technology Origin Story

How did I get interested in computers and programming?

Well, I grew up around computers. My parents were pretty technologically inclined, so we had computers and printers around the house. I particularly remember playing educational video games on a Compaq and later on, other games like Jump Start 2nd Grade, Pajama Sam, and Putt-Putt and Pep’s Balloon-O-Rama. My older brother also spear-headed the family in the console video game department. We had a SNES, then an N64, then a PS2 which accounted for a lot of my childhood.

My older brother was also really into computers and built many of them from parts. He also got into PC gaming, so when I expressed interest in Portal, he advised my parents to get me the Orange Box for the holidays, which is a bundle of games including Portal, Half Life 2, and Team Fortress 2.

I got a Steam account, and after beating Portal, I tried the other games in the pack. Long story short, I got into PC gaming and started playing one influential game: Garry’s Mod. I spent an embarrassingly number of time playing that game. In fact, I just checked, and I have 2,701 hours on record. I’m pretty sure I sometimes left the game running while I did other stuff, but that’s just a poor excuse for my addiction.

I actually remember the exact moment that I became hooked. It was when I discovered you can make things that move. I made a drawbridge style door (in the darkroom of gm_construct) and my mind was blown. What solidified the addiction was an add-on called Wiremod. This mod introduced logic gates, buttons, and “electrically” controlled components. I spent hours and hours learning how to build a countdown timer from logic gates to eventually build a “defuse the bomb” minigame. I learned how to use a player entity detector to build an automatic door. I used distance sensors to build a fort with lasers that would shoot anyone that tried to enter. I built elevators, intricate houses and bases, and cars, planes, and teleportation machines.

One specific component introduced me to software: the Expression 2 chip. This was a chip that allowed you to define your own inputs and outputs and interact with the server via Lua-like code. The interesting part is that you can write code in the game that interacts directly with the game. You can apply force to objects, get player coordinates and viewing angles, read from the in-game chat, and so much more. I made things hover above my head and change my player’s color (rainbow of course), an autoturret that I could control from chat, a hologram minimap of players on the server, and even a computer with a chat system. The possibilities were quite literally endless. Looking back, the biggest takeaway was that I was learning how to read docs, test and debug systems, and use complex geometry and math to manipulate physics. I learned in a way that was extremely rewarding to me, and it never felt like school. The reward for figuring something out was being able to use it in the game and show it off to my friends.

In high school I took computer science classes where we learned Java. With my background in Garry’s Mod, it came pretty easy to me. I also attended some extracurricular computer science competitions. I specifically remember the first one I went to. Not the competition so much, but my dad driving me to drop me off at the school. It was early in the morning, and I was nervous (being an introverted kid). My dad encouraged me and said it was good to give things a shot. I’m glad I did because I had fun with my friends on those trips. Another notable memory was using a vending machine at one of the schools and getting gold dollar coins as change.

Since I liked computer science in high school, the natural choice was to major in it in college. I started off my college career studying computer engineering in which one of the required classes was digital systems and design, and I absolutely loved that class. It taught me about transistors, digital logic chips, and breadboarding. I was hooked and switched to major in both electrical engineering and computer science. During my time in college I picked up a few different languages (including C and Python) and developed an interest in low-level programming, linux, and security.

I could keep going, but where does an origin end? I probably overshot it and could’ve ended this post two paragraphs ago. Oh well! Thank you family and Garry’s Mod :)