Behavioral product strategist and gamification designer. This is my public hypertext notebook, sharing my thinking in motion at various stages of development.


Why I'm learning Clojure

I've been interested in learning to code for a while, but never really took a full leap. I've had a few false starts. In college I took classes where I had to use R and Stata for statistical programming and econometrics, but I didn't use it beyond the classroom. I tried learning Python for statistical programming on my own with Datacamp, but I wasn't able to maintain my enthusiasm for too long. There were a lot of syntax rules that didn't make immediate sense to me (maybe the underlying rules just weren't explained), maybe it was too "how-to" oriented, or maybe I just didn't have a strong enough reason to program at the time.

The amount of talks that I had watched from programmers given that I had never coded (besides GuidedTrack but that barely counts as coding) was absurd. I don't know what it was about them, but I just really wanted to speak their language. In particular, presentations about Lisp dialects like Clojure and Racket fascinated me to no end. From what I could tell, the syntax looked both simple and composable.

Even more interesting to me was that given that they are both Lisp dialects, that meant they excel at meta-programming - in other words, programming your programming language. Given my interest in Domain-specific languages as end-user software, Clojure felt like it would be a great playground.

Additionally, my work on GuidedTrack has led me to become fascinated with end-user programming and Learnable programming. End-user programming has the potential to enable people to meld the computer to their needs rather than being totally reliant on pre-built solutions. Many Horizontal products trend towards basic end-user programming. While my ignorance has served me well in making a better learning experience for non-coders, if I want to expand my goals for end-user programming beyond GuidedTrack, it's time for me to gain new tacit knowledge.

I tried learning on my own, but struggled to stay motivated so I posted on Twitter asking about Clojure tutors or if anyone in my network was generally willing to help me. Tasshin Fogleman sent me a direct message and offered to send me a bunch of his books.


I was overwhelmed by his kindness and decided that if someone was willing to send me all of these great books to help me get started, I should go ahead and get started.

At this point, I'm becoming very passionate about Clojure very quickly. See here for How I'm learning Clojure.