Recently eWeek had a great article entitled "Programming Grads Meet a Skills Gap in the Real World" that I think every computer science/software engineering/computer engineering teacher at any level you read. Agree or disagree it is a powerful and important story. Not long ago the VP of a large development group told me that it takes an average of a year and a half to take a graduate from a top ranked computer science (college) program and make them a fully productive member of the development team.
Think about that for a minute. A year and a half after graduating with a degree in computer science or closely related field. That's a long time. And these graduates are not being hired at cheap rates either.
In the article John Montgomery (his team at Microsoft created the Popfly mashup tool I have written about before) lists six things that he'd like to see computer science programs teach. The quotes items are from John.
- Communication skills. "The best developers are often the ones who can explain problems and solutions the most clearly to others"
- Teamwork "Very few developers really work alone"
- Analytical skills, particularly around ambiguous problems. "It's important that developers understand the intention of what they're being asked to do as well as the implications of a solution they're thinking of and can weight and communicate these"
- An understanding of development processes. "Not a theoretical one—they need to work on teams that use formal, top-down development process, agile development, teams with other developers, teams with test processes, and so on"
- An ability to learn on the fly.
- Competence in several programming languages. "C++ is typically a must; C# or some other managed-code language is also mandatory"
So what do you think of this list? I know that a lot of educators resist the notion of university as a place to prepare workers for industry but it seems to me that all of these skills are required for researchers and graduate students. Wouldn't adding more of this to the curriculum help everyone? I think so.
BTW what do you think of the rest of the article?