Summary of 2011 and Resolution of 2012


这是一篇想了很久的日志。过去的一年,发生了很多叵测的事情,我学到了很多,也付出了不小的代价。接下来的这一年,也许会有很多重要的事情发生。无论如何,对于经历的2011,把感想趁着鲜活的时候写下来,也算是对自己的一个交代。

@implementation 2011_Summary

  1. 诚实。这是上一年最大的教训。无论是在学习、研究上,或是与陌生人的交往,还是对待自己最亲密的人,诚实永远是唯一正确的选择。我了解,它的反面是一个多么贬义的行为。但总会有一些时候,要么是觉得自己已经付出了很多努力,所以取些捷径也没什么大过错;要么就是压根儿的应激反应,连自己都无法解释。事后回头看的时候,才会感叹自己的价值观有多么脆弱。但自打意识到之后,再这样任由其发展下去,就太说不过去了。上一年我已经得到了足够多的教训,能够让我在每次自省的时候都深深训诫自己,去努力做到这个简单的品质。

  2. 编程。这是上一年最大的收获。再往之前岁月里寻找,所有的技能、知识都是和学业紧紧连成一体的,于是,就都是些必须去做却又苦逼的差事。也许是从一零年开始的,编程的乐趣逐渐让和它相关的知识自成体系,从其它知识里分离了出来。首先,编程和学习语言一样,可以清晰感觉到点滴的积累。昨天又会了一个新的框架,今天又学了一个新的trick,于是重写代码的程序效率提高了500%。其次,网络上丰富的社区,把全世界有相同爱好的聪明头脑都集中在了一起,类似于之前小学初中,我到了一个足球传统学校,和一群踢球牛逼的人一起,于是也开始爱上了足球。两者的区别在于,踢球好的人往往不爱带踢球不好的,但技术社区里,包容性强了很多。当然,根本差别是,这里没有任何地域限制。和聪明人交流,总是一件愉快的事情。提问、回答,各种限时或不限时的项目,奇怪的题目集锦,可以玩儿的不亦乐乎。当然,最重要的原因是,这件事情,可以让自己不断提高,并且帮助别人获得些便利,若是足够努力,还能让世界变得更好。这是一个多么牛逼的事情啊!

之前我的编程经验都是和硬件相关的,一个程序两条线索推进,其间的区别是浮点计算和定点计算⋯⋯我并非说之前的C代码都不值得一提。相反,从算法的浮点实现,到定点应用限制,其间的各种考量,甚至是算法重新设计,所需知识和工作量都是巨大的。并且,我也基本同意 Joel Spolsky 的观点,学习这种底层代码对于程序员的基本功至关重要。但毕竟,C太原始了。几乎所有的模块都需要自己来搭,就算考虑到reusability这仍然是一件很蛋疼的事情。有语义更人性化的Python,有模块化更好的Java,有更有趣的Obj-C,若是想挑战一下理解力,还可以用Lisp。有句话已经忘记了出处,大意是讲,没有最好的编程语言,只有对于某项工作最合适的语言。这是没错的。打开自己的眼界,学习更多的语言,也就有了更多的乐趣。⋯⋯当然,若是回答问题“你最喜欢哪种编程语言?”我还是会说C,我喜欢那种掌控所有细节的感觉,是为了最大限度的榨取硬件计算能力,也是因为程序没有任何的暗箱,似乎心里能安然很多。

  1. 阅读。算上各种教材,去年总共读了大约20本书,其中精读的十本左右,都是大部头。收获还是不错的。还有另一个阅读源就是google reader,订阅的东西从一零年的google group,换到了hacker news,吵架还是有,只是方式方法更加多元化了。比如C语言该换还是不该换,Java好还是不好,Node.js是不是癌细胞,以及.Net程序员到底是不是傻逼⋯⋯各种大坑,于是各路英豪就各种姿势往里面跳。

今年效率最高的时候是读man-month,因为课程演讲需要,所以总共花了一天的时间就看完了,再加上摘抄笔记和整理的幻灯片,一整天下来感觉学到了不少。而收获最多的两本书是,K&R C 和 CLRS。两本书很多章节都看了两遍。所谓经典教材大概就是如此了,好像每字每句都经过了斟酌,复杂的理念都能表述的很有条理;而因为所涉及的基础知识涵盖太广但书籍篇幅有限,作者只好把一些次重点的东西用小字写下来,或者一笔带过,这也就是需要反复翻看的原因了。此外,阅读积累的质变似乎是在一零年末开始的,不在抵触大部头的英文著作了。而且读下来再翻回头看译著,发现译文里漏洞百出,而且很多晦涩的中文名词,反正也是生僻词,还不如原来英文解释的顺畅。

  1. 水果。乔布斯去世是一一年的一件大事情,而五月份我买了MBP,算是正式成为一名水果消费者了。之前,有不同的人和我讲过各种苹果的坏话,总之两个词,就是装逼和不兼容。前者我倒是无所谓,所谓装逼或者牛逼,冷暖自知,而且在努力牛逼的过程中,装装也未尝不可^_^。而之前不同人讲的不兼容倒是真的唬过我一段时间。之后用了很久的ubuntu,想来这个linux都用的欢喜,来个unix加小清晰界面的Mac OS也没啥。然后就买了。现在来看,未来很长的一段时间里,除非苹果倒闭了,否则我几乎没有可能把主要工作平台换回windows。所有的工作都可以顺利完成,没有任何兼容问题,方便的购买正版软件,程序可以方便的迭代升级,加之这个平台的软件用起来大都十分顺手,而且自己最近还在鼓捣Obj-C。这个操纵系统的转换是成功的。PS. 这个系统是否安全,似乎是另一个永恒的争论话题。而对于所有惧怕这个系统不安全的人们,可以自修一下计算机操作系统这门课,或者Google一下win和unix的差别,以及如何保护系统安全,或者读一下这篇不错的文章

