As a side note, I've found that a very good way to familiarize yourself with a new programming language and its underlying concepts is by solving first 40-50 problems in Project Euler with the language: http://projecteuler.net/
While PE is great keyboard exercise and includes many cool puzzles, I think it is bad way of rewiring your brain for functional thinking. Unless you'll do some exercises that explicitly require new ways of thinking (and read something), you'll probably end up struggling with writing java code in clojure. I advice to do some FP course and then solving some problems in functional way - when you already know the way.
Comments
As a side note, I've found that a very good way to familiarize yourself with a new programming language and its underlying concepts is by solving first 40-50 problems in Project Euler with the language: http://projecteuler.net/
While PE is great keyboard exercise and includes many cool puzzles, I think it is bad way of rewiring your brain for functional thinking. Unless you'll do some exercises that explicitly require new ways of thinking (and read something), you'll probably end up struggling with writing java code in clojure. I advice to do some FP course and then solving some problems in functional way - when you already know the way.