After I graduated college with a computer science degree, I had no idea what I wanted to do with it. I was fortunate enough to get a great job in academia. After almost three years in this line of work, I really can't imagine working for a for-profit company as a programmer. Right now I work in psychological research. I make databases and I program surveys / interviews for data collection and other such fun scripting and data-managing tasks. It may not sound very exciting but it involves a lot more than writing SQL queries. In my last job I wrote a huge Ruby framework to do all kinds of stuff, and I had to support Perl and Python scripts, master a statistics package, make web pages, and as an afterthought write plenty of SQL.
Working in academia is a wonderful experience. The people you get to work with are some of the smartest people in the world. Not necessarily smart in the computer world, but smart in the world of psychology, or law, or sociology, or other things. The people I interact with come from a completely different world than the computer world I live in, and personally I find it very refreshing and challenging to bridge that gap. If learning to communicate technical issues to non-technical people is a skill, there's no better way of learning it.
Another thing I love is that there's no pressure or drive to acquire money. At least not in the sense of "we need money money money, get it at any cost, beat the competition into submission, advertise, produce produce produce" Instead there's a drive to do good science. It's a different kind of pressure which I find much more palatable. Of course running a study does require funding and you usually have to convince someone somewhere to give you some, but as a computer programmer I'm far removed from such concerns and I don't have to worry about them. If the study is valid, and if it produces good data on time, and if I do a good job of helping that happen, things works out.
The work is important, which makes me feel good at the end of the day. I'm not trying to pad some billionaire's bank account, I'm trying to further the knowledge of the human race. At my previous job, a lot of the work I did ended up directly contributing to law and policy decisions. Most studies deal with things no one has ever looked at before. It's a much more fulfilling feeling than slaving away to make other people money.
The atmosphere at my current job and my previous one were very laid-back and casual. You generally work with a small team of people, and people just do whatever needs to be done. I've never had to punch a time card. I don't have to wear a tie. There usually are no deadlines where I need to get some product done by X date. There is no product except knowledge and research papers. I don't have to deal with customers. There are no customers except PhDs waiting to read that papers or work with new data.
In my very limited experience, there is a good demand for computer programmers who are willing and able to support a research study. I was really needed at my last job, and I got multiple very nice offers when I started looking to move to the west coast. If you're good, people will need you. If anyone reading this is an up-and-coming programmer trying to figure out what to do with your degree, give academia and research a thought.