28th March 2012
Freeberg nails it once again.
Good software engineers almost always have side projects. In fact, those side projects are one of the reasons why they are good software engineers. The reason is simple: Good software engineering requires constant learning, and very few companies create a situation where all of that learning can occur on the job.
Technology, and software in particular, move incredibly fast. Today’s frameworks and tools are different than those of a year ago, and those are different still from those of five years ago. The details are ever-changing, requiring software engineers to be continually learning to stay afloat. At the same time, the techniques and practices that are used in software development, the deeper skills underlying the fast-moving surface, are consistent but require long and dedicated work to even begin to master.
IT is probably the first occupational field in the history of mankind in which what you knew five years ago is worthless today.
I will, of course, object to the term ‘software engineer’ — engineering is when you can get a predictable result from specified inputs, and I’ve never seen a software program (beyond the traditional ‘Hello, world!’ exercise) for which the actual outcome is reliably predictable.
Clue: There’s no need to ‘beta test’ bridges or dams or buildings.