# Getting started

* [https://clojure.org/](https://clojure.org/)
* [https://github.com/clojure-cookbook/clojure-cookbook](https://github.com/clojure-cookbook/clojure-cookbook)
* [https://www.youtube.com/watch?v=VSdnJDO-xdg](https://www.youtube.com/watch?v=VSdnJDO-xdg)
* [http://clojuredocs.org/](http://clojuredocs.org/)

## Philosphy

* [https://www.youtube.com/watch?v=6ayR9s5pudk](https://www.youtube.com/watch?v=6ayR9s5pudk)
  * [https://www.slideshare.net/ogrigas/living-withoutobjects](https://www.slideshare.net/ogrigas/living-withoutobjects)

### Good practice

* [https://functional.works-hub.com/learn/Functional-Calisthenics](https://functional.works-hub.com/learn/Functional-Calisthenics)
  * Name everything
  * No mutable state
  * Exhaustive conditionals
  * Do not use intermediate variables
  * Expressions not statements
  * No Explicit recursion
  * Generic building blocks
  * Side effects at the boundaries
  * Infinite Sequences
  * One argument functions

## Installation

* [https://clojure.org/guides/getting\_started](https://clojure.org/guides/getting_started)
* [https://www.surveymonkey.com/results/SM-S9JVNXNQV/](https://www.surveymonkey.com/results/SM-S9JVNXNQV/)

## Build tools

* [https://boot-clj.com/](https://boot-clj.com/)
* [https://leiningen.org/](https://leiningen.org/)
* [https://www.baeldung.com/leiningen-clojure](https://www.baeldung.com/leiningen-clojure)

## Application

* [https://www.exoscale.com/syslog/clojure-application-tutorial/](https://www.exoscale.com/syslog/clojure-application-tutorial/)

## Libraries

* [https://clojure.org/community/libraries](https://clojure.org/community/libraries)
* [https://www.clojure-toolbox.com/](https://www.clojure-toolbox.com/)

## Tutorial

* [https://www.braveclojure.com/clojure-for-the-brave-and-true/](https://www.braveclojure.com/clojure-for-the-brave-and-true/)
* [https://riptutorial.com/clojure](https://riptutorial.com/clojure)
* tutorialspoint.com/clojure/index.htm
* [https://www.baeldung.com/clojure](https://www.baeldung.com/clojure)
* [https://www.youtube.com/watch?v=ciGyHkDuPAE](https://www.youtube.com/watch?v=ciGyHkDuPAE)
* [https://www.youtube.com/watch?v=P76Vbsk\_3J0](https://www.youtube.com/watch?v=P76Vbsk_3J0)
* [http://yusizhang.github.io/blog/2015/10/07/the-clojure-ide-cursive-in-intellij/](http://yusizhang.github.io/blog/2015/10/07/the-clojure-ide-cursive-in-intellij/)
* [https://github.com/leandrotk/functional-programming-learning-path/tree/master/clojure](https://github.com/leandrotk/functional-programming-learning-path/tree/master/clojure)

## Exercises

* [http://www.4clojure.com/problems](http://www.4clojure.com/problems)

## Type system

* [https://github.com/clojure/core.typed](https://github.com/clojure/core.typed)
* [https://functional.works-hub.com/learn/On-Types-And-Intent](https://functional.works-hub.com/learn/On-Types-And-Intent)

## Web

* [https://www.youtube.com/watch?v=3Xm\_nVqxowk](https://www.youtube.com/watch?v=3Xm_nVqxowk)
* [https://www.youtube.com/watch?v=LcpbBth7FaQ](https://www.youtube.com/watch?v=LcpbBth7FaQ)
* [https://purelyfunctional.tv/mini-guide/what-web-framework-should-i-use-in-clojure/](https://purelyfunctional.tv/mini-guide/what-web-framework-should-i-use-in-clojure/)

## Test

* [https://clojure.github.io/clojure/clojure.test-api.html](https://clojure.github.io/clojure/clojure.test-api.html)
* [https://functional.works-hub.com/learn/a-guide-to-the-clojure-spec-library-606d6](https://functional.works-hub.com/learn/a-guide-to-the-clojure-spec-library-606d6)

## polymorphism && dep inversion

* [https://8thlight.com/blog/myles-megyesi/2012/04/26/polymorphism-in-clojure.html](https://8thlight.com/blog/myles-megyesi/2012/04/26/polymorphism-in-clojure.html)
* clojure protocols

## Database

* [https://www.youtube.com/watch?v=yjS0jHr\_-2g](https://www.youtube.com/watch?v=yjS0jHr_-2g)
* [http://clojure-doc.org/articles/ecosystem/java\_jdbc/reusing\_connections.html](http://clojure-doc.org/articles/ecosystem/java_jdbc/reusing_connections.html)

## Properties

* [https://stackoverflow.com/questions/7777882/loading-configuration-file-in-clojure-as-data-structure](https://stackoverflow.com/questions/7777882/loading-configuration-file-in-clojure-as-data-structure)
* [https://github.com/michaelklishin/propertied](https://github.com/michaelklishin/propertied)

## Concurrency/ threads/async

* [https://www.youtube.com/watch?v=AhxcGGeh5ho](https://www.youtube.com/watch?v=AhxcGGeh5ho)
* [https://www.youtube.com/watch?v=drmNlZVkUeE](https://www.youtube.com/watch?v=drmNlZVkUeE)
* [https://www.youtube.com/watch?v=nDAfZK8m5\_8](https://www.youtube.com/watch?v=nDAfZK8m5_8)
* [https://functional.works-hub.com/learn/concurrency-models-and-clojure-237db](https://functional.works-hub.com/learn/concurrency-models-and-clojure-237db)
