Since I've been around computers and software for more than 30 years, it's hard to sum things up in a tidy fashion. Some of my earliest experiences include messing about on my Dad's Cromemco Z80 and then later on his Apple IIe. The Apple IIe was well-loved in our house. After several years, it developed a bad habit where, as it heated up, the chips would start to pop out and separate from the motherboard. My dad figured out that we could simply open up the box, lean inside, and push down hard on the chips to re-seat them.
Later, in college, I spent a lot of time in Library Automation, at the Regenstein Library at the University of Chicago. This was my first exposure to serious software development, and also where I developed my fascination with databases. We weren't doing traditional OLTP-style database work, but lots and lots of bibliographic analysis, so it was mostly sorting and searching.
After college we spent 3 years in Boston, where I worked for Computer Corporation of America, on their Model 204 DBMS. This was a very specialized, non-traditional database system written in hand-coded IBM 370 Assembler Language. This was where I started to pick up lots of basic system software knowledge, such as how to write multi-threaded software, how to manage resources carefully, and how to handle errors thoroughly.
In the late 1980's we switched coasts, and I worked on several relational database systems: first Ingres, and then Sybase. At Ingres, I learned about the guts of the storage layer of modern DBMS systems: file structures, concurrency control, recovery, cache management, access methods, etc. At Sybase, I learned about object-oriented systems (I was involved in an experimental object-oriented database project there), and finally left C language programming and moved to C++.
In the mid-1990's I switched fields and got into Application Servers and Middleware, working first at Forte, then at Sun, and most recently at AmberPoint. I learned a lot about distributed systems, messaging protocols, CORBA, web services, etc. When I began working at Forte we were still working in C++, but by the time I left everything was Java, and I've been working primarily in Java all of this century.
That's a whirlwind tour of 30 years!