Bill Gates recently went on a tour of colleges to encourage students to major in computer science. Apparently the number of declared computer science majors is declining, and Bill wants to shore up the numbers.
I got to thinking about this, and I wonder if the plethora of really high-level languages has anything to do with the numbers. For instance, I don’t have a degree in computer science — it’s in political science and philosophy (I was gonna be a lawyer…). With or without a degree, however, I’m certainly a competent application developer.
Admittedly, I’m not a “close to the metal” programmer, and I can’t wax eloquently on theories of computer science, but — and this, in my mind, is the important thing — I can build applications that work well and solve problems for end users. Perhaps I can’t give you the formal names and theories for some of the coding techniques I use, but I use them. Well, in fact.
Do you really need a computer science degree to be a programmer these days? With platforms like PHP, J2EE, and the .Net framework, non-formally trained programmers are writing some awfully good programs. Sometimes they even have the benefit of limited knowledge — how many apps do you know that have been shot in the foot just because someone thought about them too much?
You can see the barriers to entry vanish if you combine these langauges with the fact that programming is more accessible than ever before. You can get a PHP-enabled hosting account for $20 a year. That, a domain name, and Notepad, and — voila — you’re programming in a realm where everyone can see you, and you can distribute your code.
The days of needing heavy (or even medium) iron and compilers are long gone. So is the need to be in a university of larger company. Anyone can program at some level these days, and — perhaps more importantly — join a programming community.
Now, I realize that we’ll always need low-level geeks to write the stuff we run on, but is that base is getting smaller and smaller as platforms consolidate? Is higher-level programming where the future jobs are? And do you really need a degree for this? Just wondering.