正确的提示信息

扫码打开虎嗅APP

从思考到创造
打开APP
搜索历史
删除
完成
全部删除
热搜词
2012-05-03 10:07

一部关于软件技术、人才、创业和企业管理的随想文集,读《软件随想录》

序言 Joel、Apress 、网志 和网志书 

“很久以前,在一个很遥远、很遥远的星系中,……” 好吧,实际上没有那么久啦,那是在2000年接近年底的时候,Apress出版公司正式运营刚满一年。当时,我们只是一家非常小的计算机书籍出版商,毫无名气。那一年,我们计划出版的书籍只有很少几本,大概只相当于Apress现在一个月的出版量。

那时,我苦苦学习如何成为一个出版商,可能花费了过多的时间,忙于浏览网站和编写程序。有一天,我偶然来到了一个叫做“Joel谈软件”(Joel on Software)的网站,发现网站的主人是一个观点鲜明的家伙,他的写作风格有点不寻常,很聪明并且还有意挑战一些传统观念。最特别的是,那时他正在写一组系列文章,批评大多数软件的用户界面是多么糟糕。总的来说,这主要是因为程序员们对用户的实际需求几乎毫无所知——用Joel和我经常使用的话说,这叫做“bupkis”(近乎没有),这是一句来源于意第绪语 的纽约土话。我同许多其他人一样,被Joel的这组系列文章以及其他几篇随笔吸引住了。 

然后,我就冒出了一个想法:我是出版商,我喜欢读他的文章,那么为什么不出书呢?我给Joel写信,自我介绍了一番。虽然他起初有些怀疑,但是我不知怎地就说服他相信,如果他将那组用户界面的系列文章写成一本书,会有很多人购买,我和他都会赚到很多钱。(当然,那是发生在很久以前的事情,那时FogBugz 还没有变得像今天这样成功,Joel也还不是一个令人羡慕的收入颇丰的演讲者。不过,那时我们都比现在年轻,并且正如你想的那样,比现在穷得多。) 
闲话少说,Joel后来又为新书加入一些新内容,使得它更具吸引力,我觉得也更有销路了。突然之间,Apress就必须考虑如何出版它的第一本全彩书籍了。User Interface Design for Programmers(《面向程序员的用户界面设计》)正式出版是在2001年6月21日。现在,它被公认为有史以来第一本“网志书”(blook) 。令计算机图书行业和我本人有些震惊的是,按照当时的畅销标准,它竟然成了一本很优秀的畅销书。顺便说一句,直到今天,它仍然在不断重印,仍然卖得非常好,仍然值得一读。(不过,作为Joel的出版商,而不是作为朋友,我想对他说:你是不是该考虑出个修订版了?).. 

不过,还是有人出来说,User Interface Design for Programmers并不是一本纯粹的“网志书”,因为加入了“太多的”网站上没有的新内容,使得这本书看上去更像一个混合体——我的看法是,这正同它的先锋地位相适合。 
短短几年之后,“Joel谈软件”成了全世界程序员中最著名的网志,原因当然是Joel一直不停地写作那些非常有趣的文章。其中最著名的大概是那篇经典文章《微软公司如何在API战争中失利》(How Microsoft Lost the API War)。据我所知,这篇文章着实把微软的开发部门折腾得够呛。 

这样,我就有了另一个想法:将Joel最好的那些文章收集起来,再出一本书,不做大的变动,除了加上一篇字数很少的前言,只要Joel觉得合适就可以。这样一本书的名字就叫做《Joel谈软件》(Joel on Software)。即使书中98%的内容都能在互联网上找到,即使人们认定Apress出版这样一本书一定是疯了,它还是在2004年底出版了。今天,这本书已经印刷了10次,而且依然是一本畅销书。 

为什么呢?人们的阅读习惯并没有改变,在像品尝美味的巧克力糖果一样品味Joel的文章时,很多人仍然习惯于看书而不是看浏览器。 

但是,Joel并没有因此停下来,他依然在努力思索如何才能更好地编程,或者怎样招聘到优秀的程序员,他也没有停止用自己的观点挑战传统看法。所以,我说服他,现在可以出一本续集,收录2004年底上一本书出版之后的那些“Joel的精华文章”。 
结果就是你现在手里拿的这第二本文集,Joel的观点、随感以及偶尔的夸夸其谈都浓缩在了他才华横溢的文章之中。除了少量的编辑加工,原文几乎毫无变动,但是同显示器屏幕或者Kindle阅读器 相比,你确实以一种非常不同的形式拥有了最新的“Joel的精华文章”,现在这被称为“网志书”。(我要对Joel说,我很希望你像中意第一本集子里那些文章那样,中意这本集子里的文章。) 

这本书同第一本一样,有着不同寻常的封面和副标题。这是因为Joel和我都是藏书爱好者(好吧,Joel才是藏书爱好者,我是藏书狂人)。17世纪和18世纪那些经典著作的印刷商,为了让他们的书变得生动,往往会做一些特别的设计,我们两人都非常喜欢这一类东西。在第一本《Joel谈软件》的封面上,我们向伯顿(Burton)的《忧郁的剖析》 (Anatomy of Melancholy)致敬;这一本的封面上,我们向霍布斯(Hobbes)的《利维坦》 (The Leviathan)致敬,它的封面很著名,一个巨人由许多个小人组成。Joel和我都感到这个隐喻很不错,可以暗示程序是如何编写完成的:宏伟的整体由个体组成,并且个体是关键。 
最后,是一点很个人化的说明:尽管现在Joel的名气很大,但他依然是一个很朴实的人,或者再一次用我们共同的土话说,是一个真正的“mensch”(好人)。我非常骄傲,我有这样一个好朋友。
  Gary Cornell 
  Apress出版公司创始人
