being a polyglot programmer (barely)
I like learning new programming languages. Unfortunately, I rarely make the time to get any good at them. I’m hoping to figure out how to force myself to write something non-trivial in something at least relatively unlike what I do all day.
I did some hacking on a Python implementation of statsd, and I started on a tool to build Z-machine programs in Perl 6. I took an online course in Scala and got this:
That was fun, and I did write some things more complex that I might have written if I was working through a book. Speaking of working through books, I read a bunch of Introducing Erlang and Erlang Programming, and of Haskell: the Craft of FP. Now I’m back to working through Starting Forth — thankfully I have a print edition, as the web one is dreadful. I really enjoyed Programming in Prolog, too, and hope to someday get around to The Craft of Prolog. There are a number of other languages or books I could mention, but it all comes down to the same thing: I’m very good at dabbling, but I’ve found it very challenging to become proficient at foreign languages because I’ve found no motivation in the form of code I want to write. Or, more specifically, code that I want to write, but that I can’t write faster in Perl, or where I don’t mind suffering getting it done more laboriously.
What I need to do is look for existing programs I like, and want to hack on, and then do so. I think it will probably be really painful, but worth it.
What I wish I could do is become good friends with somebody expert in these languages, interested in helping me learn, possibly while hanging out over chips and salsa. Actually, it seems to turn out that part of the reason I’m not getting as much Erlang programming as I’d like is the same reason I’m not playing as much D&D as I like. Making friends isn’t so hard, but finding friends with the exact set of skills and interests you hope they’ll have can be a pretty tough challenge!