有 Ruby 基础,在学习 Elixir 的时候遇到了一种难以说清楚的困难。和学习其他开发语言比如 Java/Go 完全不一样,陷入了一种语言之外的泥潭。Elixir 至少有两个门槛,一个是函数式编程的思维,函数会更多的被当成参数传递,光看代码的时候可能没太多障碍,真自己写的时候就难以写出来非常地道的函数式代码,这需要彻底的习惯和思维转变。另外一个大山就是 BEAM/OTP。我用了挺久的时间才意识到这个东西本质就像是一个迷你的操作系统,管理和调度线程,以及线程间消息传递等在其他编程语言里比较底层和细节的东西,Elixir 是构建在 Erlang/OTP/BEAM 之上的,想要掌握后者这套体系是绕不开的门槛。整个学起来就感觉有点难,而且需要花一段时间才能意识到,入门没真那么容易。