Is Computer Science Dead?
Today’s editorial was originally published on Apr 27, 2007. It is being re-run as Steve is at SQL Server Connections.
There are less people entering Computer Science in colleges and less people interested in traditional computer science practices. There’s concern among adademians and one questions: “Is Computer Science Dead?“
I heard something similar from my brother-in-law about 8 years ago. At the time he was a mail admin for a large company in Texas, running multiple mail servers handling somewhere in the 50,000 account range. At the time, that stressed a lot of the mail servers out there and it was a challenging job. But he worried about advances in automation and better software and thought that sysadmins would be mostly outdated in the next 5 years.
It’s 8 years later and I see DBAs and even SMS guys finding work in companies with less than 100 employees. So much for automation.
I took computer classes in high school in the early 80s and spent 2 years in a Comp Sci degree and two additional years in computer engineering and while I haven’t done a lot of programming, I’ve written enough software and been involved with developers to know that most of the fundamentals I learned with BASIC and Pascal still apply. Some of the C techniques involved with optimizing code and being very structured in your development still apply today in .NET, Ruby on Rails, or LISP. Even LISP, which I’ve never used outside of a academic world, still taught me how to program better.
Because it taught me to think about computing. And algorithms, and how things are processed.
I think CompSci is still a good major, as good as any other. I also think that we should require C programming to incoming students, force them to work with memory, understand pointers, solve the Tower of Hanoi, and other things without all the benefits you get from frameworks like .NET and J2EE. I don’t believe that much has changed in computer programming in 30 years. We have Procedural and OOP programming and the concepts in either can be applied to any environment. Maybe you could learn relational logic and SQL on top of that, but everything else is new ways of combining these old techniques.
All the rest is just syntax.