{:user {:plugins [[jonase/eastwood "0.2.5"]]}}
You can never get a cup of tea large enough or a book long enough to suit me.
Further exercises: https://www.4clojure.com/
Clojure for Java Programmers - Rich Hickey
Write tests
Write expectation strings for tests
Use lein-test-refresh
Keep functions short and focused
Extract sub functions
Compose functions
Keep namespaces short and focused
Extract related functions into new namespaces
Write doc-strings for namespaces
Write doc-strings for functions
Write doc-strings for defs when appropriate
Follow the Clojure style guide
Build bottom up
Start with data
Create functions to operated on that data
Eastwood can give hints on better expressions
Read source code (Clojure, libraries, open source projects)
Most problems can be solved with a function
Scientific method:
Think of things that could possibly be wrong
Isolate a small test case
Test one hypothesis at a time
Finding Clojure libraries https://www.clojure-toolbox.com/
Editor + Test refresh + REPL
Reading stacktraces
Try line 1
Scan down for your namespace
Small functions
Test as you go
Print things
Test assumptions/hypothesis
After you feel comfortable with Clojure
Paredit
Parinfer
Send file to REPL
Send form to REPL
Set aside some recuring time to bite of bits of the API
Clojure word of the day: https://clojure.me
Clojure source
Clojure libraries
Open source projects
Check the source on anything new you use
Produces suggestions on how to write idiomatic Clojure
$HOME/.lein/profiles.clj
{:user {:plugins [[jonase/eastwood "0.2.5"]]}}
$ lein eastwood
REPL can answer most questions
StackOverflow.com #clojure
Create minimal examples
Clojure mailing list https://groups.google.com/forum/#!forum/clojure
ClojureVerse https://clojureverse.org
Clojurians Slack http://clojurians.net
Challenges 1-4
Small projects
4Clojure problems http://www.4clojure.com
Project Euler https://projecteuler.net
Katas
@timothypratley