个人视角终有局限,如有非虚构类好书新书推荐,还望投稿或微博私信@潘乱兄


美国软件和菜头——《软件随想录》读后感



文/庄表伟 (豆瓣网友)
一口气读完了《软件随想录》(More Joel on Software)。我的总体评价是,Joel非常像和菜头,无论是从褒义的角度,还是从贬义的角度。 
和菜头是国内最好的blogger之一,他的嬉笑怒骂的文风,受到了无数人的喜爱,包括我在内。很多时候,和菜头都能以我们没法想象的文字,说出我们早就想说的话来。拥趸众多,也就是自然而然事情了。 
 
Joel Spolsky大概是全世界都非常著名的blogger,他的读者人数,估计可以排进全世界前100名。文章之优美,观点之火爆,真是几乎无出其右者,读他的书,实在是过瘾之极。 
 
但是(各位应该也猜到了,总会有一个但是等在这里的。)我在读《软件随想录》的过程中,时不时的会有一些疙疙瘩瘩的感觉,细细想来,才发现,还是跟和菜头很像。 
 
举几个例子吧: 
 
1、在管理方法方面,joel一连写了三篇,分别讨论了《军事化管理法》、《经济利于驱动法》和《认同法》。写得非常好,但是也相当偏激。基本上,joel对于人的看法,是静态的,好人就是好人,聪明人就是聪明,最难的不过是招人,只要找对了人,聘进来以后,他自然就会好好干活。基本上,一个好的管理者,就是懂得如何不碍事的管理者。 
 
joel说:采用经济利益驱动法,这样就是在鼓励程序员与制度博弈。但是,问题是一个公司一定会有制度,也一定得建立公平公开合理的制度。而且,员工与制度的博弈,也一定会存在。为了预防博弈的出现,而不订立奖惩制度,实在是偏激的过分的一种想法。 
 
joel说:不能通过给员工发钱来训练他们。但是,这完全就是故意曲解,因为你完全可以训练他们,然后通过金钱来鼓励训练效果好的员工。 
 
joel说:你应该避免用外部激励取代内部激励。但是,在我看来,仅仅只有内部激励,那也很虚伪。简直就是典型的“老板的虚伪”。 
 
一个员工进入一家公司,并非到此为止,他们应该能够在公司的环境里得到成长。如何鼓励他们成长,如何帮助他们成长,是老板需要考虑的问题。另一方面,并非任何人进入一家公司,就万事大吉,他同样可能出现波动,有时候干劲冲天,有时候没精打采,如何调整他们的工作状态,如何鼓励他们持续的积极工作,也是老板需要考虑问题。 
 
joel认为,软件开发,最缺的是天才。而我认为,最缺的是全才。什么“全”:全面、全局、全心全意、全力以赴。 
 
2、在给程序员的建议方面,我又发现了一些自相矛盾的地方。 
 
joel说:大学教java是一种退步,因为那东西太简单了,无法淘汰那些没兴趣编程或没能力编程的人。但是,在另一篇文章里,joel又说:那门动态逻辑课他只去听了一节,太难了,所以,他决定不上了。而且,他还得出了一个重要的结论:人生中重要的是,关注那些真正的问题(real problem),不要陷入那些细枝末节的问题(trivial problem)。就像苏格拉底说的,“认识你自己”。 
 
这可真是了不起,他能够通过的课程,他就认为非常有用。而他不能够通过的课程,他就认为是细枝末节的问题。而且,他还把自己的经验,用来告诫那些同学们。。。 
 
3、joel对于单元测试与TDD的看法,完全就是未经实践的偏见。 
 
4、在《大构想的陷阱》中,joel评论了《梦断代码》一书,他花了不少时间,扯了一些眼睛的工作原理之类的淡,真正有价值的评论,其实并不多。在我看来,有价值的只有一个观点:过于创新性的软件,很难从开源志愿者那里得到帮助。 
 
5、在《用软件搭建社区》一节,我读着读着,就笑了。joel的那个社区,比起国内顶尖社区,还是差距很大啊。 
 
6、在讨论Office文件格式为什么那么复杂的时候,joel说到:一个能与Office竞争的,能够完美读写Office文件的软件,足足要有几千年的工作量等待着你去完成。我又笑了。。。也许,他从来没听说过OpenOffice,WPS,永中Office。。。 
 
7、说了那么多批评,其实,我还是非常喜欢joel的这本书的。尤其是在看到了《关于战略问题的通信之六》这一章,joel说到:在Google洋洋得意的时候,也许会有一家公司,开发出新的、革命性的Ajax类库,然后,有一家公司,发明了一个革命性的浏览器,使得原本非常复杂的Ajax类库,变得运行速度飞快。。。 
 
这篇写于2007年9月18日,2008年9月8日,Google Chrome 0.2版发布。现在,Chrome大概是运行JavaScript最快的浏览器。 
 
也许,就是受了joel的启发吧。 
 
8、《让错误的代码显而易见》,我也非常赞同,这是一种非常非常有价值的,给自己的代码命名的原则。 
 
9、《揉一揉,搓一搓》,其实就是一次大型系统重构的过程,当然,在我看来,仅仅凭借开发者的经验,确保没有改坏代码,是不够的,如果joel当初能够写足够多的UnitTest,重构起来会更加轻松一些。 
 
总的来说,joel是一个追求语不惊人死不休的blogger,但是他的绝大多数文章,都非常有价值,也非常有阅读快感,因此,强烈建议找一本来读一读。
如对本稿件有异议或投诉,请联系tougao@huxiu.com
打开虎嗅APP,查看全文

支持一下

赞赏

0人已赞赏

大 家 都 在 看

大 家 都 在 搜

好的内容,值得赞赏

您的赞赏金额会直接进入作者的虎嗅账号

    自定义
    支付: