SD TIMES BLOG
jhildebrand

I took some computer science courses over the past few years on the way to a degree in English and comparative literature. The courses were more or less what I expected: heavy on theory and algorithms, lots of programming homework (in Java, no surprise), more than a bit of math. The degree requirements for computer science majors are based on a similar mix of classes. (My experience was at Columbia, for what it's worth.)

Developers certainly need grounding in these topics. But I continue to be struck at how little the computer science curriculum matches the day-in, day-out reality of software development. Columbia undergraduates don't learn software methods. They don't collaborate on projects. They don't get much exposure to analysis, design, debugging, or maintenance.

In my experience, developers spend relatively little time developing algorithms, especially the kinds of algorithms that require the advanced math courses that are part of the traditional computer-science curriculum. In the real world, developers meet with users to create analysis documents. They work to break projects into parts for different team members. They spend a lot of time analyzing and extending inherited code. They communicate constantly: with users, with management, with team members, with subordinates, with other teams. They evaluate languages, tools, development methods, services, and architectures.

If I were developing a curriculum for software developers, I would make sure to include plenty of courses on effective communication and collaboration strategies. I'd make sure students had experience with lifecycle-support tools, not just compilers. I'd try to give students a taste of what it means to deliver a project, from start to finish, preferably with multiple team members.

Or maybe I wouldn't bother. The best programmers I've known haven't had computer-science degrees. Degrees traditionally are not necessary for employment in our industry. The U.S. Department of Labor's Bureau of Labor Statistics recommends a degree for job-seekers, but in a remarkably lackluster fashion: “[M]ost employers prefer applicants who have at least a bachelor's degree and broad knowledge of, and experience with, a variety of computer systems and technologies.”

Job postings lead me to think that computer-science degrees aren't necessary for employment in software development. And a review of curriculum standards makes me question the applicability of formal education to real-world challenges.

What's your thinking? Do you require the developers you hire to have degrees? Do you have a degree, and has it proved valuable? What would you do to make formal education more relevant?

Web recommendation: Writer Anne McCaffrey doesn't occupy a place on my top 10 list, but I read (and enjoyed) her Pern books along with everyone else and I respect her many accomplishments. I was sad to read that she died this week after suffering a stroke. There's a nice fan page here. J.D. say check it out.

J.D. Hildebrand has written hundreds of articles for dozens of publications and online communities dedicated to software development. Since moving to Serbia, he has eaten a lot of mush.

Currently rated 2.1 by 17 people

  • Currently 2.117647/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Share this link: http://www.sdtimes.com/blog/1906

Tags: ,

Comments

Add comment


 
 

biuquote
  • Comment




 
 
News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 

Download Current Issue
MAY 2012 PDF ISSUE

Need Back Issues?
DOWNLOAD HERE

Want to subscribe?


 
blogs tab
Why we leave
Ten reasons good workers leave their jobs, plus a few suggestions for retaining them.
05/22/2012 06:14 PM EST

Creation
To write better software, cultivate your ability to be creative.
05/19/2012 07:40 PM EST

Slick...but who needs it?
compilr.com is a well-designed site and the folks behind it seem to have their heart in the right place. But...who needs it?
05/16/2012 12:45 PM EST

How to be a better software developer
Want to be a better developer? You won't get there by mastering an interesting language or learning a new set of APIs.
05/14/2012 12:18 PM EST

Wooing Galatea
Do yourself a favor and check out Galatea 2.2, a wonderful book by novelist Richard Powers.
05/12/2012 07:05 PM EST

The world as story
An artificial-intelligence system at Carnegie Mellon seeks to understand the world by making statements about it.
05/10/2012 06:39 AM EST

 

Events calendar tab
6/3/2012 to 6/7/2012
Orlando
IBM Rational

6/10/2012 to 6/15/2012
Las Vegas
SQE

6/10/2012 to 6/15/2012
Las Vegas
SQE

6/11/2012 to 6/14/2012
Bellevue, Wash.
AMD

6/11/2012 to 6/14/2012
Orlando
Microsoft