Ask Steve – Technical Background
What is your technical background/history?
When I was 10 years old, I was introduced to Apple II BASIC programming via an after school program. I instantly loved it and never looked back. A few years later, my parents bought an Atari 800 computer with a disk drive, and I quickly claimed it as my own. I subscribed to a magazine called Family Computing, and I’d pore over every program listing to study how it worked. I couldn’t type though, so inputting programs was very slow, but I didn’t care. My parents were generally very accepting of my hobby because it kept me quiet and out of trouble. Every once in a while, I’d pop my head up and notice that mine was the only dinner plate left on the table — I didn’t even notice that everyone else had eaten, even though I was just in the next room and could see them if I only turned my head. When I was working on the computer, a bomb could have gone off next door, and I wouldn’t even have noticed.
In high school I became fascinated with a certain programmable calculator known at the Casio fx-7000G (which I later upgraded to an 8000G). It only had 422 bytes of programmable RAM (3363 bytes on the 8000G), but it had a robust programming language that I quickly mastered. Due to the small amount of memory, I learned to write very tight programs by necessity, a skill that served me well years later when I got into game programming. These calculators were very popular during my junior and senior years, and I freely shared my source code with others. I used to write programs to help people with their algebra and calculus homework, and I’d pass out code listings during math club meetings. One of my programs was even published in the school paper. My masterpiece was a complete blackjack game that would even plot the cards pixel by pixel.
In my senior year of high school (1988-89), there was an explosion of interest in the new science of chaos, and I became fascinated with fractals. I wrote calculator programs to plot the Mandelbrot set as well as many Julia sets. It took the 8000G five hours to generate a single 96×64 monochrome frame. I’d set the coordinates in the morning and leave the calculator running in my backpack, and I’d have a completed image by the end of the school day. I could even interrupt the program when I needed to use the calculator and then set it to continue where it left off. When I showed one of my fractal-loving math teachers an image of the Mandelbrot set on the tiny fx screen, he said, “No way!” I still have print-outs of most of those old fx programs, and to this day I still use my 17-year old 8000G as my primary calculator. I even write occasional programs on it to help me with certain tasks.
When I returned home from school each day, I’d program my Atari 800 to generate fractal images as well. It had to run overnight to generate the most basic low-res images, but at least they were in color. Eventually my parents bought a 286 computer. It was tons faster than the Atari, and it could generate decent high-res images, but it had a monochrome screen, so that wasn’t too exciting. I sometimes had both computers running at once to generate different fractal images. I wrote a variety of other BASIC programs too, but fractals were definitely my passion at the time. I even came up with my own original fractal space that I deemed the Pavlina set, and I spent many hours using the 286 (and later a 386) to explore it. I printed out dozens of images and posted them in my bedroom as custom artwork. I still have some of those (now faded) dot matrix printouts filed away in a box. It would be really cool to produce high-res, full color printouts of the Pavlina set today and hang them as artwork in my office. My current PC could crank those out in a matter of seconds.
In college I double-majored in computer science and mathematics with a specialization in artificial intelligence. I wrote programs in at least a dozen different languages, including C/C++, Pascal, Modula 2, Fortran, Assembly, Lisp, and Prolog. I also bought my very own computer in college, spending a good chunk of change to get a 486DX-50mhz with a 250MB hard drive (yes MB, not GB). That was a blazingly fast PC at the time, the fastest one available. In my final semester of college, I did contract work as a C++ game programmer, completing a four-pack of Windows 3.1 arcade games. I actually used one of my fractal-generating programs as a demo to get the job.
After college I started Dexterity Software and continued to code games in C++ (first Borland C++, then Microsoft Visual C++). Along the way I picked up some web programming languages too. I learned HTML in 1995 and used it to create the first incarnation of my Dexterity’s web site. Today I do most of my web programming in HTML, CSS, PHP, and MySQL. I haven’t written any C++ code in years, but I find PHP very similar to C.
I’m sure my technical skills as well as my 10+ years of running a previous online business give me a significant advantage in blogging. I can quickly identify and solve certain problems that are challenging for novice bloggers, and I know how to build a high-traffic site without spending a dime on marketing. This becomes a bit of a trap though, since I can get caught up in technical work when it would be more effective for me to stick with content development and recruit someone else to maintain the underlying technology. However, I enjoy communicating both with people and computers; each has its own unique charm.
I’m definitely more of a software guy than a hardware guy. I am, however, using a PC I built myself from the individual components, but I don’t think I’ll do that again. It was something I always wanted to do, but I just don’t think it’s worth the effort compared to ordering a complete system online.
This entry is part of the “Ask Steve” series. See the original Ask Steve post for details, or view the Archives (July 2006) to peruse the entire series.