With a lot of time to spare in the next 6 months or so, I have the unique opportunity to build up skills and knowledge, both for pleasure, but also in preparation for my next job, whatever that will be. The decision on where to focus my energies is difficult though. I have always had the strong desire to learn new things, but as I’m interested by pretty much anything, concentrating on one topic without a deadline is typically hard. In that way, I’m apparently a classic ENFP. People with faith in other, more arbitrary classification systems might recognise me as a Gemini.
I try to avoid getting depressed about not achieving impossible or improbable things – like visiting every country in the world, learning more than a couple of spoken languages or mastering a handful of instruments. It is obvious that even if I was lucky enough to be able to do even one of those things, I wouldn’t be able to do all of them. In the context of knowledge, the word polymath is anachronistic. It has been impossible for a long time to become an expert on everything, and attempting to do so, even in a particular field such as computer science, is futile. It might seem self-evident, but it still makes me sigh at the realisation that even at the comparatively tender age of 29, at lot of possibilities are closed off.
Of course, this is all in the context of a very blessed life, for which I am incredibly grateful. The fact that I’m able to sit here and worry about not doing enough with my life speaks volumes and I don’t consider myself entitled to any of the above. It is a very middle-class neurosis and I at least have the humility and self-awareness to be slightly embarrassed about coming close to implying that it is a ‘problem’ of any great importance.
Nevertheless, to ground myself and avoid analysis paralysis, I have to continually remind myself of Kierkegaard – “accept, choose and act.”
With the aim of deepening technical knowledge, in the last 6 months I have already done side projects in C, Python, Erlang, Zend Framework, jQuery and CouchDB. I particularly like Python and CouchDB, and as primarily a PHP programmer, Zend Framework certainly has its attractions. C is critically important in refreshing myself on what computers actually do, and how they work. I’ve solved a number of programming challenges and learned lots about graphing algorithms and data-structures. Continuing any one of these would be worthwhile. But what about Riak, which looks really interesting? Or NodeJS and non-blocking server technology? HTML5 and CSS3 are far from fully formed, but you can do already do worthwhile things with them too…
I have two main concerns. First, that I will be unable to pick a small enough set of technologies to really develop expertise in. Second, that should I be able to pick a particular set, I’ll lock myself into a particular way of thinking, which will close off other avenues. The solution seems to be to pick something that interests me (not difficult), that is significantly different from what I’m already skilled at, and that is a large enough topic that it can sustain me for longer than a few weeks before I want to do something else. Erlang seems to fit the bill, as functional programming very much interests me, distributed and concurrent programming are certainly going to become hugely important and it is a step outside what I have been doing in my day job for the past 4 years. Combining that with a large sized Erlang project, like Riak or CouchDB seems like a good bet. If I can put something together behind a NodeJS server as well, instead of nginx, that would probably tick all the boxes.
Ironically enough, I started thinking about all of this again after being distracted from learning about Riak by following a link to a short piece by Dave Smith, one of that project’s principals, where he discusses the difficulty in making time to truly absorb things. I’ve felt the same recently – that the desire to accumulate knowledge leads to shallow, inconsistent participation in other aspects of life that are just as or more important; friendship, love, art, politics, music, current affairs, self-expression and good books. That I’m dipping into life, rather than submerging myself. I thought his pledge to make time for reading and writing each day was an inspiring one, and it’s something I hope to mimic. With 6 months of travel and new experiences on the horizon, I should have more than enough material to put something together most days.