而至于乔布斯,使用了他创造的产品和平台之后,他去世的消息也更让我感到悲伤。从产品线到操作系统到平台,所有的一切就好像一盘缜密围棋,在他去世之后回溯的审视,所能感受的除了惊叹也就只有悲伤了。有关他的文章很多,但最好的一篇,没有之一,是他亲生姐姐写的悼词。每当自己想倦怠的时候,看一看,总会或激励或愧疚,重新开始好好做自己的事情。

  1. Instapaper。Marco Arment写的牛逼应用。我是他博客的忠实读者,也喜爱这个应用。其实我决定使用水果系统,他博客里一系列文章也是功不可没。他还是Tumblr的创始人,以及苹果的超级粉丝。所以当他提到Android以及Windows Phone时候那种戏谑的语气,很是有趣。而更令我着迷的,是他所处的状态,专职做一件自己喜爱的事情,如同一个艺术家一样不断更新完善自己的创作,这个创作受到很多人的喜爱、帮助别人更好的获取资讯,并且自己依靠这个创作获得收入,活的还不错。很多时候我会想,就算自己的爱好不能达到“专职”以及”依靠创作获得收入“,但起码可以努力做到其余的部分。换句话讲,我找到了自己的爱好,尽管不确定能不能用它获得博士学位,或是以它营生,但我确定这是件有意义的事情,所以我也会一直坚持坐下去的。

  2. 10000小时。之前似乎在别的地方也看到过,但已经找不到出处了,也没想过太多,直到读了阮一峰的日志,我才认真思考这个数字的意义。当然,也有其他人计算自己的工作时间,算出来每年能工作2160小时,这样五年能有超过一万小时的积累。但具体看看计算方法,似乎从坐在写字台前开始,连回复工作邮件的时间都算上了,而且取样一天,然后乘以360天/年。这个就有点儿扯了。想要成为乔丹、盖茨或者类似的人,应该要更困难些地吧?比如莫扎特成名前有超过10000的训练,不能把他擦钢琴的时间算在内,乔丹的训练时间应该也不包括他在球场边和拉拉队员们扯淡的时间。训练就是训练,可以包括冥想、包括查找资料、包括 trail and error,包括一切和提高与之相关能力的活动时间。但也仅限于此。我一直在跟着这个家伙的网站,现在他已经领先我将近200小时了,希望我能在不久的将来追回来。

  3. 读库以及独立书店。这个和我自己似乎没有什么关系,但有些想法,也记在这里好了。光合作用和第三极,独立书店的倒闭引得一篇哀鸣。也许我只是以站着说话不腰疼的态度审视,可我真是觉得它们只是市场运转的一个结果而已。第三极书籍分类十分混乱,光合作用开店布局不合理,内设咖啡馆不伦不类,书籍既不全又没有特色⋯⋯总之,作为消费者,很难看出来它们的拥有者在真正用心的经营。等到被淘汰的时候在对着媒体感叹生态圈的恶劣?也成,算是对投资方的一个交代。

和它们对比的,是读库,店小六的用心给我很深刻的印象。嗯,我觉得似乎应该叫六哥或者六叔了⋯⋯订阅读库的一年里,精美的书签,或是特别的环保袋,或者几本赠阅的香港杂志,随时可能随着书籍一同收到。如果有疑问,发邮件有问必答,短信也回复。想想读库的订阅群体数量,而编者只有一人,这样的效率着实令人钦佩。另外,读库和连锁的光合作用或是曾经占有一座大楼的第三极,应该是生活在一个生态圈里,唯一的差别在于读库因为小众,所以少些博弈筹码。当当曾经(或者现在仍然)拖欠了读库几十万的书款,投放到新华书店等传统渠道的书款也总是收不回来,但读库的结果是,偶尔困难时候化险为夷,正常时候生活的有滋有味。全心全意去完成这项工作,应该是其中很重要的一个原因吧。

@end


@protocol 2012_Resolution

  1. 训练时间追上并且不再落后与Dan
  2. 发布至少一个app
  3. 精读至少15本专业书籍
  4. 写一篇研究论文
  5. 可以熟练使用Lisp

[UPDATE: five more general guidelines Learn things Play sports Sing and play instruments Draw and paint Write stories ]

@end

cheers,