I read all these articles talking about lots of CS people will be needed by year X and only a few will be available by year X. But what branch of CS will those people be experts in? Most articles talk about the number of programmers. But is that really what will be needed? I look out from my little Montana world and I do not see a need for only programmers, I see a need for systems specialists; people who can manage a network, can do more than spell DHCP and IP, who understand virtualization, who know what a router does, who know the ins and outs of a wireless network. There will definitely be a need for programmers but it seems that the high school CS curriculum pundits are totally focused on programming. Programming and Computer Science seem to have become interchangeable and synonymous. I suspect this is a bad idea. I have had the idea presented to me that the tech side of computers; hardware, networking, system management, etc. is a tech school subject not really suitable for a true Computer Science department. I suspect this is a really bad idea. The skills required to troubleshoot a system are easily at the level of writing a program. For a while I taught a networking and hardware course here. All my graduates seemed to find instant jobs as help desk people at the universities they went to. All my programmers were just programmers and did not really have the hardware skills needed to do anything other than plug the computer in to the wall. Are we really teaching enough “Computer Science” in school? Perhaps we need to spread the focus and start teaching “here is how to set it up and fix it” type subjects. Talk about a shortage of teachers! EEK!
Are we teaching the right stuff in Computer Science?