dream

March 10th, 2010 by live4thee
  • 曾经有梦
    大多数程序员都像谱写一段传奇,至少曾经想过。大二时立下的梦想是成为Linux Kernel Developer,一直努力到读研,未曾动摇过。研二尚未结束便开始实习,没想到是做QA,然而Eric S. Raymond说,为OSS项目做QA是个好的开始。于是,我竟然坚持了下来。曾经想转为dev,未果,开始专心读SICP,学Scheme — 既然不能做kernel dev,那就在编译器方面多多努力吧,我认为这是成长为一个优秀程序员的必经之路。记得当时在某个新闻组看见一篇文章,说Scheme比较适于用来模拟其 他语言。另外,老大的极力推荐也是一个原因。
  • Scheme & Functional Programming
    读了SICP后甚至觉得当初的dream有点可笑,好像一个井底之蛙梦想着要搞懂那座井是怎么建成的,而不知道井外的天空为何物。我开始了解FP是怎么回事,Scheme/Lisp的macro系统有多么强大,开始知道什么叫write programs to write programs,什么叫data is program, program is data. 此外,知道除了传统的C风格命令式编程外,还有惰性求值、非确定性编程等等以前闻所未闻的东西。用个成语来形容:别有洞天。
  • Ruby & Domain Specific Language
    接触Scheme的另外一个收获便是所谓DSL,有篇文章看得我拍案叫绝。后来知道Ruby很适合用来构造Internal DSL,而那段时间的工作中恰好用到Ruby,很巧。有了Scheme的基础,Ruby可以看做是语法比较fancy的一门Lisp方言,学起来如鱼得水。挤出一点时间用Ruby重写了之前用Scheme写的代码生成程序,效果不错。
  • Haskell & Parallel Computing
    因为Parallel Computing和DSL方面的兴趣,又接触了Haskell,以及美妙的parsec,接着是一通洗脑:GADTs,纯函数式风格,以及Monad等等。特别是这篇文章,处处透露着简洁和优雅。就像刚学Linux时领悟到pipe的强大,那种激动无与伦比。

如果Scheme是把我领到FP的大门口,则Haskell是一脚把我踢了进去。回头看去,原来我在不经意间走了一遍multi-paradigm programming,如果要为此选用一门语言,那便是Scala(或C#)。

读书 - 2 - False Consensus Bias

March 2nd, 2010 by live4thee

我们都不自觉的认为他人和自己的想法是一样的,但其实不是。心理学家称其为”False Consensus Bias”,译为“虚假同感偏差”。当别人的想法或行为和自己不一样时,我们很容易(下意识地)认为别人多少有点脑子进水。

由于此种偏见的存在,程序员很难设身处地于用户之境地。甚至软件工程中有句信条就是:用户永远是愚蠢的。要解决该偏见并非易事,当年Fred Brooks就在《人月神话》中写下诸多笔墨。有部电影叫《巴别塔》,深刻描述了误解带来的灾难性后果。程序员关注的是解决问题的策略,而用户则对此丝毫没有兴趣 - 他们只关心用户界面。所以与其拍脑袋想象用户的行为,而不如直接观察之,或者单刀直入 - 询问用户。并且记住:

  1. 千万不要打断他们;
  2. 用户所说的或许压根儿就不是心里真正所想的。

有时,大量的帮助文档体现的并非是软件设计得多么完备,而是恰恰表明它有多么难于使用。如果非要不可,请合理安排帮助的位置,或者使用Tool Tips.

读书

February 27th, 2010 by live4thee

最近手边有几本好书可读,刚读了几页《97 Things Every Programmer Should Know》,看了两篇,分别关于 Technical Debt 和 Functional Programming,一下激起不少共鸣。它们刚好涵盖了我的工作内容和业余兴趣 — 不知道是巧合还是冥冥中自有安排。

据说OO和FP就好比是阴阳,仔细思量一下,说的确实有点意思。

成电亲友团

February 25th, 2010 by live4thee

过年之前显得有点浮躁,一年的结尾时总想对自己有所交代。然而遍历林林总总,发现却活得有点蝇营狗苟,烦躁之情油然而生。作为一名奔三的80后,我们已经逐渐领教了一些生活中的残酷,但立志三十而立的我们也或多或少有一些理想和坚持,只是坚持已然渐渐脆弱,渐渐被现实和琐碎风蚀。

我得感谢婷姐对我的开导。我们其实都明白生活中的许多道理,之所以未能跳出纠结,应该是缺乏一些安慰和鼓励 — 人毕竟是感情的动物。我还记得05年底的某晚,胖总陪我绕闵行镇走了一圈,听我诉说恼人的心事;还记得某晚和康总跑步到金平路又跑回去,周末一直步行到东面滨江的一座公园。 我把现在还在上海的康总、老鄢、婷姐和我,以及我们的另一半统称为成电亲友团,这里洋溢着友情,而友情正是这个世界上最难能可贵的东西。

这些文字本来应该是年前写好的,在某次和婷姐gtalk之后。不过有时候往往越是觉得胸有千言,却又越无法写出只言片语。新的一年,我平复了心情。我祝福我们的团员们,并祝愿遥在枫叶之国的荣誉团长胖总阖家安康。

歧路亡羊

February 10th, 2010 by live4thee

一个月前,一位朋友问我究竟想做些什么(工作方面),我答不出来;两周后gk又问了同样的问题,我说还在思考。硕士毕业的时候老大邀我创业,我婉辞说先磨剑三年。如今三年之期将满,宝剑却远未铸成。想起《无间道》里梁朝伟的台词:“明明三年,三年后又三年,三年后又三年,差不多十年了,老大!”在各种主观、客观因素的影响下,理想不仅没有随着年岁的增长越来越近,反而渐渐消退了光芒。

本科毕业的时候,有同学留言说我很执着。我并未觉得不妥 — 在学生时代我还是比较能坚持理想的。理想和自由的相关度很高,工作意味着我已经不是一个自由人,而且没法不考虑经济因素。没有结婚之前,每周写两至三篇博客,婚后一个月五至六篇。鱼和熊掌不可兼得。

这几天找到了我几乎想去Amazon买的两本书:The Litter Schemer 和 The Seasoned Schemer,以及MIT的SICP课程视频。手边还有一些Scala相关的书籍和Berkeley的SICP课程视频,加上上午头儿给我的一本《Language Implementation Patterns》,有点歧路亡羊的感觉。