Saturday, July 7, 2007

Where's Waldo?!

There seems to be a trend toward a serious drop in enrollment in Computer Science courses throughout America. Possible reasons mentioned in articles and blogs I've seen include:
Lazy American students - I had a professor three years ago tell me he was walking through the Fine Arts building after having been told his favorite class was going to be cancelled due to low enrollment (2 people). This was a long-running (6 semesters) class on using VB.Net to create web applications. Suddenly, it dawned on him, there were more art classes currently going on in the halls around him than there were computer science courses offered by the school!
Fears of the job market - The media (and our current President) seem to have a significant fear of technology and this is creating a perception that the IT job market is on the decline due to decreased demand and increased offshoring. The actual statistics for both do NOT paint this bleak of a picture. Many of the clients I've spoken too are moving away from offshoring software development due to communication and quality issues. (I also think many American companies are realizing their own business and/or software development process is weak. This leads to poor requirements which prevents any remote development project from succeeding. I'll talk about process in future posts.)
Poor curriculum - This was the number one reason I dropped out of computer science while pursuing my undergraduate degree (and switched to Fine Art). After 5 computer science courses, I realized I was no closer to my dream of becoming a video game programmer. My professors (and don't get me started on the problems of tenure) were doing nothing to prepare students to enter the real IT world.
My current boss seemed surprised when I told him I was hoping to pursue an MBA rather than a Masters degree in Computer Science. However, even today, when I look at the courses offered in undergraduate and graduate programs at the university level, I am very disappointed. I develop line-of-business applications by day (and video games at night). The courses offered in today's universities include: Artificial Intelligence, Virtual Reality, and Robotics. While these are some cool topics, they only prepare you for a job in academia. Additionally, you are likely required to take advanced physics, chemistry, a minor in mathematics. I've never used anything beyond algebra and boolean logic. Not a single university in Missouri teaches .NET!! (Although many teach Java, they also have several courses on COBOL and make you use the vi "IDE".)
Salary comparisons - Even though many colleges have finally moved their computer science departments under the Engineering schools, the profession as a whole doesn't get the respect of traditional engineering. Many companies are paying noticeably less for computer science graduates than other engineering graduates.
The poor training available is a primary cause of the salary issues as well. The demand for people is high enough that employers eventually settle for substandard resumes. Would an engineering firm even consider hiring a self-taught mechanical engineer? Yet we do it all of the time in our industry.

Some good stuff about the industry:
Always changing with opportunities for innovation - This is a very exciting industry if you love learning and solving problems. As a consultant, I'm exposed to many non-technology topics as well. I've learned about large-scale construction project management, health-care administration, and a deep look into the metrics that drive Microsoft.
Options to work remotely/from home - I don't believe this should be a regular option for those on team-sized projects, but if you are an individual consultant or working on one-man projects, working outside the office is pretty standard. (Caveat: If you are too lazy to get ready for work in the morning, you probably don't have the right work ethic to work from home anyway.)
Fun - I think talking to senior people in this industry is unlike most industries. If they have been in the industry awhile and climbed up the ladder a bit, you really get people who love their jobs. I mean really, really love them. They read up on the latest trends and experiment with new products.

There have been many studies and attempts to rectify the situation:
One of Microsoft's attempts
Some 2004 statistics posted on ZD-Net
Some really good ideas

Saturday, June 30, 2007

First Post

Well, I finally found the time and location (thanks Ian) to set up my blog! So, here goes.

I'm a software developer working primarily with Microsoft technologies, so my posts will mostly relate to my interests here. Examples will include Visual Studio Team System, .NET 3.5 (including Windows Presentation Foundation, Workflow Foundation, and Windows Communication Foundation), software development processes and methodologies, and a smattering of other stuff.

Please comment on my often very opinionated thoughts and stay tuned!