找回密码
 FreeOZ用户注册
查看: 2791|回复: 4
打印 上一主题 下一主题

[其他] 《Joel on Software》

[复制链接]
跳转到指定楼层
1#
发表于 27-10-2008 19:34:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
FROM: http://www.ruanyifeng.com/blog/2 ... el_on_software.html

                                                         简单说,Joel on Software是一个Blog,在全世界程序员中很有名。
                           
                                                         几年前,我就开始订阅,并且翻译过作者Joel Spolsky(乔尔·斯波尔斯基)的《在耶鲁大学的演讲》()。

                               
登录/注册后可看大图

上个月,人民邮电出版社下属的图灵公司写信问我,是否愿意翻译他的精华文章结集More Joel on Software
我立刻答应下来。世界上有些东西,你是巴不得自己的名字与它联系在一起的。所以,如果一切顺利的话,明年春天,这本书的中文版就会上市。

                               
登录/注册后可看大图

说实话,我是不该接这本书的。因为我的事情本来就多得做不完,每周都觉得睡眠不足。现在又多出这样一件事,时间就更紧张了。不过,既然接了,那就只有挤时间拼命做了。
对我来说,这件事的难点有两个:
1)虽然我会一些编程,但是总的来说,我在技术上是外行,翻译这样一本程序员的专业读物有技术上的难度。
2)Joel在文章大量使用口语、俚语和双关语,很难翻译得贴切。

对于第一点,由于Joel的文章更像是对软件业的整体思考,而且面向新手,通常不涉及技术细节,所以问题还不大。我比较头痛的是第二点。举例来说,Joel的这本书有一个近乎戏谑的副书名:
Further Thoughts on Diverse and Occasionally Related Matters ThatWill Prove of Interest to Software Developers, Designers, and Managers,and to Those Who, Whether by Good Fortune or Ill Luck, Work with Themin Some Capacity

怎么译?……
我差不多花了二十分钟琢磨,最后才勉强译出来:
程序员、软件设计师、软件经理、以及其他有幸或不幸与软件打交道的人员,感兴趣的各种相关内容

