Two of our core values at Truss are “pursue mastery” and “be adaptable.” From the point of view of a software engineer, this means learning nonstop. Mastery lies at the end of the rainbow; we may never attain it but that shall not stop our quixotic quest. I wonder if Don Quixote would think the leprechaun guarding the pot of gold is the ultimate boss who must be defeated before being worthy of his Dulcinea,...but I digress. The point is that the Don pursues his goal relentlessly, and so too, must the nonstop learning engineer. But what should we learn? There are too many rainbows in the technology landscape, and we cannot explore them all.
If we google “top programming books” there is one that makes most lists: The Pragmatic Programmer: From Journeyman to Master. It contains too much knowledge to summarize in a blog post so I will not try. That said, one of its most memorable pieces of advice is “learn a new programming language every year.” This is a good idea for a number of reasons. The very act of learning a new language forces us to feel like beginners again. Familiarity with more programming paradigms and tools obviously increases our market value as professionals. New languages also tend to generate new online communities, which ultimately leads to meeting interesting people (in recent years this happened to me with the Clojure channel on Freenode’s IRC network).
Here’s a semi-random short list of languages that I either have learned or would like to learn, along with links that could serve as good starting points:
Clojure from the ground up by Kyle Kingsbury (aka @aphyr).
Swift - introductory video from Apple.
Do you have any favorite entry points to programming languages? Let us know!