What Should We Teach Software Developers
The great thing about having the career and credentials that Bjarne Stroustrup has is that he can talk about the “Emperor’s clothing” with out people saying “you don’t know what you are talking about.” So it was with interest that grew with each paragraph that I read his recent article in CACM. (What Should We Teach New Software Developers? Why?) One telling quote:
I see the mismatch between what universities produce and what industry needs as a threat to both the viability of CS and to the computing industry.
I have to agree. With a career that spans both industry and academia, Bjarne Stroustrup knows what he is talking about when he talks both of the needs of industry and the role that academics perceive for themselves. All to often people in computer science see two “stovepipes” – one for academics into pure research and one for industry into a trade education. Neither view is helpful in the long run. While there is no question that pure research is important if it doesn't find its way into production at some point its long term utility is seriously in question. Without improved tools, techniques and skill sets industry is doomed to high rates of project failure, unreliable software and a failure of computing to make the differences in the world that we all believe are possible.
The failure of many academic programs to train people who can successfully work on large important projects causes industry to lose faith in the educational process. On the other hand the failure of industry to look at research results and adopt good information means that opportunities for improvement in the process of software development. There is blame to go around. And credit as well. But the need for more communication and cooperation is clear.
Comments
- Anonymous
January 01, 2010
The comment has been removed - Anonymous
January 04, 2010
I just had this conversation with one of my professors. All the curriculum is centered around Java, C++, Minix, Qnx, etc. Yet when I am looking at requirements for area employers, they nearly all want experience with the Microsoft stack. Not that I am saying one set of skills is better than another, but I don't want to have to relocate in order to get a return on my education investment. I understand that the languages I use while in school are not the be-all and end-all of my education, but please at least expose me to what employers are using so that I can at least say I've used .NET. Teach me how Oracle and Microsoft differ in their approaches to SQL. Investigate what local industry needs, and adjust the curriculum as necessary. As a student, that is what I want.