Evolution of a programmer
It was in the grade school library that I stumbled across a little book. “How to Make Games for your Computer” is the title I remember, but I could be easily mistaken, it was so long ago.
The library was divided into two. On one side, you had the fiction, and on the other side, you had the non-fiction. I always gravitated, inexplicably away from the crowd of kids in the fiction section to escape to the non-fiction world. I would read up about the planets, or read about chemistry, or read even more about Greek and Roman gods.
It was such a small library that I knew the majority of the books in there. I had memorized the color patterns they made on the walls and when I looked at the far wall again, a new, red book, had showed up.
I quietly checked it out and proceeded to class.
It wasn’t what I had expected. The most advanced program they had in there was tic-tac-toe and, well, I wanted to make Wolfenstien, or better yet, Doom. It was a beginning though. I read through the whole book, several times, and I booted up my fathers 486 DX 33 with a whooping 8 meg of RAM and typed in “qBASIC” and I was off and running.
A few hours later, my dad walked in the room to see what I was doing. I turned at him and said “This is so cool, where can I learn more?” I watched my dad disappear into the storage room. Listening to the boxes being moved around, the occasional grunt of pain when something fell on him. A few hours later he emerged with a book. “Teaching yourself BASIC.”
I spent two years learning everything I could about BASIC, computers, and how it all worked to produce the letters and dots I was telling it to put on screen. I remember clearly admiring the C++ guys out there, but I couldn’t afford the $800 compiler. It might as well have been a million dollars, because I couldn’t afford it. I was truly jealous though.
Without a C++ compiler, I got bored and decided to challenge myself some more. I thought of a project. Using DOS DEBUG combined with EDLIN and two Intel ASM reference books I had procured I would build Tic-tac-toe.
It took me three weeks, but I finally got it.
Shortly after that, I remember clearly my father, returning home from a hard days work carrying an old banker box. Inside that box was what I dreamed of; Microsoft Visual C++ version 1.0. It came on 37 3.5 inch disks and took up 300 meg of hard drive space, which at that time was an insane amount.
I quickly inserted the disk and started to install it. I read the text books that came with it, including the introduction to MFC and so forth, and started coding in my own examples. Going from a line based language, such as BASIC and then ramping up to an object oriented language like C++, even more so with the fact that it contained libraries, compilers, linkers and so forth was daunting to me. I quickly crashed the computer, a couple of times, and then decided I needed to learn more before I began to code everything in C++, so I turned to Java.
Java 1.1 had just been released. At this point, I was no longer in grade school and I was beyond Jr. High. I was now in High School, sort of. I spent most of my time over at the community college going through an advanced program for gifted students which allowed me to take college courses and have them count for high school credit and college credit.
I met up with this guy, Allan Ecker, who taught me more about object oriented design then any of the books I had read to that point. I started coding in my own examples into java, getting some basic things working, including a fully functional solid poly rendering solution.
At this point, I was armed with the knowledge I needed to tackle the wonders of C/C++ and I started coding. At first, it was simple things. I wanted to get networking down, so I mastered sockets and everything I could learn there. The advent of the internet at home allowed me unrestricted access to open source code and my knowledge of the subject matter grew, almost exponentially. I had picked up an internship with a database design group and some of the guys there continued to teach me more and more.
I was on my way to becoming a true programmer.
At this point, I knew all the book information so I took some tests and sure enough, I passed. I became the world’s youngest certified programmer.
My mom loves to tell the story of when I came up to her, when I was allegedly 13 years old, and I was on the phone with someone over at Microsoft. I yelled out to my mom, “Hey mom, is it okay if I go live in Redmond for a while.” At which point, the guy on the phone requested that he speak to my mom. He asked my mom how old I was and the guy was floored, and quickly responded “Give us a call when he reaches 18, and we’ll make sure he has a job”
I don’t remember those events occurring, but I thought it was funny anecdote to this whole story, this evolution of a programmer.
Once I began working in the real world, I quickly realized that I didn’t know squat. It was through sheer determination that I managed to work my way from lowly intern, to president of my own software development group, to senior programmer and mathematician, to hacker, and now working in the games industry.
It all comes down to one thing though. If my dad had never showed up, with that banker box full of floppy disks, I would have never reached out as far as I did.
Thanks dad, I owe you more then you know!
-Ken Noland