Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut.
- The Pragmatic Programmer
Was that really written almost 15 years ago? Time flies.
It's been a while since I learned a new language. I started messing around with Clojure, and it's been a blast. It is the most fun I've had programming since the first time I fired up Squeak and started poking around.
I can't seem to break out of the "every project looks like a blog engine" mold, so I started another web app called Logbook (source). Inspired by this post by Austin Kleon, it'll be a very simple way of logging what you did for the day. I started keeping a personal logbook using text files a year ago, and really like it.
Logbook uses Clojure, Compojure, and Clabango (I gotta have my templates).
My Clojure Path
The following has helped me get to where I am so far:
- The Simple Made Easy talk by Rich Hickey. If you find yourself nodding along to this, Clojure may be something you're looking for.
- Clojure in Action by Amit Rathore. It's a little dated (there's a second edition in the works), but this approachable book got me going.
- The Clojure Koans are a set of exercises designed to test your Clojure competence. The 4 Clojure exercises are similar, but track your progress.
- The Basic Web Development tutorial on Clojure Docs got me going with Ring+Compojure.
- Tero Parviainen's list of Clojure resources has a lot of stuff to check out.
- News can be found on the Clojure subreddit and Planet Clojure.
So far I'm finding Clojure challenging but fun. It's a welcome punch in the brain if you feel you've been spinning your wheels.