When I say computer science, I mean the practical kind – where people are writing useful software that will be used by someone else.
If universities really cared about educating their students, they would take an audit once a year (at least) to take scope of the current programming world.
They would look at the currently available development platforms, and identify the ones that were well-established and provided the best introduction to tools that could solve real-world problems that real-world application developers were working on.
Then they would go out and hire professionals with real experience in these languages (!) to train the students in using these tools without sucking.
This would comprise most of the third and fourth year studies for computer scientists (or whatever bachelor's degree that would represent "practical programming").
But wait, what about the first two years? Oh, well that would be spent teaching developers to work on projects in a way that would make them (the software projects) not suck.
Everyone initially sucks at writing software that coders (even themselves) will have to maintain. It generally takes at least a year or two to work the worst of these symptoms out of your system.
If universities focused on the practical, they would work on beating that stupidity out of every student who wanted to write software.
If universities were practical, while simultaneously forward-thinking, they would smack the stupidity out of students while *also* training them on systems that real companies were using to solve current problems.
Based on my limited education, I note that universities spend most of their efforts on the completely irrelevant (general electives, ho!) and mathematical work that is only useful to coders who are already well-educated.
But don't take my opinion too seriously – I am a college dropout, after all.
#1 by Abraham on 2011-04-26 - 20:28
Seems like you've hit the nail on the head with a serious shortcoming in higher education – specifically, that there is too much emphasis on tangible metrics. Since programming is an art it's really hard to hammer down exactly what constitutes, for example, a "well-established" development tool. I feel that if universities would hire more qualified professors and trust their judgement on exactly such questions, higher education in general would be a lot better.
Or WAIT… HERE's a thought… starting from the assumption that the job of a professor is to teach students a skill set. What if we demand that professors go through the hiring process for the job that requires that skill set before they are permitted to teach it to students?
#2 by silver Harloe on 2011-07-11 - 13:01
Going to be a little redundant with a post I made at 20-sided here, but the problem is less with the universities than it is with HR managers.
Universities teach something valuable to the development of new concepts of programming and thoroughly understanding the ones they have: they teach how to think about programming. Professors study the mathematics and abstractions of information technology, and they teach what they study. But, they do not teach how to program. Most would argue that it's not even their job.
HR managers routinely require CS degrees, but they should not, because the Universities never accepted the responsibility of training programmers. It would be like if I would only hire brain surgeons if they took a class on it from you, without your consent, and without your knowledge of brain surgery. It's not your fault, it's mine for making a dumb requirement based on nothing you advertised.
What we need to make better programmers in the future is not CS degrees, but Programming Apprenticeships. It's an old concept – masters working with learners and both profiting from it. It actually happens in the workplace, but without any formality. The apprentice is a new hire, and probably a newly minted BA holder who thinks they know everything – they need the humility of being called apprentice, but they don't get it, complicating the apprenticeship process. But the master/apprentice relationship is so valuable that it hasn't gone away even though we, as a society, no longer explicitly recognize it, much to our detriment (because programming apprenticeships could start much earlier than 22 years old after getting a 4 year degree, if we recognized their value).