Introduction to Programming is the beginnings of an introductory programming book, attempting to teach Clojure to those completely new to programming.

The theme of 2016 for me was "teaching programming": I had gotten into the groove of lecturing at Lighthouse, I was mentoring some people 1:1 on learning programming, and James and I had a few offshoot projects related to teaching Clojure ( Clojure Turtle, Clojure Warrior, The Rustyspoon Tutorial and others).
As part of my 1:1 "Intro to Programming" teaching, I was experimenting with teaching Clojure, instead of the "typical" intro languages of Basic, Ruby, Python or Javascript.
Clojure has several things going for it that make it an easier language to learn (IMO):
Most developers may be surprised by this assertion and disagree, because when they look at Clojure or try Clojure, they see something "strange" and "hard"; but that is only because they're starting from a different foundation, and Clojure's non-mainstream paradigm choices requiring "unlearning" certain fixed assumptions about programming. New learners have no such barriers.
With students, and in this book, I also experiment with an approach of starting with "what is programming?" (ie. what is the problem that programming languages solve), and also, starting with data structures and modeling. (In this video, I solve an Advent of Code problem in this style).
Apart from 2 months of on-and-off work at the start, I've let this project languish.
Much of it's spirit has been continued in my efforts at Clojure Camp.
Alas, now in 2025, with AI agents already able to outdo any "CS 101" grad (an understatement as of 2025), "learning programming" is likely to shift from a practical pursuit, to a purely aesthetic one. Although... that may actually increase the demand for languages like Clojure and the need for a book like this one. That is... Clojure as an elegant language for thought and artisanal programming.