The gist of Joel and Jeff's views are that there is not enough practical experience in modern Computer science programs and not enough practical learning.
Jeff from Coding Horror says:
If we aren't teaching fundamental software engineering skills like deployment and source control in college today, we're teaching computer science the wrong way.
Now I am not here to defend any specific university curriculum. And a diversity in teaching styles is definitely a good idea. Both Joel and Jeff seem to be arguing for more practical training in college to actually teach students how to develop software. And while I do not have a problem with this as an *available* approach, I must say I do not think it serves our brightest students best. I do not believe that you get the most out of our best students by sending them to the software engineering version of Apex Tech. Jeff's statement feels to me like one small step away from suggesting that MIT should have courses in Excel and Word because students need practical tools.
For the most part, I believe college should not be about teaching kids how to do, but about teaching kids how to think. It is always shocking how many of the best programmers I have known studied chemistry, physics, and electrical engineering in college. The reason for this, I believe, is that being a great computer scientist is primarily about having skills at complex symbol manipulation. And while some of that is perhaps an innate skill, I firmly believe that thinking about hard problems is really the only way to learn how to think about hard problems.
Ideally, that "thinking about hard problems" thing is where our great colleges come in. College should not be about practical training, but about exposure to the great but highly impractical art of deep cogitating. In fact, it has been argued that it is not right that the only time students get practical experience at coding is at summer internships. In my mind this is *exactly* where they should get practical experience from. College is where we are stretched to do things that we will never do in the real world. We should not be lamenting the differences between a university curriculum and the "real world". We should be celebrating them.
Personally, I would hire a great thinker who had never seen a source code control program way before I would hire some first class CVS jockey who couldn't keep up with a complex algorithm deconstruction. A university computer science program may be the last place that a future software engineer gets to think about really hard abstract problems. We cannot give that up. We need to give students a few good years of doing the really challenging stuff. They have the rest of their programming lives to discover the mind numbing insignificance of hacking VB.
2 comments:
i completely agree - especially on the mind numbing BV hacking part!
Sorry for commenting on an ancient post, but as a university student I completely agree.
A day spent learning some tool or language is merely a gamble on whether or not that specific tool will come up. If I am unable to pick it up on my own, I will be SOL in the situation where technology moves (gasp) or I'm in a different situation for arbitrary reasons.
Industry has too much influence on curriculum nowadays, and as a result of so many students coming out of school "not being able to program", too much emphasis is put on the trade rather than the art. It's a disservice to the brighter students and ultimately will erode whatever edge our universities have over schools overseas.
Post a Comment