Computer Programming is hard! Most people think it's easy, because they know some nine-year-old who "programs." But there's a difference between fooling around with the computer and building software applications. Here's the deal.
When you write a full-blown computer program, you have to get both the syntax and the semantics absolutely, 100% correct. It's like writing a large novel in which there can be no spelling errors, no grammar errors and no typographical errors of any kind. And that's just the syntax part. The novel also has to make complete sense. There can't be any of those little "oops" moments that fans love to spot. (For instance, you can't refer to some distant character as a barber and later as a grocer.)
So a software application is like a large novel with zero mistakes. That's just the "getting it right" part. It also has to solve a problem or meet a need. It has to be designed for a specific purpose. In this sense, a software application is like a large building.
What this means is that good software writers are part novelist, part researcher and part architect. And obviously doing that well requires some degree of training and possibly some native skill. At the least, it requires an aptitude for detail and the ability to look stuff up (which computer programmers do constantly).
It also requires the ability to constantly learn new material. There's a piece of advice I give newbie programmers: Learn to learn; you'll be doing it from now on. Whether it's a new language, a new protocol, a new method or a new programming tool, there's always something new to learn. It's definitely not the career for the casual!
The problem is that right now, there's no licensing or oversight for programmers. Anyone can call themselves a programmer, and many "anyones" do. There's a huge fraction of working programmers who should be working elsewhere.
This all is why the term "software engineer" is so offensive to Real Engineers. Real Engineers have licenses and certifications and prescribed educations. Software Engineers
[*DING*]
D'oh! At least I got to the punchline! :-)
© 2008 Chris from MN






