Personal experience, mainly. I got my first computer about 17 or 18 years ago (a Tandy...486 SX25, 4MB RAM, integrated graphics, and a 9600 baud modem). I got into tinkering with both the software and hardware sides of things. I started building my own computers maybe 13 years ago. Then for the past 10 years, I've been in IT professionally (first store technical support for a leading US pharmacy company, and now QA for the same company).
The only official training that I've received was a C++ course in high school. The rest has been self-taught. For instance, when I started with this company doing tech support, I started dealing with a lot of UNIX/linux stuff. I didn't know it well, so I went home, threw some parts together, and made a webserver.
But, now I'm just rambling...