Roy Tang

Programmer, engineer, scientist, critic, gamer, dreamer, and kid-at-heart.

Blog Notes Photos Links Archives About

Origin Story

A while back I answered a question over on Quora about how I got started down the path of programming. It’s not a particularly interesting story, but I still thought I’d record it here for posterity.

Sometime when I was much younger, maybe somewhere between twelve to fourteen years old, I remember having some sort of QBasic programming learning book at home. I forget how we got it, I think my uncle brought it home for me sometime for some reason. I don’t know why he would have such a thing, we didn’t even have a personal computer at home (we had a Nintendo Entertainment System, but that wasn’t really the same thing)

In spite of that, I took to the book easily. In fact, I kind of devoured it with a passion. Not that it had a lot of information. It was maybe 20-30 pages long, and I remember the font being a bit too large so I guess it was really meant for a younger audience. (It was the early 90s though, what kids learned QBasic in those days? Very few families even had computers in the Philippines then)

It was extremely basic (pun intended), with pages dedicated to line numbers and print statements and if statements. I remember that most of the control flow discussion centered around the use of GOTO which I would later learn was very bad. But I was fascinated with the idea of programmable machines. That you could give this machine a set of instructions and it would do what you asked. For the first time, I had a glimpse of the mechanisms behind those video games I loved to play. I read that book cover to cover again and again. It seemed like the possibilities were endless. My imagination was set afire.

Some time later, and for some reason I don’t remember anymore, my parents signed up me and my younger brother for some sort of computer usage basics class at the nearby mall. I think it was like 2 weeks of daily classes during one summer. The guy taught us stuff like how to use the command line (Windows wasn’t really a thing yet at that time). It’s kind of silly, but I don’t really know what else we were taught. The main thing I remember from those sessions was that my brother and I figured out how to render “art” to the screen by printing out extended ASCII characters using batch files. Whatever it was the guy was teaching us, we quickly devoured and went through, which gave us a lot of extra time. We used that time to simulate video game screens using the extended ascii characters. I remember we made something that looked like a Nintendo game title screen, with options to choose “1 PLAYER” or “2 PLAYER”. Of course, we didn’t really get anywhere.

Fast forward a bit more. I was in fourth-year high school when I had my first computer programming class. We had a new computer lab on the top floor of the school, where we learned the basics of using Turbo Pascal. By this time, we already had a personal computer at home, a 386 (slightly dated) whose main use at that time was playing games like _Sid Meier’s Civilization, Romance of the Three Kingdoms,_.and _Day of the Tentacle_. I remember installing a copy of Turbo Pascal and teaching my brother how to use it. We may have had a book as reference, I’m not sure. (I assume we had a textbook for the class at school)

Not soon after, he had already written some simple programs simulating the “Choose Your Own Adventure” type of stories, what we would later know to be called Text Adventures. I remember his first “game” being something about a kid visiting a haunted mansion. Of course, it was mostly unfinished and you would not be able to get more than a few decisions in. I remember taking a look at his code and it was a complicated mess of print statements and conditionals and hardcoded decision checks. We had no concept of how to write good code then, although I do remember telling him that it wasn’t a good idea to have variables named like “v”, “vv”, “vvv”, “vvvv”, etc.

Jump ahead again a few years. I’m doing my thesis, soon to graduate as an Electronics and Communications Engineer. I had thought about taking up Computer Science, but in my youthful arrogance I felt like I already had a pretty good idea of programming and would find the actual course boring, based on my previous experiences. Despite that I had spent some time during the intervening years reading programming books and game development books I found in the Engineering library, and doing quite well in the data structures and algorithms class I had to take. For our thesis, we had to do a hardware part and a software part, and my thesismate easily agreed to let me do the software part; he knew how twitchy my hands were when working with hardware.

Somehow, we managed to actually finish the thesis and graduate (quite delayed I might add), and I took a year off to “study for the board exam.” During that time, I sent out various job applications. I wasn’t yet sure where I would end up working, A few weeks after passing the board exams, I received a call from a software company based in Ortigas. They had received my application and asked me to come in for an exam. Um ok. I didn’t even remember sending an application in, I think it was one of many I sent out using Jobstreet. They were the only software company who contacted me. I believe at that time I was considering applying for a job at a small electronics company of the north side of the metro, closer to home (other opportunities for ECE graduates were more on the south side). I had no idea then what the local software industry looked like or whether it paid well or whatever, but I decided to try it out anyway. I ended up working at that company for more than ten years.

Posted by under post at #Software Development
Also on: twitter / 0 / 1031 words

See Also