Saturday, April 24, 2010

Something is Wrong with the Way Programming is Taught in our Schools

A while back I came across this great article by Jeff Atwood on his blog CodingHorror.com titled Why Can't Programmers.. Program? Its a relatively older article, but it's message has started to ring in my ears as my first semester in JAVA programming is coming to an end: will I be able to actually put into practice the techniques I am learning?


First, a little background about myself. I've considered myself a "web hobbyist" for quite some time now; learning PHP/HTML/CSS on my own. Last fall I returned to school to study Database Administration; and have picked up courses in Python, C++, and most recently JAVA. After observing many of my fellow students struggle with basic concepts I have to wonder, is there a problem with the way programming is being taught in our colleges and universities? Does this explain why so many programmers are leaving college with their degrees still unable to write out a simple algorithm that they should have learned in their first year of classes?

Programming has to be experienced. Yes, its true you can read a book and learn a thing or two about programming. You can scour Google reader for all your favorite programming blogs and inhale all the information you can from them. But you're never really going to be able to program, in my opinion, if you aren't spending the time outside of the classroom to program on your own. Maybe my theories about programming seem a bit grandiose, but to me, it is something that requires exploration and practice. I wonder if this isn't encouraged enough by today's professors. Is highest priority being placed on turning in assignments on time to get the "A" instead of driving home real concepts that are able to be expanded upon? And by concepts, I mean real generalized, simple concepts, such as problem solving and knowing how to navigate towards a solution with the tools you are given. Too often I see students not referring back to their own problem solving abilities, but instead looking in the textbook for a problem that is similar and just changing variable names around.

A solution? I'm not sure. Maybe your first programming class should require you to put the computer and textbook away, and pull out some paper and pencil, and simply write out solutions to given problems. Maybe programming "design" isn't gone over enough in the beginning.

Then again, maybe it falls back on the student. Maybe its just the way the field is. The bad programmers are weeded out after they've already gotten their degree and as they stop foot onto the job market.

No comments:

Post a Comment