我对这个翻译依然不满意,觉得有意思漏掉了。如果你有更好的翻译,欢迎指教。
下面是该书的前页和作者简介。
====================
前言:JOEL,APRESS[1],网络日志[2]和网志书
作者:加里·科内尔(Gary Cornell,Apress出版公司创始人之一)
译者:阮一峰
“很久以前,在一个很遥远、很遥远的星系中,……”[3]好吧,实际上,那是在2000年接近年底的时候,也就是Apress出版公司运作的第一个完整年度。当时,我们只是一家非常小的计算机书籍出版商,毫无名气。那一年,我们计划出版的书籍只有很少几本,大概只相当Apress现在一个月的出版量。
那时,我苦苦学习如何成为一个出版商,可能花费了过分多的时间,忙于浏览网站和编写程序。有一天,我偶然来到了一个叫做“Joel谈软件”(Joel onSoftware)的网站,发现网站的主人是一个观点鲜明的家伙,他的写作风格有点不寻常,很聪明并且还有意挑战一些传统观念。最特别的是,那时他正在写一组系列文章,内容关于大多数软件的用户界面(userinterface)是多么糟糕。总的来说,这主要因为程序员们对用户的实际需求几乎毫无所知——用Joel和我经常使用的话说,这叫做“bupkis”(接近没有),这是一句来源于意第绪语[4]的纽约土话。我同许多其他人一样,被Joel的这组系列文章以及其他几篇随笔吸引住了。
然后,我就冒出了一个想法:我是出版商,我喜欢读他的文章,那么为什么不出书呢?我给Joel写信,自我介绍了一番。虽然他起初有些怀疑,但是我不知怎地就说服他相信,如果他将那组用户界面的系列文章写成一本书,会有很多人购买,我和他都会赚到很多钱。(当然,那是发生在很久以前的事情,那时FogBugz[5]还没有变得像今天这样成功,Joel也还不是一个令人羡慕的收入颇丰的演讲者。不过,那时我们都比现在年轻,并且正如你想的那样,比现在穷得多。)
闲话少说,Joel后来又为新书加入一些新内容,使得它更具吸引力,我觉得也更有销路了。突然之间,Apress就必须考虑,如何出版它的第一本全彩书籍了。User Interface Design for Programmers(《程序员之用户界面设计》)正式出版是在2001年6月21日。现在,它被公认为有史以来第一本“网志书”(blook)[6]。令计算机图书行业和我本人有点震惊的是,按照当代的标准,它竟然成了一本很大的畅销书。顺便说一句,直到今天,它仍然在被印刷,仍然卖得非常好,仍然值得一读。(不过,作为Joel的出版商,而不是作为朋友,我想说,你是不是该考虑出个修订版了?)
不过,还是有人出来说,User Interface Design for Programmers并不是一本纯粹的“网志书”,因为加入了“太多的”网站上没有的新内容,使得这本书看上去更像一个混合体——我的看法是,这正同它的先锋地位相适合。
短短几年之后,“Joel谈软件”成了全世界程序员中最著名的Blog,原因当然是Joel一直不停地写作那些非常有趣的文章。其中最著名的,大概是那篇经典文章《微软公司如何在API战争中失利》(How Microsoft Lost the APIWar)。据我所知,这篇文章着实把微软的开发部门折腾地够呛。
这样,我就有了另一个想法:让我们将Joel最好的那些文章收集起来,再出一本书,不做大的变动,除了加上一篇字数很少的前言,只要Joel觉得合适就可以。这样一本书的名字就叫做《Joel谈软件》(Joel onSoftware)。即使书中98%的内容都能在互联网上找到,即使人们认定Apress出版这样一本书一定是疯了,它还是在2004年底出版了,并且后来印刷了10次,今天依然是一本畅销书。
原因看上去是,这就好比有些糖果是好吃的巧克力糖果,你要细细品尝才行。Joel的文章通常就是这一类,对许多人来说,印刷版读起来比浏览器舒服多了。
但是,Joel并没有因此停下来,他依然在努力思索如何才能更好地编程,或者怎样雇用优秀的程序员,他也没有停止用自己的观点挑战传统看法。所以,我说服他,现在可以出一本续集,收录2004年底上一本书出版之后的那些“Joel的精华文章”。
结果就是你现在拿在手里的这本书,它是收集Joel的观点、随感、以及偶尔的夸夸其谈的第二本集子。所有这些都浓缩在Joel那知名的具有吸引力的文体中。除了少量的编辑加工,原文几乎毫无变动,但是同显示器屏幕或者Kindle阅读器[7]相比,你确实以一种非常不同的形式拥有了最新的“Joel的精华文章”,现在这被称为“网志书”。(我要对Joel说,我很希望你像钟意第一本集子里那些文章那样,钟意这本集子里的文章。)
这本书同第一本一样,有一个稍许不寻常的封面和副标题。这是因为Joel和我都是藏书爱好者(好吧,Joel才是藏书爱好者,我是藏书狂人)。17世纪和18世纪那些经典著作的印刷商,为了让他们的书变得生动,往往会做一些特别的设计,我们两个都非常喜欢这一类东西。在第一本《Joel谈软件》的封面上,我们向伯顿(Burton)的《忧郁的剖析》[8](Anatomy ofMelancholy)致敬;这一本的封面上,我们向霍布斯(Hobbes)的《利维坦》[9](TheLeviathan)致敬,它的封面很著名,一个巨人由许多个小小的个人组成。Joel和我都感到这个隐喻很不错,可以暗示编程是如何工作的:宏伟的整体由个体组成,并且个体是关键。
最后,是一点很个人化的说明:尽管现在名气很大,Joel依然是一个很朴实的人,或者再一次用我们共同的土话说,是一个真正的“mensch”(好人)。我非常骄傲,我有这样一个好朋友。
注解:
[1] Apress, Inc.是一家计算机书籍的出版商,总部在加州的伯克利(Berkeley)。——译者注(除非另有说明,本书中所有注解都为译者所加,下文不再一一注明。)
[2] 本书中“blog”一词统一译为“网络日志”或“网志”。
[3] 原文为“A long time ago in a galaxy far, far away . . .”,这是美国经典科幻电影《星球大战》(Star Wars)的片
首字幕。上个世纪六七十年代出生的美国人,几乎人人耳熟能详。
[4] 意第绪语(Yiddish)是犹太人的民族语言,本书作者Joel Spolsky(乔尔·斯波尔斯基)就是犹太人。
[5] Fogbugz是Joel后来创业时的一个商业软件作品。
[6] “网志书”(blook)是一个上个世纪90年代出现的新词,词源为bl(og)+(b)ook,意即从网络日志的文章中编辑而成的书籍。
[7] Kindle阅读器是Amazon网上书店于2007年底推出的一种手持电子阅读设备。
[8] 罗伯特·伯顿(Robert Burton, 1577~1640)是17世纪英国的著名学者,他的代表作《忧郁的解剖》(The Anatomy of Melancholy)出版于1621年,表面上是一本心理医学的教科书,但是实际上是英国文学的经典作品。
[9] 托马斯·霍布斯(Thomas Hobbes, 1588-1679)是17世纪英国的著名政治学家和哲学家,他的代表作《利维坦》(The Leviathan)出版于1651年,从哲学上讨论国家的起源、性质和作用,是古典学术名著。
====================
作者简介
JoelSpolsky(乔尔·斯波尔斯基)是一个世界闻名的软件开发流程专家。他的网站“Joel谈软件”(www.joelonsoftware.com)在全世界程序员中非常流行,被译成了30多种语言。作为纽约的Fog CreekSoftware公司的创始人,他开发了FogBugz软件,这是一个在软件开发团队中非常流行的项目管理系统。Joel曾经在微软公司工作,是Excel开发团队的一员,他设计了VBA(Excel的宏语言)。他还曾在Juno OnlineServices公司工作,开发了几百万用户使用的互联网客户端。他已经出版了三本书:User Interface Design for Programmers(《程序员之用户界面设计》,Apress, 2001),《Joel谈软件》(Joel on Software, Apress, 2004),以及Smart and Gets Things Done(《巧妙完成工作》,Apress, 2007)。他还是The Best Software WritingI(《最佳软件文选(第一辑)》,Apress, 2005)的编辑。Joel从耶鲁大学获得计算机科学本科学位。他曾在以色列国防军(IsraeliDefense Forces)中服伞兵役,并且是以色列哈纳顿集体农场(Kibbutz Hanaton)的共同创始人之一。
(完)
回复  

