This is both an introductory autobiographical post and a bit of a long-form reply to Alex Schroeder's recent post: How did you learn about the shell. It's a bit rambling and incoherent, as my autobiographical writings often are, and I apologize for it.
As a child and young teen, I didn't really have any access to computers. We were way too poor for that. Not only did you need the computer, but in order for it to be usable by a blind person, you needed some external hardware, such as a speech synthesizer. We spec'ed out a potential system for me when I was twelve, and if I recall correctly, the price tag was upward of $5000: very much out of the question.
I did get to dabble with computers in school. I used an Apple IIE with a whopping 128 KiB of RAM. It had a screenreader called TextTalker and an addon speech synthesizer card called the Slot Buster. If you know anything about speech chips, the Slot Buster used the Echo chip. It sounded terrible. Here is an audio demonstration. Seek to about 17 seconds from the start of the file, and you'll hear the synthetic voice that I used.
How did you learn about the shell
That Apple II was under-powered even in the early 90s, when I used it in junior high school. But I loved it. Right away, I saw a potential for empowerment. I managed to pick up some rudimentary BASIC by reading some sample code at the back of my math textbook (which was in braille). I also had my grandmother read me part of a printed book that I borrowed. But that was the extent of the learning material I had available to me. I didn't get very far. I used to carry some 5.25-inch floppies in my lunchbox to store my toy programs, and my time with that machine was one of the few things I actually looked forward to in school.
Fast forward to about 1993 or so. I obtained a little device called a Braille 'n Speak. It was sort of a PDA for blind people. It had a 7-key braille keyboard and speech output through a speaker or headphone jack. It also had a serial port and a port for connecting an external floppy drive. With the serial port, you could hook it to a modem and dial into bulletin board systems, online services, or Internet service providers that offered shell access. And I did!
Whole new worlds opened up to me. I taught myself the basics of Unix by reading tutorials available from a dial-in shell provider. I was this geeky stoner "liberal arts" guy who didn't know much about computers, but who was comfortable at a Unix shell prompt. It was a means to an end, namely, accessing the Internet. I had no idea you could write shell scripts with it. It was, uh, this prompt that you typed commands such as cp and rm into, and nothing more.
I didn't actually get a PC until I was in college. By then, the prices had gone down, and I had found some more sources of funding. My first PC was a Windows box. Would you care to speculate as to the very first thing I did with it? I learned how to dial into my Unix shell account with Hyperterm.
Oh man, did I ever hate Windows and the GUI. Instead of telling the computer what to do, I had to navigate around in some interface that was primarily designed for people with a working pair of eyes. I can't walk a straight line. I have literally been lost for hours wandering in parking lots or trying to find my way back to my apartment from the trash can. Suffice it to say, I much prefer an interface based on language to an interface based on navigating a 2D layout.
Then, in about 2000, Internet service providers stopped providing shell accounts. In fact, I know of multiple providers who shut off their shell services on December 31, 1999. At least one told me it was due to "Y2K". For about 6 months in early 2000, I went completely offline. Then I remembered someone telling me about a free Unix variant that could be downloaded off of the Internet and installed on PCs.
I signed up with an ISP and used Internet Explorer and a PPP connection to grab a version of Linux and a handful of Linux books from LDP. The version of Linux that I started with was one that could be loaded from MSDOS. It used the umsdos filesystem as the root FS. It was called ZipSpeak, and it was essentially a repackaging of Slackware for the blind. I devoured the Linux books available to me (I have a knack for this). I cannot praise LDP highly enough. After about a month of using ZipSpeak and getting some Linux experience under my belt, I ordered some official Slackware CDs from Walnut Creek CDROM, or BSDI, or whatever they were called. I never quite understood the difference, but I know those companies were somehow related. Anyhow, I spent part of a Friday night installing Slackware.
It was a natural progression from running Linux to picking up programming: shell, Perl, and C. I can honestly say that learning Linux altered the trajectory of my life.