Learn more about Brave Clojure On-Site Training
Hello!
This repo contains all the examples, exercises, and projects we'll be working on. Every exercise and project you'll be asked to do has an example solution or implementation. You can look at these before or during the workshop, or not - whatever helps you learn better.
The exercises
directory includes a Leiningen project
that has all the code and exercises we'll be looking at during the
lectures, as well as solutions under
exercises/src/training/solutions
. I
recommend opening the exercises
directory in your editor, connecting
to a REPL, and trying the examples and exercises interactively.
The projects
directory contains example implementations
for the larger projects you'll be working on. For self-study, first
use lein run
to see how the program is supposed to behave. Then try
deleting individual functions and reimplementing them from scratch, or
try reimplementing the entire project.
Have fun!
If you finish exercises early, check out these sites for additional practice:
One of my goals for this workshop is to provide you with a sturdy foundation so that you can quickly and easily continue learning on your own. Here are my recommendations for books, tutorials, and projects, and other resources:
- Land of Lisp. This is the book that got me started with Lisp. It covers Common Lisp, which isn't as immediately practical, but it still helps you understand Clojure better. Plus, learning Common Lisp is extremely useful because you'll be able to understand other great resources, like..
- On Lisp. This is one of the best books on learning how to think like a Lisp programmer.
- Clojure Applied is billed as a second book for Clojure, and I think it does a good job.
- The Clojure subreddit is very friendly and helpful, as is the Clojure google group.
For projects, my advice is to think of something that you personally want to build, and try to build it. If you're interested in web development, Luminus is a good framework with good documentation.
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 license.