• Actually I was told a while back to look at it this way. In the early years when Computers were new things were generalized, kind of like early doctors. Now that the field has grown a lot you have fields of practice which are increasingly more important that. At some point computer science will become a basic class toward a targeted path such as Database design or Network architecture. Things will become specialized, which improves quality. You wouldn't want a general practice doctor performing heart Surgery if he was not specialized in it. The same is becoming true with computer systems as they become more and more critical. Could you imagine get a BSOD on the Space Station oxygen supply or worse your artificial heart? Read After the Gold Rush: Creating a True Profession of Software Engineering by Steve McConnell for more on this. I do think ultimately as systems become more and more critical that you will ultimately have some areas so specialized you will have true engineers in that area who have to give approval over other peoples work because of legality.