如果你已经有一些基本的编程概念来自Python,那么你学习Clojure的状态很好。
我认为在学习任何事物的开始时,重要的是付出小小的努力就能获得很多回报,因此我总是试图一开始就限制未知因素的数量。
Clojure需要一个宿主语言来运行,这实际上是一个非常棒的功能,因为它从巨大的覆盖范围和最丰富的图书馆生态系统中受益。对于一个初学者来说,这意味着在某些时候,你将在编写程序时不得不某种程度上学习Java或JavaScript。这可能会导致一开始就有额外的阻力,因此我的建议是基于避免这种情况,直到你对核心语言有了一定的信心。
Clojure 同样拥有出色的工具支持,但对于初学者来说,要设置起来可能有些困难,尤其是当你只想开始学习的时候。
要学习这门语言,我认为一个好的开始方式是使用在线REPL工具和《Clojure for the brave and true》这本书:[在线REPL](http://app.klipse.tech) 和 [Clojure for the brave and true](https://www.braveclojure.com/do-things/)。我会复制粘贴示例代码,并对其进行尝试,以检验你对所学内容的理解。
一旦你觉得自己对其理解足够,可以尝试一些小挑战:[Clojurescript Koans](http://clojurescriptkoans.com/)
希望到现在你对Clojure已经有了一些了解,并想要编写一些程序。
通常的步骤是安装Java,并按照入门指南操作
https://clojure.org/guides/getting_started
你还可以开始了解"REPL Driven Development",并在开发过程中设置一个文本编辑器以获得快速反馈(这是Clojure的一大乐趣)。
还有一种方法是获得Babashka的二进制文件,这是一个(庞大)的Clojure子集,我认为值得提到的原因是它非常容易安装,让你在不做太多设置的情况下编写实际程序。但话说回来,如果你需要使用某些库,你将需要使用JVM Clojure来实现。
关于学习Clojure的资源有很多,从核心语言和REPL开始,然后扩展到你感兴趣的应用领域:)