Joel on Undergrad programming

January 8th, 2008

I read Joel’s article on Undergraduate CS classes with interest. I’m one of those people who genuinely think the next generation of software is going to suck, because the current generation of teaching is absolutely awful.

Right now people are seeing software development as something akin to mechanical engineering that you should study not one day before the age of 18 when you arrive on campus. Even then, we teach software development the way we would teach applied physics in a civil engineering class: teachers who haven’t worked on a commercial project in their entire lives are convinced that the books they contain - the books full of answers - are accurate.

They have no idea that software development - like any other sizable discipline that is ultimately rooted in aesthetics and philosophical understanding - is about questions, not about answers.

The quality of graduates right now makes me angry. My blood pressure goes through the roof whenever I see prospectuses offering to take somebody without a shred of programming experience into a qualified developer able to manage a team of other developers in just four years.

If we got it right, we could start teaching other subjects - from art, music, philosophy, through to physics and maths - through the discipline of software development as a tool from as early as 11 years of age. We don’t though, nor will we ever. It doesn’t matter that modern civilisation runs on software, our educators don’t understand that and therefore assume the children they teach won’t need to either.

I have ideas on how to fix this, but they’re flaky and need substance. The only concrete detail is that real practitioners out in the industry need to take the lead on this one.