I graduated with a CS degree in 1994. I went directly into the C/C++ programming world and had a blast learning systems and writing code that was immediately put to use in large and small systems. I worked with embedded controllers. I wrote air traffic control system software. I did a little bit of everything and it was great.
One day after work, I went home and sat down to watch a movie and before I knew it, the end credits were rolling. I had been thinking about my code and my work for my job during the whole movie and was so preoccupied with it that I had missed the *entire* movie. I made a decision. My personal, non-work time is *my* time. I don't want to be 'working' when I'm at home and on the weekends (working means thinking about my code). I loved coding and coming up with solutions to problems that had never been made before, but enough was enough.
I switched (slowly) to IT. I started to do some system maintenance work and porting to other OS's along with my daily work. I maintained the code repository. I became the linux guru at the company. My next job was strictly IT-only. My new employer was happy to hire a guy who was a programmer to be his IT person. I lived in that role for a long and happy time. It was a research company and I had many opportunities to use my programming skills to make my IT work much less mundane.
The upside to this move was that I had more time to program on my own, in my spare time. IT is mostly mind-numbingly simple and can be forgotten about at 5pm when it's time to go home. You've fought all of the fires. Everyone else is going home. If the pager goes off, you handle the issue and go back to your life. I was satisfied and I had my peace and solitude in my personal-time back. I even started writing code and building websites for myself and my buddies which was a much more pleasant way to spend my off-hours. I loved it that if I was thinking about code in my off-hours, it was for my own projects and not someone else's projects.
I've stayed in IT for the last 17 years. I've stayed away from Windows (since it's mostly learning where to click) and kept mostly in the enterprise/startup/linux world where scripting is still a common task among IT people. I've used cfengine, puppet, chef and other tools to automate my tasks and nagios is a close friend. I've found that working for a startup, I have the opportunity to write more core-level scripts and even some programs (I still program in C or C++ once in a while) and get to help with the company with some serious tasks to keep my creative juices satisfied.
I market myself as a 50/50 kind of guy. SysAdmin and Programmer, although most of what I do during the day is IT and most of what I do in my spare time is programming. I love my current combination of tasks.
I don't know how much age discrimination will hurt me when I get to me 50+ years old. The age discrimination for IT people seems to be a pending doom for my line of work and I may have to go back to programming one of these days as a primary job some day, but I'm keeping my fingers crossed that I can continue to work as I have been.
Feel free to DM me through slashdot if you want to talk further. ( or @scumola on twitter )