所有程序员都应该至少读上两遍的十篇论文

翻译 2009年03月01日 02:57:00

by 图灵刘江(http://blog.csdn.net/turingbook)

 


【图灵新书推荐】C#与.NET 3.5高级程序设计(第4版)(C#圣经重临),jQuery实战(最佳jQuery著作)


 

今天(噢,应该是昨天了)图灵在北京搞了一次Ajax群英会,盛况空前。(会议实况下周整理一下,贴过来吧。)其间《Erlang程序设计》赵东炜说到读论文的重要性。我还附和说,其实许多名家在讲治学的时候都会讲到,要读自己领域里最经典的和最重要的论文。

 

很巧,刚才从Reddit上看到了题为“10 Papers Every Programmer Should Read (At Least Twice) ”的文章,打开链接一看,是我们《修改代码的艺术》一书的作者Michael Feathers写的。他的那本书被称为“近十年来最有影响的计算机图书”之一,可是在国内的关注并不太够,这是为什么呢?

 

言归正传,看看是哪10篇论文入了Feathers大师的法眼吧:

  1. On the criteria to be used in decomposing systems into modules – David Parnas
  2. A Note On Distributed Computing – Jim Waldo, Geoff Wyant, Ann Wollrath, Sam Kendall
  3. The Next 700 Programming Languages – P. J. Landin
  4. Can Programming Be Liberated from the von Neumann Style? – John Backus
  5. Reflections on Trusting Trust – Ken Thompson
  6. Lisp: Good News, Bad News, How to Win Big – Richard Gabriel
  7. An experimental evaluation of the assumption of independence in multiversion programming – John Knight and Nancy Leveson
  8. Arguments and Results – James Noble
  9. A Laboratory For Teaching Object-Oriented Thinking – Kent Beck, Ward Cunningham
  10. Programming as an Experience: the inspiration for Self – David Ungar, Randall B. Smith

这里面文章的作者大牛如云啊,图灵奖得主、IEEE和ACM的Fellow。当然,还有Beck和Cunningham这样的实干家(没有听说过?面壁十天。XP、设计模式、重构、JUnit甚至Wiki都是他们搞出来的啊。)

 


【图灵新书推荐】高速CMOS电路设计:Logical Effort方法(英文版)(图灵奖得主Sutherland著作)


 

Feathers的文章里还有这些论文的摘要,等有时间我把它们都翻译出来。

 

这里链接有的不能直接访问,因为它们都是学术杂志文章,不开放的。是不是因为这个,Reddit上最热的文章变成了http://portal.acm.org Should be free呢?

 


【图灵新书推荐】Flex 3权威指南(Adobe公司官方教材), 深入浅出Ext JS(互动网榜首图书)


 

Feathers的文章显然成了这几天网上的热门话题,我们另外一本已经获得版权的书《SOA Patterns》(Manning,2009)的作者Arnon Rotem-Gal-Oz受他启发,写了“所有架构师都应该至少读上两遍的十篇论文”

1. The Byzantine Generals Problem (1982) by Leslie Lamport, Robert Shostak and Marshall Pease
2. Go To statements considered harmfull (1968) - by Edsger W. Dijkstra
3. A Note on Distributed Computing (1994) - by Samuel C. Kendall, Jim Waldo, Ann Wollrath and Geoff Wyant
4. Big Ball of Mud (1999) - Brian Foote and Joseph Yoder
5. No Silver Bullet Essence and Accidents of Software Engineering (1987) - Frederick P. Brooks
6. The Open Closed Principle (1996) - Robert C. Martin (Uncle Bob)
7. IEEE1471-2000 A recommended practice for architectural description of software intensive systems (2000)
8. Harvest, Yield, and Scalable Tolerant Systems (1999) Armando Fox, Eric A. Brewer
9. An Introduction to Software Architecture (1993) - David Garlan and Mary Shaw
10. Who Needs an Architect? (2003) Martin Fowler

 

注意到了吗,其中的第3篇是Feathers也推荐的。

 


【图灵新书推荐】实用语义网:RDFS与OWL高效建模(英文版)Web数据挖掘:超文本数据的知识发现(英文版)


 

更有意思的是,我们大家熟悉的Robert Martin大叔 [也是我们图灵的作者呵呵,《敏捷软件开发》(C#版),什么,你搞.NET的居然没有读过?面壁十天。] 也因此写了blog。原来有位叫David的同学在Feathers的blog下说了几句不靠谱的话,把一向脾气很好的Bob大叔也激怒了。David小子说:“你咋不直接给出PDF呢?要是这些文章真的重要,应该免费读到不是?瞧你那口气,牛X得不行,真让人不爽。得了您吧。” 说实话,这口气咋让我觉得像是咱同胞呢……瀑布汗啊。

 

Bob大叔的回复发人深省。他说,你们知道这篇文章以及其中提到的论文有多重要吗?Feathers同学读了成百上千篇论文,然后向你介绍其中最好的10篇!人家把金砖放在你眼前,你却说太重了,我拿不动。笨蛋啊,蠢材啊!

 

他接着说:“我们是自食其力而且为自己的职业负责的技术人员呢,还是指望爹妈来擦屁股的小屁孩?是你,而不是别人,要为你自己的职业负责。你的老板可没有责任管这些。提升自己的职业水平不应该指望老板。你不能指望老板给你买书(如果他们真能这样当然好,但是这不是他们的义务)。老板不买,你自己买啊!老板没有责任教你学习新语言。如果他们能送你去培训当然好,但是如果他们不送,你要自己学啊!

 

“我非常忧虑,我们的福利文化已经制造出一大批喜欢哭兮兮娘娘腔的程序员,他们居然认为必须为有版权的文章花钱是不公平的。(什么?还要我出钱?那是老板的事儿!那是我老师的事儿!那是Michael Feathers的事儿!他们要想我成为好的程序员,可别指望我出钱去读那些文章,也别指望我在Google里搜索文章,他们最好到我的办公室格子里来,哦,上午9点到10点吧,一边轻捋我的头发,一边把文章读给我听!)

 

“请记住,这世界可不欠你的。老板也不欠你。Michael Feathers更不欠你。”

 

(沉思十分钟……)

 

 

对了,刚才发现,赵东炜同学已经在Erlang China网站推荐了这十篇文章。不过老赵没有说出处,这个可不太厚道啊,呵呵……

 

 

建议程序员都读一读的31篇论文系列笔记(1~2)

1. An Axiomatic Basis for Computer Programming. 1969年的一篇论文,主要讲用公理基础证明计算机编程的正确性,包括赋值/递推/组合/循环等。不是那么容易...
  • Simba888888
  • Simba888888
  • 2015年01月30日 14:10
  • 2412

所有程序员都应该至少读上两遍的十篇论文

今天(噢,应该是昨天了)图灵在北京搞了一次Ajax群英会,盛况空前。(会议实况下周整理一下,贴过来吧。)其间《Erlang程序设计》的赵东炜说到读论文的重要性。我还附和说,其实许多名家在讲治学的时候都...
  • shadowkiss
  • shadowkiss
  • 2013年06月29日 22:00
  • 519

一个有潜力的程序员的发展方向

如果你编程一年以上,对C或者Java非常熟悉,顺便什么函数半小时就完成,小程序一天保证完工。你不愿意一直当一个小程序员,做些没有什 么 前途的MIS系统,你羡慕哪些出没于高档写字楼,器宇轩昂、鲜...
  • qq_32786873
  • qq_32786873
  • 2016年10月27日 17:34
  • 158

程序员进阶的五个瞬间

点击上方“程序员大咖”,选择“置顶公众号”关键时刻,第一时间送达!之前有个讨论:实现同样功能,简洁代码一定比复杂代码效率高吗?有的说,还得看算法,如果算法相同,简洁代码效率应该会高一些。有的说,即使算...
  • Px01Ih8
  • Px01Ih8
  • 2017年12月14日 00:00
  • 161

一篇关于程序员的文章

很差错,转载一下。 确定方向 选择比努力更重要 关于方向的选择其实越早确定越好,生活中我们要面临无数个选择,前几天看的一个黑客相关的美剧中有句台词说的不错: life is binary 生活...
  • huangshuai147
  • huangshuai147
  • 2016年05月09日 19:47
  • 1666

看到一个程序员成长之路 一点点感慨

刚才看到一个程序员的成长之路,感慨很多,先开个博客占个坑, 记录一下,同时也鼓励一下自己,坚持自己的路走下去。 机器学习, my love  例子中, 一个很一般的院校的毕业生,在毕业五...
  • u014114990
  • u014114990
  • 2015年08月20日 15:27
  • 1931

如何成为一名优秀的程序员

无论做什么工作, 都希望能做到最好, 就像参与一款游戏, 每个人都希望能赢到最后. 工作自然也会有其”秘籍”, 让我们更快的实现目标. 有些工作五年的程序员仍然很平庸, 也有刚学一年就技术出众的天才....
  • u012515223
  • u012515223
  • 2016年05月16日 17:30
  • 2505

学习python的第二十五天-老程序员的忠告

现在还不能说你是一个程序员。这本书的目的相当于给你一个“编程棕带”。你已经了解了足够的编程基础,并且有能力阅读别的编程书籍了。读完这本书,你应该已经掌握了一些学习的方法,并且具备了该有的学习态度,这样...
  • A_lPha
  • A_lPha
  • 2016年12月03日 09:21
  • 1024

NB-IOT与物联网

1. 物联网的技术格局 短距离(智能家居/穿戴等)  --- zigbee, wifi, BLE 长距离 (LPWA 低功耗广域)   ---  LORA, NB-IOT     ...
  • AMDS123
  • AMDS123
  • 2017年04月20日 10:51
  • 7625

每个程序员都应该了解的内存知识(3)-虚拟内存

【原文:http://www.cnblogs.com/mikewolf2002/archive/2013/04/13/3018413.html】 英文原帖地址:http://lwn.net/Ar...
  • zhazhiqiang2010
  • zhazhiqiang2010
  • 2014年02月28日 21:46
  • 1214
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:所有程序员都应该至少读上两遍的十篇论文
举报原因:
原因补充:

(最多只允许输入30个字)