Listened to the latest This Developer’s Life yesterday. “Education“. I enjoyed especially the Seth Juarez interview.
Along with a bunch of useful advice and insight on how to think about school, Seth recommends every programmer should learn 3 languages: a strongly-typed compiled language, a dynamic language and a functional language.
I’ve got the first two well covered with multiple languages for each, but besides a bit of Scheme in school (nothing more than the usual trivial toy problems they give you to supposedly learn anything), I’ve never really delved into functional languages.
So learning one might be a good goal to set for myself. That leaves me with two questions to get started: what language? and what project?
I can kinda learn a language by reading books or whatever, but that’s a pretty shallow surface understanding. I need a project to really get into it. Now I don’t particularly need more projects to get into, but maybe it’s something I can putter around with when I’m just hanging out at Kwartzlab making myself accessible to people.
The problem is what project? I actually understand why and how functional languages are useful these days, but none of the half-dozen or so project ideas I have backburnered jump out as screaming for a functional implementation. So what to do will require a bit of thought.
The more fun problem is picking a language. I can hear Eric‘s voice screaming “Haskell!” right about now. I’ve also heard good things about Scala. And Erlang. Then there’s OCaml and Lua and good ol’ Lisp.
Have to think about it. I have a Python project I’ve been slowly getting started on that would really help me out at work when it’s done. After that, I’ll look at functional a bit more, I think.