使用道具 举报

2#
 楼主| 发表于 27-10-2008 19:38:00 | 只看该作者

Joel Spolsky在耶鲁大学的演讲(上)

Joel Spolsky在耶鲁大学的演讲(上)                            阮一峰  发表于 2007年12月12日 | 分类:首页 -> 档案 -> 创业                        

                                                                                 
Joel Spolsky是一个美国的软件工程师,他的网络日志“Joel谈软件”(Joel on Software)非常有名,读者人数可以排进全世界前100名。
                           
                                                         上个月28号,他回到母校耶鲁大学,与计算机系的学生座谈。他发表了一个演讲,回顾自己的人生经历,并总结了一些个人的体会。
我读完他的演讲稿,很受触动,觉得他的人生体会非常具有启示性。这篇演讲非常长,分为三个部分()。我没有时间全文翻译,就摘录一些精彩的段落,一共有四段。
大学里最有用的课程
Joel说,他在大学里上过的最有用的课,是一门他只上了一回,然后就再也没有去过的课。
由于父母都是大学教授,亲戚朋友都是学术界里的,大多有博士学位,所以Joel从小就认定自己也会去读博士,将来搞学术。可是,有一门课程改变了他的想法,使他最终没有去报考研究生院。
这门课程叫做“动态逻辑”(Dynamic Logic)。在第一堂课上,教授证明了一个命题。假定有一个程序“f := not f,”f是表示真假的逻辑值,那么结论是程序运行偶数次后,f的值保持不变。整个证明过程非常冗长,要花几个小时讲解,一共有几十步。课后习题则是,证明如果f值保持不变,那么程序必然运行了偶数次。
课后,Joel花了很多时间做题,还去图书馆借来了参考书。但是,他逐渐感到这样做没有意义:用大量琐碎的、容易出错的步骤,去证明一个凭直觉就能认定成立的命题,这不是一个富有实效的工作方法。在Joel看来,计算机更应该用来解决错误,而不是让人们陷入逻辑的陷阱,去产生错误。(Idecided that this Dynamic Logic stuff was really not a fruitful way ofproving things about actual, interesting computer programs, becauseyou’re more likely to make a mistake in the proof than you are to makea mistake in your ownintuition.)通过这件事,他认识到,自己不适合做纯思辨性的学术研究。因此,他就退掉了这门课,并且以后也没有选择去上研究生院。
Joel认为,就是这门只上了一次的课,恰恰成为了他在大学中上过的最有用的课,因为它帮助他选择了正确的人生道路。
所以,Joel的第一个结论是:人生中重要的是,关注那些真正的问题(real problem),不要陷入那些细枝末节的问题(trivial problem)。就像苏格拉底说的,“认识你自己”。
此外,Joel说,还有一门叫做CS 323的课,也很有用。这门课有大量的课后习题,都是关于编程的,平均每星期要花40个小时来做题。
Joel发现他能够做出大部分的题目,更重要的是,他发现自己喜欢做这些题。这样一来,他就明白自己是适合编程的。另一方面,很多其他学生对这门课感到无比头疼,觉得编程既枯燥又痛苦,每周40小时做这种题简直是一种刑罚。这些人于是明白,虽然同样是计算机系的学生,但是他们并不适合编程。这是一件好事,因为这样他们就避免了以后选择错误的职业。否则,让一个不喜欢编程的人,一生都与程序打交道,这是多么悲惨的一件事啊!
在Viacom的日子
毕业以后,Joel先在微软公司干了一段日子,然后回到纽约,进入维亚康母公司(Viacom),为这家巨型的娱乐传播公司编写软件,成为IT部门里一个程序员(in-house programmer)。
后来,Joel回忆起来,认为这是他一生中最痛苦的日子,并且劝告计算机系的学生尽可能不要去做“in-house programmer”。
原因有三个。
首先,你永远没有办法正确地编写软件,你不得不用最方便的方法编写软件。因为软件支出非常高昂,所以公司会要求尽可能节省成本,你不可能试用新技术,只能使用现有的最成熟、最保守的技术。
其次,你没有办法将一个项目做到尽善尽美。一旦程序可以正常运行,你的工作也就结束了,可以接下去干公司的下一个项目了。你的作用是解决问题,而不是将软件写得尽可能好。如果你是在一个专业的技术性公司,比如Google或Facebook,情况就完全不一样,你的软件写得越好,公司就会越成功,所以公司会支持你在一个项目上不断做下去。
最后,传统公司IT部门里的程序员,只属于公司内部的维护人员,而不是直接从事核心业务的人员。因此,你永远办法进入管理层。但是,在技术性公司,程序员会变成CEO。

