Zeichick's Take:The mis-education of software developers



Email    print   
December 15, 2008 —  When Bjarne Stroustrup talks, we listen. And when Bjarne decries the training of software developers in our colleges and universities, we need to do something about it.

Bjarne, of course, is the designer of C++. After working for 24 years at Bell Labs, he became a professor of computer science at Texas A&M University in 2002. Bjarne was interviewed last this week by James Maguire of Datamation on the topic of computer science education. (You can read the entire story here.)

In the interview, Bjarne describes some of the problems:

Take a simple example: A friend of mine looked at the final projects of a class of third-year CS students from a famous university. Essentially all had their code littered with “magic constants.” They had never been taught that was bad style—in fact, they had never been taught about programming style because the department “taught computer science, not programming.” That is, programming was seen as a lowly skill that students either did not need or could easily pick up on their own.

I have seen the result of that attitude in new graduate students. It is rare that anyone thinks about the structure of their code or the implications for scaling and maintenance; those are not academic subjects. Students are taught good practical and essential topics, such as algorithms, data structures, machine architecture, programming languages and “systems,” but only rarely do they “connect the dots” to see how it all fits together in a maintainable program.

Bjarne believes that “few students see code as anything but a disposable entity needed to complete the next project and get good grades. Much of the emphasis in teaching encourages that view.” Ouch!

He advises students:

Programming is part of software development. It doesn’t matter how fancy your code is unless it solves the right problem and you can explain it to others. So brush up on your communication skills. Learn to listen, to ask good questions, to write clearly and to present clearly. Serious programming is a team sport; brush up on your social skills. The sloppy fat geek computer genius semi-buried in a pile of pizza boxes and cola cans is a mythical creature, best buried deep, never to be seen again.

Read the interview. Tell me what you think: Do computer science departments do a good job of teaching software development? Write to feedback@bzmedia.com.

Alan Zeichick is editorial director of SD Times. Read his blog at ztrek.blogspot.com.





Share this link: http://sdt.bz/33161
 
Most Read Latest News Blog Resources

Add comment


Name*
Email*  
Country     


  • Comment
Loading




close
NEXT ARTICLE
New York City to open Academy for Software Engineering
High school would give foundational education in technology Read More...
 
 
 
 
News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 

Download Current Issue
FEBRUARY 2012 PDF ISSUE

Need Back Issues?
DOWNLOAD HERE

Want to subscribe?


 
blogs tab
Are you at risk for burnout?
Burnout is a severe problem and it can strike at any time. Here's how to tell if you are nearing the edge.
02/09/2012 02:16 PM EST

Agility, mom, and apple pie
If we're to evaluate the state-of-the-art in software development, we should start with the values espoused in the Agile Manifesto.
02/07/2012 11:57 AM EST

RIM woos developers with free tablet
How do you get more apps ported to the BlackBerry PlayBook? By giving every developer a free tablet, of course!
02/04/2012 01:57 PM EST

GitHire: Use Headhunters to Find Your Perfect Programmer
Are you a hiring manager tired of scouring the job boards? Check out this new service that will find 5 people interested in your jobs.
02/03/2012 12:17 PM EST

Facebook claims hacker cred
Facebook's SEC S-1 filing form includes a short essay on the Hacker Way by Mark Zuckerberg himself.
02/02/2012 08:26 AM EST

Ryan Dahl steps down
Ryan Dahl, creator of Node.js, steps back from his position as gatekeeper for the project.
02/01/2012 04:58 PM EST

 
Events calendar tab
2/13/2012 to 2/16/2012
Santa Clara
TechWeb

2/26/2012 to 2/29/2012
San Francisco
BZ Media

2/27/2012 to 3/2/2012
San Francisco
RSA

3/4/2012 to 3/7/2012
Las Vegas
IBM Tivoli

3/5/2012 to 3/9/2012
San Francisco
TechWeb