I grew up in Lake County, Fla. When I was six years old, I was determined to have an IQ high enough to enter the "gifted" program. This entitled me to go to a special "gifted class" once per week.
When I was eight, I was introduced to microcomputers. As county administrators upgraded their computers, they shipped their hand-me-downs to "the gifted center," where the old boxes were used to teach "gifted" kids about computers. We were first taught a little Logo, which features a kid's programming environment similar to a computerized Etch-A-Sketch, where you give commands to move around a turtle that draws things with its pen.
[ Ever the autodidact, Andrew Oliver wonders if a computer science degree is worth the paper it's printed on. | Download InfoWorld's PDF of tips and trends programmers need to know in our Developers' Survival Guide. | Keep up with the latest developer news with InfoWorld's Developer World newsletter. ]
I was also given a very cursory introduction to the Basic computer language, including loops, inputs, print statements, and variables. We were permitted to play games like "The Hitchhiker's Guide to the Galaxy," which moved me to read the entire set of books on which it was based. It was my dream to create a different game that I called "Death Time" -- or "DT," because all cool things are abbreviated.
Before long, they closed the gifted program. This was because most Lake County, Fla., school buildings were rotten with asbestos and termites, and in stuccoed block buildings, a broken air conditioner is pretty dangerous. Moreover, the Lake County voters in their infinite wisdom decided to vote to send an extra-penny sales tax to building prisons instead of schools, so budget cuts probably had something to do with it.
Adventures in self-teaching
A short while later -- an eternity in kid time -- my father brought home a computer from work. It was an IBM PS/2 model 30; with the exception of its monochrome monitor, it was way better than the TRS-80s,Commodore-64, and Apple IIs that I'd been introduced to.
I got on to BBS sites, downloaded questionable material, and started to write "door games" and utilities for BBSes. I grabbed every book on computer programming from the public library, made my own simple interpreter (a mini-language to do goofy things with the screen), and learned QuickBasic (which I downloaded illegally from the BBSes because I didn't have hundreds or thousands of dollars to spend, since I was not yet 10). I also learned a bit about databases from Ashton-Tate's dBase III+, which my father used for work.
There were also periodicals like Compute and PC Magazine, which had code samples in them. I read them, saved them, and often tried to modify what the code did. By middle school, I knew a couple of programming languages pretty well.
Then they made me take a class on computers, which answered questions like "what is a floppy disk?" I was bored to tears. I later was sent to a better middle school where they showed us Lego robots. It wasn't until I took night classes at the local community college, while in high school, that I would ever receive any formal instruction on anything. I was too advanced for much of that as well.