Is it better to spend time learning new programming languages or study languages and tools you already use?

I have been thinking about a discusion on Hacker News yesterday about which new programming language people want (or need) to learn. While I definitely enjoy learning new programming languages by writing small applications, I think that I personally get a better productivity boost by reviewing languages and tools I already use.

In the last year I have mostly used Ruby and Clojure for my work. In the last few months I have read two books on Clojure and one on Ruby. Sort of: the more you know, the more you can learn and more deeply understand something.

Recently I reviewed the commands and read another tutorial for the screen utility that I have been using almost everyday for three years. Well worth the time.

I do a lot of work on remote servers and emacs is not always installed so I have also used vi for years. This morning, I saw a reference to learning vim by using vimtutor and spend 20 minutes working through the complete tutor program (learn by doing: you edit the tutorial as part of the tutorial). Time very well spent.


  1. Learning is (usually) easy, mastering takes life time. Seth Godin explains the idea well in his Dip book .
    At the beginning, when you first start something, it's fun.
    You could be taking up golf or acupuncture or piloting a plane or doing chemistry-doesn't matter; it's interesting, and you get plenty of good feedback from the people around you.
    Over the next few days and weeks, the rapid learning you experience keeps you going. Whatever your new thing is, it's easy to stay engaged in it.
    And then the Dip happens. The Dip is the long slog between starting and mastery. A long slog that's actually a shortcut, because it gets you where you want to go faster than any other path. The Dip is the combination of bureaucracy and busywork you must deal with in order to get certified in scuba diving. The Dip is the difference between the easy "beginner" technique and the mare useful "ex-pert" approach in skiing or fashion design.

  2. Thanks Slobodan, good comments! The 'Dip' is one reason I usually only accept work in a few areas that I am most up to speed on - but, I spend a lot of time experimenting (lightly) with many other technologies.

    I try to stay current on only 3 or 4 things at any one time, but these things that I put a lot of effort into change slowly over the years based on my experimenting and mostly on what customers want to pay me to work on.

    BTW, you mentioned SCUBA certification: I did this when I was 13 (my Dad had a large boat and he wanted me to clean the bottom of it of once a month). Certification was easy :-)


Post a Comment

Popular posts from this blog

Custom built SBCL and using spaCy and TensorFlow in Common Lisp

I have tried to take advantage of extra time during the COVID-19 pandemic

GANs and other deep learning models for cooking recipes