(clj 0) Diving straight in with some koans

Why Clojure?

A long time ago (meaning I don’t remember when but it’s been a while) I learned about a programming language called Lisp. It was said that by studying this language you’d gain deep insights into programming and you’d never write code the same way again. That definitely piqued my interest.

Some time later (don’t remember when exactly either) I learned about the existence of Clojure and that it too, was something special. So I added it to the list of programming languages I wanted to learn some day.

Then, earlier this month, I felt the need to start a new project. To learn something new. So I figured I’d learn Lisp. That didn’t last long though, as I found out that the recommended editor for Lisp is Emacs. And from trying out Emacs and vi about 20 years ago I knew that for some reason vi does fit with how my mind works, and Emacs doesn’t.

So I went back to the drawing board, remembered there’s a thing called Clojure, and learned that it’s actually a Lisp dialect. Perfect! (Spoiler: Emacs is also recommended for Clojure, more on that later.) Next question was how to start learning. Back in 2018 I enjoyed solving the Python koans, so I did an internet search and found the Clojure koans.

The Clojure koans

During the weekend of 18-19 April I solved the first 13 Clojure koans. I tweeted how it made my head hurt but in a good way. But then on Monday the 20th I started on the 14th koan on recursion and got stuck. And to be honest, I had also left a ToDo in the 7th one about functions, because I wasn’t sure I had the correct solution.

So I decided I needed a different approach, one that included more explaining. Searching the internet led to pages such as the Clojure Newbie Guide and the Reference section of Reddit’s r/Clojure. A lot of people recommended the book “Clojure for the Brave and True“. After exploring the free online version I decided this was my way forward.

Clojure for the Brave and True

The first chapter has you create a Clojure project. So I followed the steps and pushed it all into a new git repository.

Next was chapter 2 “How to Use Emacs, an Excellent Clojure Editor”, which led me to explore my options for Clojure editors. More on that in my next post.