Does guides on official sites look good to you?


#1

See people complaining on Twitter:

Got me curious, do you learn Clojure by reading books? Or by just reading official guides and other online materials provided by Clojure community?


#2

Definitely books. I’ve read several: Programming Clojure, Clojure Programming and Brave Clojure. Also others but not for beginners (High performance Clojure, Mastering Clojure Macros, and maybe others).

Indeed I think the guides are not intended to teach Clojure, just give an idea of the capabilities and philosophy behind it. I can regret it because I’m currently learning Rust for fun and their docs are a wonderful way to learn. It’s litterally a book - that’s going to be printed soon. It’s roughly the equivalent of Brave Clojure, but even richer in content.

I’ve just checked, the official Learn Clojure page goes just into the basics.


#3

Those “Learn Clojure” pages are new and still a wip by the way.


#4

I learned it from official guides. Well, not the guides, that section is new, but the official reference is pretty great: https://clojure.org/reference

Though I was already an experienced programmer in other languages prior, but no Lisp experience.

I also used some online guides from blogs to complement my learning, and certain chapters from books to deepen it.

But I highly recommend the official reference to people who already know how to program very well. For just learning the language, and not how to program, its really good, and won’t take you very long to go over.


#5

Ok, it’s a nice section to have.

By the way the Clojure website is growing nicely, congrats for all the work!


#6

I guess Java experience means a lot. I have JavaScript background and learnt some Haskell and Python, however many concepts in Clojure took me long time to understand.


#7

I learned Racket in college, so that’s probably a bit of an unfair headstart compared to someone coming in fresh. But Clojure for the Brave and True helped lower the intimidation factor, 4clojure and http://clojuredocs.org/quickref gave enough room to learn by doing very effectively.

I actually like the curt docs of Clojure, as they encourage building intuition for the language’s mindset, and the examples / REPL experimentation usually take you from curiosity to understanding in a very short period of time.


#8

That’s very possible, I did have expert knowledge of Java. It definitly helps to understand compilation, exceptions, error messages, gen-class, and the likes.


#9

I’m not sure Java makes much of a difference. I had extensive Java experience, but still it took me a while to wrap my head around Clojure :slight_smile:

Of course if you’re doing interop Java experience makes a big difference, and deployment concerns are very similar (JVM tuning, monitoring, classloaders), but these weren’t my stumbling blocks.

I bought most Clojure books out there; the ones that made a difference for me were:

  • “Clojure for the Brave and True” (excellent starter, I read it online and bought on paper as a token of appreciation) https://www.braveclojure.com/clojure-for-the-brave-and-true/
  • “The joy of Clojure” (deep and interesting but not that good as a first book)
  • “Clojure high performance programming”

…and then a lot of banging my own head on the keyboard.


#10

Reminded me of classpath, which has nothing similar in npm ecosystem. Such concept is not documented in Clojure docs. Since Boot is using classpaths to loading resources, it took me long time to figure out by my own.

Now I regret not buying a book in my early days…


#11

Hi,

I tried to write a small program (20loc) at first, and only used the Clojure Cheat sheet. That was tough (but worked). I realized I needed to learn this Lisp thing first and started with SICP. After finishing the first 2 chapters I bought Clojure Programming and read through that. For me “few offcial docs” has never been a reason to stop learning Clojure. Nor have I found the official documents lacking. Some of them are terse but there’s everything in there.
So I’m gonna go ahead and kind of disagree with the tweet here. :wink:

Cheers


#12

Pro tip: Learn Clojure by writing a book. :slight_smile:


#13

This may come across a bit cheeky, but I did it and it worked pretty well. It made me hunt down all the resources that were available on the net back then. It took me on a journey into the implementation of the language itself wherever I couldn’t find the answers I was looking for. Something I’d never done before.

In that scenario, the official guides at the time were both a reference and a background/motivation/design guide to me and thus extremely helpful. But not exhausting.

Granted, I had been exposed to Lisps for some years and I knew a bit about the Java ecosystem. (I don’t think you need to know Java but knowing about the JVM, classpath, some libraries, etc certainly helped.)

Many people blog about their steps when they learn a new language. Writing a book is the same just on a different scale. Putting your new knowledge into a readable form the way you understood it may help you staying focused and really nailing it.


#14

Agreed, writing blogs helps a lot in learning new languages and tools. With knowledges structured in a preferred way, it become more suitable for remembering and looking up.


#15

I learned Clojure in 2009/2010 mostly by reading source code.


#16

My two favorite books were Clojure in Action and Web Development with Clojure.

The former was excellent to teaching ideas of functional programming and how to work in Clojure generally (and introduced the idea of Test Driven Development as an extra perk).

The latter introduced me to Luminus, which has been an invaluable tool for learning how a Clojure stack works (from routing to front-end to database).


#17

I have a Lisp background, but had forgotten most of it by the time I came to Clojure. I use the official docs as reference but have read some sections thoroughly and found them quite helpful (like The Reader).

But I mostly learn in bite-sized pieces as I find myself hitting a conceptual wall whilst programming. That’s why I’m a big fan of books like Paul Stadig’s Clojure Polymorphism.