Wednesday, August 31, 2005

Should I pursue programming as a career?

I received an email from a former student with a question in it pertaining to pursuing programming as a career. Basically: with all of the layoffs in the industry, is a computer science career even worth pursuing? Here is how I replied: [I made some blanket statements that don't carry in all cases. Not everybody that has been laid off has been an idiot - some were shrapnel that got caught in the cross-fire. And some idiots kept their jobs. Some good friends have been laid off, I'm explaining the reasons that the layoff happened, I'm not agreeing with the decision.]
--------------------------------

Computers don't seem to be going away. (Fads generally only last for 20-25 years. I know it sounds funny, but 10 years ago, there was a lot of conversations about computers being on the way out - especially with the layoff issues that you mentioned. Anyway, what is going on is that the market was over-saturated. There were a lot of "idiots with computers" that thought that they knew how to program and so they all started getting jobs at companies writing programs. Companies started to realize that there were third-party programs that were better than what their "local guy" was coming up with - this was especially true with web pages. There were some guys that had figured out HTML that had no artistic skills that started throwing together flat web pages - and the company saw that they could hire somebody to create a web site that had some quality and so they laid off the guy that wasn't necessary.

All this to say - Here's what I see in the market. Companies are not interested in hobbyist programmers anymore. They want people with skills. What skills? Web programming, xml, .net. (From talking to friends in the industry, Java is on a down-swing right now. Traditionally Sun, Microsoft, and Borland have taken turns at the top at about a 5 year cycle. Now that the chief exec of Borland moved to Microsoft, I think it will be Sun and Microsoft for a while. Microsoft is currently on the up (more on this in a bit).) The other thing that will make you employable is a degree in programming. It does a lot more than "just figuring it out on your own" or high school classes. The final piece that will make you employable is to stay on the cutting edge as much as possible. Learn about Windows Vista (new name for Longhorn) and stay current with web programming trends. In 5 years, learn whatever else is very new. Stay on the front so that your information never gets a chance to go stale. (But keep your programming in the current. Just because tomorrow's computer will run your software doesn't mean that people will buy it.)

A final thought on Windows Vista. Windows Vista is going to break a LOT of programs. Windows Vista will not run programs that currently run on the Windows SDK. Windows Vista will require programs to be written in .net. VERY few people know .net right now. And lots of companies want their programs to work in Windows Vista. (Do you see the connection?) So, in the next 5 years especially people will be hiring .net programmers like they are going out of style. But watch out because in 5-10 years there will be layoffs as everybody gets up to speed. That's why you can't sit on .net. You need to be able to adjust for the next big thing so that you don't join the layoff group. It's a betting man's game, but from watching the game for 15 years, I've learned some things.