Blog Home RSS Kelvin Jackson

A Programmer's Job is to Imagine


At the end of the day, a programmer's job is not to write code. Yes, that's part of it — someone has to actually build the product — but writing code is one of the last steps in the process, and arguably the easiest: there's a reason we're starting to see functional automated code generation tools, but as of yet nothing that can plan, design, and execute a whole project from zero without human handholding the whole way. That's because a programmer's primary job is not to write code, but to imagine how the finished product will work.

Any reasonably complex software project involves numerous pieces, all of which must fit together and perform their tasks in the right order. A programmer's real job is not just to write the code that will perform those tasks, but to conceptualize and articulate all of the steps along the way from idea to finished program. After all, you can't write code to do something until you have an idea of what you want "something" to actually look like. And there is always more to it than the client or designer realizes — if there weren't, programming work would require a lot less time and energy!

This is one more reason not to fear new programming languages or other technologies: knowledge of a particular language is easy to come by, but the imagination required to build useful software and the skill involved in applying it will serve you no matter what tools you use.