EDIT: I also think astronomy students should grind their own lenses and mirrors, so that they can understand the practical difficulties of building and operating a telescope.
EDIT: I also think astronomy students should grind their own lenses and mirrors, so that they can understand the practical difficulties of building and operating a telescope.
In the meantime, a good CS program is a perfectly reasonable foundation for a career in systems and networks. I ran through the gamut of logic, basic logic circuits, assembly, algorithms, data structures, complexity and then features of various languages, operating system structures, and finally graphs, automata, networks and projects in all of the above. All of that is a solid base. As with anything else worth doing, you then need to build on that base with the tools of the day.
I suspect the overall high failure rate of IT projects is attributable to "people with two year associates degrees in information systems or something". I'd rather hire an autodidact with a degree in math, physics or engineering.
And perhaps they shouldn't. But at the same time, vocational schools are still seen as having less prestige (and, thus leading to careers making less money) in the U.S. It's just an endless dilemma.
Except for a few vocations that have managed to get themselves tagged as "professions". There are a number of fields where students are supposedly taught to think in general-purpose undergraduate programs, and then taught the minutia of their chosen field in "professional school". e.g. law school, medical school, and a growing list of professional doctoral programs in fields like Psychology, Occupational Therapy, Pharmacy, Optometry, Nursing, Education, etc.
Maybe someday we'll have a "Doctor of Network Configuration" or a "Doctor of Database Schema Design"? (I'm not sure if I'm kidding or not)
yawn yeah, yeah, I know that going to yale makes you better than I am.
Kids today. No respect for the trades.
Everyone choosing a major out of highschool is encouraged to go in to something highly theoretical or impractical. I think it's a show of wealth. I mean, if you get a degree in fine arts or something, well, you had better have a rich uncle or something, right?
Granted, the fact that every SysAdmin education program I've seen was decidedly second rate doesn't help. /good/ sysadmin education programs would help a lot. Really, there is no excuse for the lack of good SysAdmin programs. *NIX is older than I am. It's not like the field changes faster than anything else to do with computers.
I think you have similar problems educating people as computer scientists and then expecting them to work as software engineers. We need a lot more software engineers than we need computer scientists; and if I need a program written, sure, I'd prefer an excellent software engineer who was also a computer scientist, but if I had to make the choice, I'd choose a software engineer who was not a computer scientist over a computer scientist who was not a software engineer for 95% of all projects. But what kind of high school kid choosing a major would choose to be a lowly Engineer instead of a Scientist?
I don't think that programmers should be sysadmins. There's room in the organization for both roles. However, I do think that programmers need to understand the practical difficulties in deploying and maintaining a running application. The more difficult it is to deploy an application, the greater the chances of someone screwing it up. By putting some forethought into how their application code is organized and by making some small investments in automation up-front, programmers can save endless headaches for themselves and the sysadmins supporting them when it comes time to go live.
So 0001 is definitely on my someday TODO list.