安道

博客文章

怎样学习 Ruby

学给自己的忠告。

静心读书,远离电脑、网络

虽说 Ruby 是一门电脑编程语言,但是任何学习的过程都离不开“书本”。网络上有大量电子书可以下载阅读,条件允许的话,还是打印出来看吧,纸质书和电子书的触感是不同的,而且对着电脑容易分心。Ruby 中有很多概念是需要记忆、理解的,这时最好拿着书离开电脑桌,找个舒服的地方精下心来认真阅读体会;学习到语法细节时则需要在电脑上敲击键盘了。

专注 Ruby,远离 gem、Rails

随着学习的推进,你会发现 Ruby 的世界太精彩了,有多的让人眼花的 gem,还有各种奇怪、很酷、很 geek 的用法,这些就是 Ruby 世界的“糖衣炮弹”,在学习 Ruby 的初期一定要避免诱惑,半年之内,不要接触任何功能强大的 gem,当然包括 Rails,专心学习 Ruby 编程语言才是正事。

不要觉得已经掌握了所有知识,即便是 Matz 本人也说过:对于从事面向对象编程有 15 年以上(经验)的我来说,有很多概念还是觉得很难理解。(《松本行弘的程序世界》P16 2.2.1 面向对象的历史)

遵循 Ruby 代码规范

Ruby 语言本身没有严格限制代码行文规范,你可以把代码写的像 PHP 一样乱,也可以写的像 Python 一样整洁。代码整洁、格式统一的代码对自己、对他人都有很多的好处。目前比较被接受的 Ruby 代码规范是 ruby-style-guide

重复造(大量的)轮子

对初学者来说,重复造轮子是最有用的方法,在制造轮子的过程中可以从零开始认识轮子的结构、材料、工艺流程、质量检验、不良返修等过程。这些不是看来的,是动手做出来的。

即便到了学习的中期也要对他人的代码持怀疑态度,发扬“NIH 综合征”精神,提出自己的观点,改进原有代码或者自己造一个更好地轮子。

学习英语,看原版书

Ruby 的技术虽然更新不快,但是也不慢,如果一个新的技术出现,等出现中文翻译,估计已经是两三年之后的事了,那时新的已经变成旧的了。所以,不要依赖中文,要阅读英文原版书籍、文章,一来锻炼了英语,二来接触到了最新的技术。

不要沉浸在论坛中

论坛是无用的,特别是中文论坛,不要沉浸其中,实在闲来无事倒是可以用来解解闷子。如果遇到问题,第一个想到的应该是到 Stack Overflow 寻求帮助,这个社区会让你异常欣喜。

遵循“守破离”原则

任何知识都不是一朝一夕能够掌握的,学习过程切记三心二意、半途而废。整个的学习过程可以分阶段,参照日本合气道的指导思想进行,即“守破离(shuhari)”。

知识的学习就像练习一门功夫一样,需要经历三个阶段。

第一个阶段“守”。再强大的功夫也有心法套路(降龙十八掌 九九八十一式),这些是初学者必须死记硬背,反复练习的,是“重复造轮子”的最佳阶段,也是整个学习过程最枯燥乏味的,如果能熬过第一阶段,成为大侠就指日可待了。

第二个阶段是“破”。多年的潜心修炼,现在已经可以脱离套路去肆意发挥了,只要还在心法控制的范围之内即可。在这个阶段可以四处找高手切磋过招、指点刚入门的学徒,在潜移默化中提高自己的修为,这也是练习内功的最佳时机。如果一切顺利,基本上就是“大侠”了。

第三个阶段是“离”。吸收了多家之长后就可以像张三丰一样自创“太极”,让他人敬仰了。但是很少有人能够达到这一境界,在武侠之外的编程界,据说只有 C 语言的创始人 Dennis Ritchie 达到了这一阶段,可见其修为了得。