《Programming Ruby 第二版》中文版终于面市了!

和广大的读者一样,我也在翘首期盼这本译作的面市,从出版社方面得到的消息,这本书将肯定在本周面市,于是我每天都要到china-pub和dearbook上看看,是否已经从期书或预定变为可出售的状态。今天下午终于在china-pub看到,这本书已经可以购买了。终于松了一口气,呼呼。

每次都是收到出版社的样书,一两天后才会面市,不过这次我们还没收到样书呢。可见,出版社也是很急迫了,不过已经被读者骂惨了 :(

杂想

在Sun工作已经3年半了,一直是进行的是problem solving性质的工作,fix bug无数。剖析和调试代码的能力有很大提高,但是编程的动手能力却有很大的退步。就像自己现在多用键盘拼音输入,很少提笔写字,许多字已经不会写了。加上本身对算法学习投入的精力比较少,有时在网上看到一些学生应聘的笔试题,一时间不得要领。心里觉得很惶恐。

前两天读到李开复先生的一篇文章,谈到算法分析和设计的能力是程序员之根本,而中国大陆的学生对算法学习不够重视,大部分时间用来学习各种各样的语言,和所谓新技术,基本功不够扎实。的确切中要害,并心有戚戚焉。

我自己是个兴趣极其广泛的人,从OS Kernel、图形库、系统编程到Web开发技术,从C/C++、Java、perl到python、ruby,涉猎广泛,总是在学习探求一些新事物,往往把基本原理搞通之后,就兴趣大减,放诸一旁了,然后再去寻找新的兴趣点。记得一本关于程序员的书说,程序员每3个月应该尝试学习一门新语言,虽然觉得有些夸张,但是还是觉得多学习语言是一种乐趣,并对自己的专业很有帮助。现在想来,文章的原意也许是:不同类型的语言,如静态类型语言,函数式编程语言,动态类型语言,是应该选取一两门系统的学习一下。千万不可为了学语言而学语言,应该学习语言背后的理念和思想。

穷则思变,虽然一年之际的春天已过,还是给自己这一年定一个大致的目标和方向。那就是,学习算法,重拾编程。

顺便说说如何读大规模的代码。个人的体会是,读code是一个由顶向下并由下到上的渐合的过程。如果基本架构和理论概念不清,读具体细节的代码,没什么帮助。如果一味从顶向下的读,则具体细节无法得其要领,debug常常是搞清代码流程的有效手段。读code是一个理论和实践反复验证的过程,才能做到对代码的完整理解。