三个月业余学习Erlang的总结

2012-12-10

     

 

      从我买第一本Erlang 书籍 《Erlang 编程》 已经三个月过去了。真是时间如流水啊! 所幸的是在这三个月中积累了相当的基础知识(为Erlang)。 SICP还剩下最后一族没有读完,但是,这本书的基础知识对我学习Erlang 的帮助最大,年底之前一定要搞定,好有一个交代啊–都花了半年时间了。 好,下面来说说我目前接触到的与Erlang相关的东西吧!

   首先是《Erlang 编程》( Erlang Programming)。 初读的时候还是花费了相当的功夫的,整个九月的空闲时间都花费在这本书上了,Erlang的一些基本概念和编程理念毕竟和C系列差别很大。基本数据上,tuple和List对我没有困难,只是要花几天时间把Lisp 中 “(” ,“)”, “.” 分割符 换成 “[", "]“, “|”就没有问题。 倒是那个atom折磨了我一段时间,一直没想明白,为啥需要那么多字符串常量。 模式匹配和Scheme里基本一样,没啥好说的。recursion 和 tail-recursion 也大抵与Lisp中相近。哦,对了,就是那个Erlang 里的clause(子句)也折磨了我一段时间,我看到它,就想起了Java里的 overload。 相信我遇到的问题,从 OOP 方向过来的前辈也曾遇到过吧,后来的晚辈门也一定会遇到吧。 唉,一个人自学的苦楚就在与在你能和一般人交流经验之前的寂寞自学过程。等到自己有一定的经验之后,再想想该怎样做点贡献吧。
我这本书是英文版的,读起来要稍微多花一些时间。但是,就我目前的经验来说,这样的时间花费是非常超值的。 因为从二年级开始,我自购的学习编程的书籍基本上都是英文版的。好处有如下:1, 读得越多,读得越快,理解越深入,一两年积累后,不再有任何英文障碍。 2,省去了中文翻译可能带来的错误命名,概念。 我一直在劝导我的兄弟们, 读书,特别是技术书籍,一定要原版的。 好在终于有人能听得进我的话。

   其次是《Erlang OTP 实战》(Erlang OTP in Action)。这本书目前还没有读完, 现在陷入了一种困境: 因为没有足够的时间和Erlang实际编程经验, 学习OTP框架遇到了瓶颈,难以深入下去了。 最近两天手头上工作不那么忙碌了。 又重新看这本书中已经读完的部分,再次打打代码,竟感觉能理解的更多了。看来,“读书百遍,其义自见”,“熟能生巧”,“一万小时原则”都是非常正确的。 到目前为止, 个人觉得这本书非常棒。 从很基础的东西开始。我得抽出更多的时间了。但是,如同某位前辈在豆瓣上指出的一样, 这本书是要在看过 Erlang Programming 或 Joe 老爷的 Programming Erlang之后看才好。
OTP,如书中所言,已完全失去了单词本身的含义了。个人浅薄经验来看,OTP 框架就是对通用服务器模式进行了抽象。有如网站开发中的MVC 模式,但是比MVC这种只有理念上的指导更具体一些,有代码在那儿摆着的嘛! 个人感觉OTP抽象出来了一种行为模式,就像是总结了一种祖传下来的不成文的经验。这个东西应该是要用到具体的开发案例中才会有深入的理解吧! 好吧,我期待着。

   第三就是《CouchDB 权威指南》,诶,不是讲Erlang吗? 怎么扯到数据库上去了? 别急,如第二条里所说的,毕竟我这编程经验不足,就考虑着拿几个开源的Erlang 项目源代码来读一读,实践一下。 这本书没有当然没有讲解Erlang的东西啦! 既然打算深入的研究下去,一定是要对整个项目有深入的了解的。CouchDB 本身的使用还是非常简单的, 这本书只有242面(算上长篇附录),而且字儿大,图多。因为使用 JavaScript 有很长一段时间了,而且有一段时间还深入研究过,对json的使用也有一段时间的经验。理解这本书上的内容基本上没有费什么力气。 接下来就是读源代码并且实践了。
CouchDB Project 源代码 托管在Github上,这一点也对像我这样的初学者了就非常方便了。个人感觉Git的理念比SVN 要好一些, 其口号“everthing is local” 对学习这样开原项目也相当便利。 第一次,下载CouchDB 源代码的时候还是吓了我一大跳的:压缩包竟然只有2M 左右。 真是闪瞎我这双铝合金狗眼了。 与此对比,MongoDB 的源代码压缩包就有十几个M啊,C++我不是很熟悉,但是基本的源代码还是能读懂的。 MongoDB和 ejabber 只能等到来年再说了。

   外加,Learm You Some Erlang for Great Good。 这本电子书我也读到了OTP 部分就难以继续了。这本书还是非常有货的,对某些部分讲解比Programming Erlang 都详细透彻。等到纸制版出来,一定要买一本收藏。 看书,果然就应该这样看: 两三本书在手,互相比较,相互补充。

   参加Erlang Question Mailing List 有两个多月了,每天都查看每一封邮件。虽然有很多被讨论的内容我根本不懂,但依旧有不少收获。现在的问题是没有时间来找一家公司去当实习生。没有大量的时间去练习这些东西。大家谁想要一个对分布式、并行计算十分感兴趣,愿意花十年时间研究的人, 就把我领走吧! 管吃饱,管住就行。 ^_* 接着说Mailing List, 最令我惊奇的是Joe 老爷也会时不时的露个面。 真是令人敬佩的奉献精神啊。吾辈之楷模啊!
ps: OTP-system-decumentation.5.9.pdf  这个文档应该是官方提供的吧,300页的内容写的都是极其实用的指导意见和经验。 相信着文档以后定能有大作用。

 

如果有任何意见,欢迎留言讨论。


[ 主页 ]
COMMENTS
POST A COMMENT

(optional)



(optional)