
Guide to Starting with Clojure - flaie
https://grison.me/2020/04/04/starting-with-clojure/
======
Heliosmaster
I'm fulltime Clojure since 2014, and I can't say enough how happy I am. I find
a lot of joy, every day, in my work as working with a LISP really fits with
how my brain think.

The community is great and the language leaks through the people: you'll often
find very pragmatic (even conservative) approaches.

If you are looking for some more testimonials, look no further than Uncle Bob
[0] and Gene Kim [1], but there's several more results online.

Lately, I tried to "modernize" a little bit the Clojure course that I used,
many years ago, to start, and you can find it at [2]:

\- [0]: [https://blog.cleancoder.com/uncle-
bob/2019/08/22/WhyClojure....](https://blog.cleancoder.com/uncle-
bob/2019/08/22/WhyClojure.html)

\- [1]: [https://itrevolution.com/love-letter-to-clojure-
part-1/](https://itrevolution.com/love-letter-to-clojure-part-1/)

\- [2]:
[https://heliosmaster.github.io/academy/](https://heliosmaster.github.io/academy/)

------
flaie
Author here:

I recently gave a talk at work to show why Clojure is a good fit and show some
of the possibilities and its ecosystem.

People got interested and wanted to try stuff but were overwhelmed with what
to choose (lein, deps, boot) which editor to use, what's a REPL, why should I
use one, how to use it (from the IDE) and some other stuff like where to learn
Clojure.

So I decided to write an introduction regarding all that (covering IntelliJ &
VSCode since it's the tooling people use at work). Don't hesitate to give
feedback as this surely can be improved.

Note: it doesn't cover ClojureScript but I would be glad to cover it in the
same manner in another post.

~~~
jmiskovic
The site looks very slick. I like the end-to-end shaded background on code
blocks.

Regarding content, it is very hard to write this kind of introduction because
there are so many choices on how to set up the first project and most of those
choices would be completely unfamiliar to those comming from other languages.
My only recommendation would to set up a repo that would bootstrap the
process, or direct people to Maria [0] CLJS notebook so they don't have to
deal with compiler, REPL and unfamiliar IDE while also learning language.

[0] www.maria.cloud

------
dkmn
Thanks for sharing the nice write-up! It's a bit more in-depth than the "hello
world" tutorials out there, and mixing in a few dev tools and workflow hints
is a nice touch. I'm still learning Clojure (dipped in and out over the last
few years), and found a few gems that weren't covered elsewhere.

Visually- and organizationally well-done, too! The slang for JAR ("Jean-
Michel") was a hilarious touch to include...

On related notes:

\- (ref. some of the comments and your "next steps" list) Another resource for
newcomers is Clojure Koans ([https://github.com/functional-koans/clojure-
koans](https://github.com/functional-koans/clojure-koans)). It's very easy to
use these to learn and refresh, even a few minutes at a time. During the
recent stay-at-home period, I've actually had my kids (12 and 15) do these
exercises, and even used it as an opportunity to start teaching them about
git, so they can share their work with me in segments.

\- (for anyone hankering to write something) I think one thing that is still
not well-served for relative newcomers is doing webapps. The examples I found
talking about Ring and Compojure were either dated in terms of dependencies or
were a bit obscure in that there were both new concepts and syntax introduced
at the same time, without a lot of explanation ("it's all in the docs" is not
as helpful when you're new to the language, the idioms, and the frameworks all
at once).

~~~
flaie
It was a goal of mine to have up to date knowledge in it, latest deps and so
on. I would be glad to write something else on writing web-apps with Clojure.

Thank you for your great feedback, I've added a clojure koans to the list of
resources at the end of the guide and keep on learning and building Jean-
Michels :) !

------
agentbellnorm
I think this guide is great! If we want people to use clojure we can’t impose
emacs on them too. This guide introduces clojure from where most developers
are at.

------
twistedpairs
Clojure really needs the equivalent of Portacle; self contained directory with
everything in it that's needed to just start coding without faffing about.

------
defenestration
After you start with Clojure, I can recommend doing the problems on
[http://www.4clojure.com/](http://www.4clojure.com/). I had a lot of fun doing
the problems and learning from solutions from others.

~~~
flaie
Thank you, I added it in the website list at the end of the guide.

~~~
defenestration
Thanks for making the guide. For me Clojure is also not my primary language.
As you write: It made me learn a lot, and changed how I program in other
languages. There is a subtle beauty in Clojure.

