Skip to content

Instantly share code, notes, and snippets.

@dosbol
Created February 19, 2019 07:24
Show Gist options
  • Save dosbol/94bb17f1696861dd01764ea6dbdc8d29 to your computer and use it in GitHub Desktop.
Save dosbol/94bb17f1696861dd01764ea6dbdc8d29 to your computer and use it in GitHub Desktop.
https://www.infoq.com/news/2009/01/clojure-interview-halloway
Introduction to Clojure
Copyright© 2016 by Bill Burcham [email protected]
Philosophy of (Good) Software—Why Clojure?
Are We There Yet (video)
Simple Made Easy (video)
The Value of Values (video)
The Language of the System (video)
Clojure
Clojure For Java Programmers (video)
The Joy of Clojure (book)
Clojure Cheat Sheet (site)
Clojure Koans (sites, Github repo)
Cursive (IntelliJ plugin for Clojure)
Clojure for the Brave and True (online book/site, optional print book)
As We May Think (About Software)
Design, Composition and Performance (video)
Hammock Driven Development (video)
Watch This Space
ClojureTV (video)
This document presents a guided tour for the Clojure beginner. Why program in Clojure? What is it? How can I get started? It’s all here. I expect this guide might take about 40 hours to cover, assuming you watched all the videos, did the coding exercises and read most of the book (and skimmed the rest). Depending on your background, aptitude, interest level, and other responsibilities, that might be possible to accomplish in one week. For most people, I imagine it would take a few weeks.
Don’t have 40 hours you say? Well in the time it would take to watch The Lord of the Rings trilogy you can be well on your way.
Watch the first three videos first:
Are We There Yet (video)
Simple Made Easy (video)
The Value of Values (video)
In the time would take to watch The Lord of the Rings: The Fellowship of the Ring, you will be exposed to the primary reasoning behind Clojure.
If you’re in a hurry, you can then skip straight to the Clojure section to start learning the language. In that section, start with the two videos under:
Clojure For Java Programmers (video)
In the time would take to watch The Lord of the Rings: The Two Towers, you will have been exposed to the full range of the language and most of its core libraries.
With six hours of passive video watching under your belt (in your brain), you’ll probably want to get started actually writing code. If you want to start fast, you can use just Google and the Clojure Cheat Sheet (site) as references while solving the online Clojure Koans (sites, Github repo).
In the time it would take you to watch The Lord of the Rings: The Return of the King, you can finish those Koans.
If/when you want to go deeper into coding, set up the free Cursive (IntelliJ plugin for Clojure) and work through progressive exercises in Clojure for the Brave and True (online book/site, optional print book).
Philosophy of (Good) Software—Why Clojure?
From the program level to the system level, we’ve learned some things about what works and what doesn’t. We need to learn from our past (and our present) and keep what works and continually evolve.
The talks in this section place our various computing paradigms (e.g. structured, OO, functional, logic programming) in their historical perspective. A strong case is made against the “OO is good for everything” philosophy. A recommendation emerges, for systems built on “functional” cores with the obligatory “stateful” components separated away and carefully controlled.
The Clojure programming language (Clojure for the Java VM, ClojureScript for the JavaScript VM, and Clojure CLR for the Microsoft Common Language Runtime) is designed in accord with the philosophy set forth in these talks.
Are We There Yet (video)
70 minutes, Rich Hickey (with slides) keynote at 2009 JVM Languages Summit
Hickey advocated for the reexamination of basic principles like state, identity, value, time, types, genericity, complexity, as they are used by OOP today, to be able to create the new constructs and languages to deal with the massive parallelism and concurrency of the future.
https://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey
Simple Made Easy (video)
61 minutes, Rich Hickey (with slides) presentation at 2011 Strange Loop conference
Rich Hickey emphasizes simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path.
https://www.infoq.com/presentations/Simple-Made-Easy
The Value of Values (video)
58 minutes, Rich Hickey (with slides) presentation at 2012 goto; conference
Hickey compares value-oriented programming with place-oriented programming concluding that the time of imperative languages has passed and it is the time of functional programming.
https://www.infoq.com/presentations/Value-Values
The Language of the System (video)
a.k.a. To Better Do: TBD
62 minutes, Rich Hickey (with slides) presentation at 2012 Relevance conference
Where do programming languages fit into larger systems? There is a kind of “language” at the system level. It has evolved through the decades. ORBs (CORBA, COM+, RMI) were an attempt to scale OO language concepts to the system level. Those have lost out to HTTP and data-oriented, value-oriented communication. What have we learned about what works at the system level?
https://www.youtube.com/watch?v=ROor6_NGIWU
Clojure
Nuts and bolts of the language, libraries and ecosystem.
Clojure For Java Programmers (video)
Rich Hickey (with slides) 2010 presentation to the NYC Java Study Group
Introduction to Clojure for Java programmers.
part 1 (108 minutes): https://www.youtube.com/watch?v=P76Vbsk_3J0
part 2 (59 minutes): https://www.youtube.com/watch?v=hb3rurFxrZ8
The Joy of Clojure (book)
Fogus and Houser, 2nd ed, 2014
This is the book you want. Read it all.
Clojure Cheat Sheet (site)
This is the jumping-off point for all the most commonly used clojure functions and forms. You’ll have it open all the time.
http://clojure.org/api/cheatsheet
Clojure Koans (sites, Github repo)
This is a collection of delicious little puzzles for new Clojure programmers. Progresses from very easy to moderately difficult.
Do it online (on a web page) with no IDE or installation needed: ClojureScript Koans: http://clojurescriptkoans.com/
Or do it on the command-line: You clone a little git repo and can work the problems right from the command-line, writing snippets of Clojure in a text editor of your choice: http://clojurekoans.com/
Cursive (IntelliJ plugin for Clojure)
This is the IntelliJ plugin for Clojure. Use the free version while you are learning Clojure (not doing product work). Get it.
https://cursive-ide.com/
Clojure for the Brave and True (online book/site, optional print book)
Once you’re through the Clojure Koans, try this online book. It walks you through all the basics of Clojure with good little programming exercises. While it gives instructions for setting up in Emacs, you can (and should) use Cursive in IntelliJ if you’re more comfortable there.
http://www.braveclojure.com/
As We May Think (About Software)
These resources are about how our (human) brains work and how it relates to the way we make (or should make) software.
Design, Composition and Performance (video)
51 minutes, Rich Hickey (with slides) presentation at the 2013 Emerging Technologies for the Enterprise conference
Hickey explores the nature of design and composition and how it impacts the software development practice and tools.
https://www.infoq.com/presentations/Design-Composition-Performance
Hammock Driven Development (video)
40 minutes, Rich Hickey (with slides) keynote at 2010 Clojure conj
A bit of a broadside against “agile” sacred cows like sprints, story-driven development, and TDD. In this talk Hickey gives his “experience” report about how great software actually comes to be.
https://www.youtube.com/watch?v=f84n5oFoZBc
Watch This Space
All the good conference presentations are archived here. More added all the time.
ClojureTV (video)
https://www.youtube.com/user/ClojureTV
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment