《黑客与画家》

先抄书:

P022:  大学里教给我的编程方法都是错的。你把整个程序想清楚的时间点,应该是在编写代码的同时,而不是在编写代码之前,这与作家、画家和建筑师的做法完全一样。

P025:  我们面试程序员的时候,主要关注的事情就是业余时间他们写了什么软件。因为如果你不爱一件事,你就不可能把它做得真正优秀,要是你很热爱编程,你就不可避免地会开发你自己的项目。

P029:  黑客就像是画家,工作起来是有心理周期的。有时候,你有了一个令人兴奋的新项目,你会愿意为它一天工作16个小时。等过了这一阵,你又会觉得百无聊赖,对所有事情都提不起兴趣。

P034:  流行的衣服其实是很难看的衣服;流行的道德观念,其实不是善而是恶。

P072:  Viaweb的开发者只有3个人。我一直在不停地招聘,压力很大,因为我们要把公司卖掉。我们很清楚的指导,买家不愿意花大价钱买下一个只有3个程序员的公司。(解决方法:雇更多的人,在公司内创设其他项目,让他们去做。)……《人月神话》一书所指出的,向一个项目增加人手,往往会拖慢项目进程。随着参与人数的增加,人与人之间需要需要的沟通呈现指数式增长。……幸运的是,这个过程的逆向也成立:人数越来越少,软件开发的效率将指数式增长。

P073-P085:  如果要说有什么缺点,就是由于开发人员比较少,每个程序员都必须承担一点儿系统管理的责任。当你在服务器上发布软件时,必须有人监控服务器……虽然我们总是安慰自己,公司运营很快就能走上正轨,一两个月后就能平稳发展,那时就可以雇一个专职的系统管理员让他专门负责服务器了,但是这个愿望一直没有实现。只要你还很活跃地开发产品,就免不了要亲自做系统管理,我认为没有其他可能。一个严重的bug影响的可能不是一个用户,而是所有用户。……桌面软件迫使用户变成系统管理员,互联网软件则是迫使程序员变成系统管理员:用户压力变小了,程序员的压力变大了。

P087:  管理企业其实很简单,只要记住两点就可以了:做出用户喜欢的产品,保证开支小于收入。

P102:  小团队的优势不在于它本身的小,而在于你可以选择成员。我们不需要小村庄的那种“小“,而需要全明星第一阵容的那种“小”。

P103:  我们故意选择那些很困难的技术问题。假定软件有连个候选的新功能,他们创造的商业价值完全相同,那么我们总是选择比较困难的那个功能。不是因为这个功能能带来更多的收入,而是因为它比较难。……因为那些问题连我们都觉得这么困难,那么竞争对手就更会认为是不可能解决的。

P121:  波音747飞机驾驶员的收入大概是商场收银员的40倍,但是前者不是贵族,后者也不是奴隶,这种收入差距只是因为前者的技能比后者要值钱的多。

P209:  新技术被市场接纳的方式有两种,一种是自然成长式,另一种是大爆炸式。自然成长的一个例子就是在车库里白手起家、自力更生的创业者……大爆炸的例子是有风险资本支持,在市场上大张旗鼓宣传的创业公司……一般来说,车库里的创业者会妒忌大爆炸式的创业公司。后者的主导人物个个光彩照人……他们什么都买得起……但是我想他们不必难过。最终来看,自然成长式会比大爆炸式产生更好的技术,能为创始人带来更多的财富。

P218:  士气也可以解释为什么很难为低端用户设计出优秀产品。因为优秀设计的提前是你自己必须喜欢这种产品,否则你不可能对设计有兴趣,更不要说士气高昂了。为了把产品设计好,你必须对自己说:“哇,这个产品太棒了,我一定要设计好!”而不是心想:“这种垃圾玩意,只有傻瓜才会喜欢,随便设计一下就行了。”

最近读书太慢,薄薄的一本书花了太多时间,当然该书精彩语句较多,全书基本靠谱。除了某个部分(具体找不到了)用哥白尼或者是伽利略的例子证明被迫害与真理表示怀疑,因为有其他书说他是因为人品太差没事就找上门找教会的茬,才被处理掉的,而不是因为日心说与教会理念的冲突,更不是因为维护真理而迫害。似乎是《量子物理史话》里讲的。

还有不得不说的就是关于已经被作者完全的神话Lisp。虽然作者不希望Lisp被认为就是一堆括号,虽然我也承认Lisp是一种强大的语言,但它不仅是一堆括号,而且是一堆并不容易招人待见的括号。当然学习Lisp的倒也并非一无是处,至少以后不管遇到什么语言都能在Lisp里找到原型。对于我最初耗费在Lisp(噢,当然,是一种Lisp的方言)的时间,我仍然持怀疑态度。 无论如何,Lisp依然没有被这个时代选择,《黑客与画家》中洋洋洒洒的关于Lisp的几十页,让近5000人(印数1-5000册)为之怦然心动,只是并不能证明Lisp会统治世界,而倒是证明了CEO都是很能忽悠很有感染力的。(据说往正面想,才会带给自己更积极的影响$_$)

hackers_painters

 

Leave a Reply

Your email address will not be published. Required fields are marked *