2010-03-28

随想

信念这个东西其实是很容易动摇的,特别是在金钱面前。想当年我还是有机会回到OTC的,去专研一些我喜欢的东西,不过还是没有去主动把握机会,没有去为了信念而奋斗。我得承认主要原因是前一天我已经得到一份工作,并且在金钱待遇上稍微优厚一点。信念有时候只是失败者的托辞,在黯淡的现实面前给自己编织的光环,用以掩盖灰白的脸。

多数程序员还是比较求知的,所以他们不断学习新语言,试着不同的Linux发行版,偶尔愿意使用一些新软件。只有少数人沿着自己已有的道路一门心思专研下去。我稍微研究了一下自己的行为后发现有一个观点可以解释这种现象:人们容易喜新厌旧,并且容易满足于低层的喜悦感。比如我自己,对学习一门新程序语言往往有极大的热情,但知道了皮毛之后往往就很难深究下去。因研究框架、算法从而获得深层喜悦往往难于学习一些基本的语法表象。

前些日子在和菜头的微博上看见一句话:Experience without learning is better than learning without experience. 精彩,正中要害。

标签:

2010-03-21

瘦人的痛苦

瘦的人在生活中有许多痛苦,比如:看见满大街的健身广告时容易对体型产生自卑。还有,就算号称对着装有多考究、品位,也只能望而兴叹,因为大部分时候我们只能穿些横条衫而已。相当枯燥。

瘦的人其实还有另一个隐秘的困扰,那就是踩脚踏船。因为pp上没什么肉作为缓冲,踩船的时候尾巴处的骨头会蹭着硬邦邦的座位。疼呐!

标签:

共青森林公园

难得周末不下雨,LP带我去了森林公园。她们组曾有几次在那边TB,我没想到的是它居然离我如此之近 -- 步行也就半小时。面积很大,绿化还算比较自然,据说里面还可以烧烤,这让我想到了成都的塔子山公园。

牵着LP的手,慢慢的走。里面有很多拍婚纱照的男女,租了公园的小游览车,偶尔在身边穿梭而过。青青的草地,紫色的野花,让我颇有回归自然的感觉。我想象着自己躺在花草中,闻着泥土的气息,让斑驳的阳光穿过微风中摇曳的树木暖暖地洒在脸上。

图见Flicker

标签:

2010-03-10

dream


  • 曾经有梦
    大多数程序员都像谱写一段传奇,至少曾经想过。大二时立下的梦想是成为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#)。

标签:

2010-03-02

读书 - 2 - False Consensus Bias

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

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

  1. 千万不要打断他们;

  2. 用户所说的或许压根儿就不是心里真正所想的。


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

标签: ,