Graduate degree(s): I got my master's degree in engineering management to better improve my leadership and management skills. If you don't move into management you end up stagnating in development.
Favorite class(es): Finite Automata
Changing majors: I started out in geological engineering but realized I couldn't hack the hard sciences. At first I jumped in to CS simply because I didn't have to transfer schools but didn't have to do so much physics! Amazingly it turns out I liked the work and am quite good at it.
Moving from college to career: I couldn't have gotten into software engineering without the degree. My first job was in tech support, but as soon as one of the engineers realized I had a degree they found me a job up in engineering. Three weeks later they fired the existing sustainment engineer and moved me into his job - I was suddenly responsible for maintaining the software of a dozen different products! With very little experience. Happily my education helped me work through the problems and become successful.
Career influences: I spent my first decade as a software engineer and never expected to end up in configuration management. But after we had a disaster of release - so bad that no one knew what we included in it, or even if the customer could compile it successfully - I realized something needed to be done. Good CM is invisible - you're only noticed when things go bad. But you can prevent so much from going bad with a little work. I find it quite rewarding. And it pays well too!