Foreign Languages (meeting foreigners)
Somewhere around the age of 9
or 10 I was introduced to Sim City. It was the coolest thing I had
ever seen. Unfortunately, you needed a computer to run it. After a
few years of begging, I finally got my parents to get me one. By this
time, Sim City 2000 had come out, and my parents convinced me to buy
2000 instead of the original. But even better than the cool games was
that I no longer had to write (and rewrite) 10 page papers by hand.
This freed up some time -- time to do things like programming!
My parents had tried to explain to me the concepts of OS, memory, and
hard disks. I wasn't quite ready to understand at that point, but
that didn't stop me from taking out a book on C programming from the
library at around age 12. I never made it past the first few
chapters. As you probably know, without a compiler, it's really hard
to learn how to program. But an even more serious road block was that
I had a hard time sitting and reading due to a very bad knee injury
courtesy of a very faulty Montgomery escalator.
The summer before I started high school, my dad was doing some spring
cleaning when he came across his college basic programming textbook.
I read it cover to cover, including the example programs. Within
maybe a few months I discovered qbasic in DOS and started writing my
own programs. I was shocked to learn that there were more than 20
commands and that you didn't need line numbers. I guess the language
had come a long way since the early 70s.
I already knew at this point what I wanted to major in at college.
Sometimes I wonder if I wouldn't have been better off going to college
at that point. My basic programming class turned out to be very dull
as I had already learned the material a few months before. The pascal
class I took my sophomore year was a little better, but by this point
I had already learned C and even a little about data structures.
Around this time I became interested in assembly. It was those C
register variables that peaked my curiosity. I read through a
significant portion of an online MASM assembly programming book. As I
mentioned before, it's really hard to learn to program without a
compiler, or assembler in this case. But I felt I had acquired a
substantial amount of understanding. I also taught myself basic logic
design, a little boolean algebra, binary, hexadecimal, octal, 2s
complement, and conversions. This all helped to make some of my first
few college courses really easy.
By the time I graduated high school, I knew basic, pascal (forgotten
now), C, C++, Java, and some assembly. I was also introduced to Linux
by an acquaintance. Throughout high school and until this day, my
focus has been on math and algorithms. My first real experience with
systems and design came at MusicRebellion. It wasn't until I was at
Infraware that I began to think a little more about things like
applications, design, protocols, and interfaces.