Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save RabidArts/03ae489afaada87d1b5e to your computer and use it in GitHub Desktop.
Save RabidArts/03ae489afaada87d1b5e to your computer and use it in GitHub Desktop.
= P:Cubed Clojure Language Learning Resources =
(Taken from P-Cubed internal wiki. Public site = www.p-cubed.co.za)
Clojure is a dynamic programming language that targets the Java Virtual Machine (and the CLR, and JavaScript).
It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming.
It also focusses a lot on handling concurrency elegantly.
Taster of the language: http://www.tryclj.com/
While it's dynamically typed by default, it can be optionally statically typed using core.typed.
You can force things to be mutable as well (and consequently a concurrency nightmare) when it is required.
This is useful when enforcing contracts and type guarantees.
It works best in a live development style (interactive - code and test in fast cycles, seeing the changes you make as you go).
In many ways, Clojure is not just a language, it's a vision of what should and could be.
== Online Courses ==
* [[http://rubylearning.com/blog/2010/03/09/clojure-101-a-new-course/|Free online course at RubyLearning.com with mentor that critiques your work]]
* [[http://pluralsight.com/training/Courses/Find?highlight=true&searchTerm=Clojure|Pay-for PluralSight courses]]
== Online Learning Resources: ==
* [[http://www.braveclojure.com/|Clojure for the Brave and True]] - Great online tutorial
* [[http://www.4clojure.com/|Online Collaborative Exercises]]
* [[http://www.braveclojure.com/do-things/|Online Beginners Book]]
* [[http://en.wikibooks.org/wiki/Clojure_Programming/Examples/Cookbook|Clojure Cookbook (examples)]]
* [[https://www.youtube.com/watch?v=wNhK8t3uLJU|Explanation of Clojure static typing by creator]]
* [[https://github.com/typedclojure/screencasts|Screencasts of Clojure static typing]]
== Offline Learning Resources ==
* [[https://github.com/functional-koans/clojure-koans|Koans for Clojure]]
* [[http://drcabana.org/2012/02/18/an-invitation-to-fp-for-clojure-noobs/|Project Euler Exercises]]
* [[https://github.com/relevance/labrepl|Environment for exploring the Clojure language]]
== Videos & Presentations ==
* [[http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey|Rich Hickey - Are we there yet?]]
* [[https://www.youtube.com/watch?v=f84n5oFoZBc|Rich Hickey - Hammock-Driven Development (Re:Problem Solving)]]
* [[http://www.infoq.com/presentations/Simple-Made-Easy|Rich Hickey - Simple made Easy]]
* [[http://www.infoq.com/presentations/Value-Values|Rich Hickey - The Value of Values]]
* [[https://www.youtube.com/watch?v=ROor6_NGIWU|Rich Hickey - The Language of the System]]
* [[http://www.infoq.com/presentations/Design-Composition-Performance|Rich Hickey - Design, Composition, Performance]]
* [[http://www.infoq.com/presentations/datomic-functional-database|Rich Hickey - The functional database]]
* [[http://www.infoq.com/presentations/Deconstructing-Database|Deconstructing the Database]]
* [[https://www.youtube.com/watch?v=wASCH_gPnDw|Interview with Rich Hickey (Clojure Creator)]]
* [[http://www.infoq.com/presentations/clojure-data-state-value|Alex Miller - Clojure: Enemy of the State]]
* [[http://www.infoq.com/presentations/Clojure-The-Art-of-Abstraction|Alex Miller - The Art of Abstraction]]
* [[http://www.infoq.com/presentations/clojure-robots|Carin Meier - Clojure Robots]]
* [[https://www.youtube.com/user/ClojureTV|Clojure TV on youtube]]
* [[http://learn-clojure.com/clojure_videos.html|More Videos..]]
== Notable articles ==
* [[http://michaelochurch.wordpress.com/2013/08/07/why-clojure-will-win/|Why Clojure Will Win - Has interesting things to say about static vs dynamic typing (5th para)]]
== Books ==
* [[http://www.amazon.com/Joy-Clojure-Michael-Fogus|The Joy of clojure]] (Best as 2nd book)
* [[http://www.amazon.com/Clojure-Programming-Chas-Emerick|Clojure programming]]
== IDEs ==
* Emacs with [[https://github.com/overtone/emacs-live|Emacs live]] (also see EVIL mode)
* [[http://www.lighttable.com/|Light Table]]
* [[https://code.google.com/p/counterclockwise/|CounterClockwise - Eclipse plugin]]
* [[https://cursiveclojure.com/|Cursive clojure - IntelliJ plugin]]
* [[https://nightcode.info/|Nightcode]]
== Other ==
* [[http://dev.clojure.org/display/community/Clojure+Success+Stories|Clojure Success Stories]]
* [[http://clojuredocs.org/|Reference Docs]]
* [[http://briancarper.net/tag/157/clojure|Clojure Blogger - Brian Carper]]
* [[http://java.ociweb.com/mark/clojure/|Useful clojure links]]
* [[https://github.com/halgari/clojure-py|Clojure in Python]]
* [[http://clojure.org/cheatsheet|Clojure cheat sheet]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment