We hear the phrase "learning should be fun" tossed around a lot in the software development world. It certainly helps the learning process be more enjoyable when it's considered something of a diversion. But learning is also serious business. Developers who don't take professional growth seriously fall behind quickly. In five years, a programmer who hasn't picked up any new skills may find himself like a rudderless ship on the ocean. In fact, for budding developers, I offer this single bit of advice: if you're not willing to learn constantly, you should not get into this business.
It's somewhat poetic that developers of "soft wares" must continually reinvent themselves. Like the human body which regenerates through normal biological processes, the economy of programmers depends on the regenerative capabilities inherent in the tools we ply. We feed on the change that drives us to constant betterment. Along the way, it's tempting to get comfortable, resting upon our laurels as they say. We might become accustomed to a platform, a language, a set of tools.
In many other walks of life, becoming comfortable serves a purpose related to self-preservation. Can you imagine a mason giving up his trusty trowel and level for tools completely foreign to him? Moreover, can you imagine him establishing a pattern to seek out new tools every few years? To the contrary, the mason's craft is enhanced by learning one set of tools well and sticking with them for his lifetime. Minor enhancements may come along from time to time but the mason's craft was essentially sealed in time eons ago.
In the business of software, we're constantly bombarded by new tools and new techniques. One can argue that it's the immaturity of our craft that creates this sort of turmoil. It's also worth arguing that our lack of satisfaction is driven by market forces bent on selling us constantly better stuff. However, I think the chaos is more related to both the pliable nature of the economy in which we serve and a conspicuous predilection for tinkering in our species. Tinkering though is not learning. It nibbles at the edges of education and supports the overall effort, of course. However, profound learning that lasts a lifetime is a very rigorous process.
Recently, I had the pleasure of listening to a lecture by Dr. Mary Slade from James Madison University concerning gifted education. She described the steps that were required for deep learning to occur. I had honestly never rationalized all of the phases that one must go through to lock in true mastery of a topic. Going from mere remembrance all the way to creativity, there were six discrete steps. Along the way, tinkering and playfulness play a part but they fall away around the halfway mark. What remains on the path to creating truly new and unique outputs from acquired knowledge are hard, often unenviable tasks that require critical evaluation of both the material and the process. Self-doubt and failure lurk in those waters so many simply return to tinkering when faced with those sorts of barriers.
And thus, it was the heart of Julie Lerman's keynote address at the CodeStock 2013 Conference entitled "Disrupt Your Comfort Zone" that got me thinking about my own situation as a Creator of Intellectual Property. I've become very good at what I do. In terms that author Andy Hunt might describe in The Pragmatic Programmer, I've made the transition from journeyman to master in my realm largely by following his advice. Yet, I am always fearful that my mastery, which would serve me well were I in the business of stacking bricks and such, may become a detriment to me in due time. So I push myself to take up new ideas, play with them a bit, and regurgitate them misshapen and quite damaged until I get it right. When playfulness gives way to the hard work that brings the ruthless pressure of uncertainty, I resolve to stay true. As Julie reminded me, only that which is achieved through discomfort and repetitive distress can truly change our nature.