因为这三个原因,Joel觉得in-houseprogrammer不是一个好的职业,不幸的是,80%的程序员属于这一类,年复一年,很多人的生命就是这样被耗干的。(it’sfrightening because this is what probably 80% of programming jobs arelike, and if you’re not very, very careful when you graduate, you mightfind yourself working on in-house software, by accident, and let metell you, it can drain the life out of you.)
Joel的第二个结论是:选择职业时,不要只考虑职位是否专业对口,应该尽量选择业务方向与你专业相同的公司。
(未完待续)
回复  

使用道具 举报

3#
 楼主| 发表于 27-10-2008 19:38:33 | 只看该作者

Joel Spolsky在耶鲁大学的演讲(下)

(接着昨天的内容,继续讲Joel的故事。)
                           
                                                         虽然,维亚康母公司(Viacom)口头表示很重视互联网,但是,分配给程序员的工作间,总是很小的屋子,光线黯淡,而且还用搁板分割出小间,供三个人使用。经理们各自的办公室则完全不同,都有大玻璃窗,可以俯视哈德逊河。
在一次公司内部的圣诞晚会上,Joel见到了负责互联网战略的执行董事。Joel问他,公司打算怎么使用互联网,后者只是泛泛地说,互联网很重要,这是未来的发展方向。Joel感到很失望,他相信这个执行董事其实对互联网毫无认识,只不过是人云亦云。说到底,这个董事对这一切可能根本无所谓,反正他每年都有200万美元的年薪,保持现状就是最好。对他来说,Joel就是一个打字员似的“写网页的人”,Joel做了什么和工作中的付出,他并不关心。(It convinced me that he had no flipping idea whatsoever what it wasthat was happening and what the internet meant or what I did as aprogrammer, and he was a little bit scared of it all, but who cares,because he’s making 2 million dollars a year and I’m just a typist or“HTML operator” or whatever it is that I did, how hard can it be, histeenage daughter can do that.)
所以,Joel决定辞职了。
管理人员的作用
离开维亚康母以后,Joel进了一家叫做Juno Online Services的互联网公司,这家公司提供网上免费电子邮件服务。那个时候是90年代中期,hotmail和gmail都还没有成立。
作为程序员,Joel在这里工作得很愉快,但是公司本身的经营却不成功。虽然是一家互联网公司,但是,Juno OnlineServices完全采用传统的“从上至下”的管理方式,就是领导想出来一个主意,然后命令程序员负责实现,结果就是对技术细节一无所知的人,决定了一切。
这同硅谷的方式完全不同,在那里,管理人员只负责创造一个良好的工作环境,然后让真正的聪明人把东西做出来。(What I was usedto from the west coast was an attitude that management is just anannoying, mundane chore someone has to do so that the smart people canget their work done.)硅谷公司内部的运作更像大学里的学术讨论会,会议主席的作用只是主持会议而已。
Joel的第三个结论是,公司管理层的作用就是搬动家具、清理出空间,让有才华的研究人员做出一流产品。(Managersexist to get furniture out of the way so the real talent can dobrilliant work.)
Juno Online Services经营得不成功,以及对员工才华的不尊重,使得Joel在2000年下定决心,不再为别人打工了,开始创业。
表达能力的重要性
在创业之初,Joel并不知道该去做什么。他看到许多很蠢的人,拿着很蠢的商业计划,开办互联网公司。他想,这样的公司都能开出来,那么我也能开公司,只要我比他们少蠢10%就可以了,我要按照我的想法来管理,对每一个程序员都给予最大的尊重,那样就有机会做出高质量的产品。我们不关心风险资本家怎么说,也没有高高在上的领导,我们只关心客户的感受,用软件解决客户的问题,从而获得报酬,生存下去。(In those days, I wasseeing lots of really dumb people with really dumb business plansmaking internet companies, and I thought, hey, if I can be, say, 10%less dumb than them, that should be easy, maybe I can make a companytoo, and in my company, we’d do things right for a change.) We’d treatprogrammers with respect, we’d make high quality products, we wouldn’ttake any shit from VCs or 24-year-olds playing President, we’d careabout our customers and solve their problems when they called, insteadof blaming everything on Microsoft, and we’d let our customers decidewhether or not to pay us.)
在这种想法的鼓励下,Joel创办了Fog Creek软件公司。
从创业之初,Joel就开始将自己的想法和遇到的事情,写成文章,发表在互联网上。当时还没有Blog这种东西,但是他其实已经在写了。Joel慢慢发现,他的文章真的有人看,并且读者越来越多,其中很多人最终都接受了他的想法。实际上,Joel写的很多东西都不是原创性的,其中还时不时包括一些笑话,但是读者不在乎,“Joel谈软件”成了一个热门网站,平均每篇文章都有几十万、甚至上百万的读者。
这对Joel的创业帮助极大,Fog Creek本来是一家无名的小软件公司,但是由于很多人读Joel的文章,因此他们也了解并且相信Joel的公司。这使得Fog Creek从创业的第一年起就是盈利的,并且每年都在发展。
Joel将创业的成功,部分归功于他在大学里受过的写作训练,那时有一个教授每周都要布置写论文,并且对平庸的文章恨之入骨,不给学分。这使得Joel学会了将复杂的话题说得清晰易懂,并且引人入胜。
因此,Joel的第四个结论是,一个普通工作人员和一个领袖之间的差别,就是有没有良好的表达能力。(Beingable to write clearly on technical topics is the difference betweenbeing a grunt individual contributor programmer and being a leader.)
(完)
回复  

使用道具 举报

4#
发表于 28-10-2008 13:54:01 | 只看该作者
Good guy

His recently product is StackOverflow

stack overflow is not core dump
回复  

使用道具 举报

5#
 楼主| 发表于 29-10-2008 00:01:50 | 只看该作者

回复 #4 yuba 的帖子

回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 4-8-2026 20:08 , Processed in 0.018208 second(s), 21 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表