July 27, 2006

Code is not the problem

When most people think about software engineering/computer programming they think mainly of long, encrypted pieces of sequences of numbers and letters that make up code.  But honestly, that mysterious code that is written throughout the lifecycle of an application is one of the more simple aspects of what software engineers do.  So what’s it really about?  Problem solving.

For a while now the signature for my personal email has had the quote, “learn to code if you must, but first learn to solve problems”.  I’m not sure where that came from.  I don’t remember reading it anywhere, or hearing anyone say it.  But I don’t think I can take credit for it completely because I’m sure I heard/saw something very similar that inspired me.  Since college I’ve felt that I would have benefited from that statement a lot during my education.  I always seemed to approach assignments as tasks in learning to write code.  And if that is all I got out of it then all I could say on my resumé that college taught me to write C++ code.  Though to the inexperienced ear that may sound like a hirable trait, it doesn’t get you very far in the real world.

Writing code is no different than writing a simple paragraph.  Typically a well defined language is used.  All that’s needed is a little knowledge (heavy emphasis on little) of the syntax and reserved commands/words and voila; you’ve got code.  Why should I play down such a big part of software engineering?  Is what I do not that important?  If all I do is sit and write code then I’m not really doing my job.  Trust me I’ve seen some code out there that looks like it was written just so someone would have something to do.

What am I getting at?  Oh yeah, problem solving is the point.  Typically people approach coding as the puzzle.  And that leads to bad code.  Coding should just be a task, but a task that can’t be carried out until the problems at hand have been properly addressed.  

There are many approaches to good problem solving, so I won’t go into that here.  But proper problem solving techniques are what help the software engineer make coding a simple task.  And remember, coders are a dime a dozen, problem solvers are the ones who get it right.  Coders are the people you work with who are afraid to even look at a different language/tool.  Problem solvers will address the need and figure out what language/tool should be used when the planning is finished.

Until next time

No comments: