所有程序員都應該至少讀上兩遍的十篇論文

原文鏈接

http://blog.csdn.net/turingbook/archive/2009/03/01/3946421.aspx

 

今天(噢,應該是昨天了)圖靈在北京搞了一次Ajax羣英會,盛況空前。(會議實況下週整理一下,貼過來吧。)其間《Erlang程序設計》的趙東煒說到讀論文的重要性。我還附和說,其實許多名家在講治學的時候都會講到,要讀自己領域裏最經典的和最重要的論文。

很巧,剛纔從Reddit上看到了題爲“10 Papers Every Programmer Should Read (At Least Twice) ”的文章,打開鏈接一看,是我們《修改代碼的藝術》一書的作者Michael Feathers寫的。他的那本書被稱爲“近十年來最有影響的計算機圖書”之一,可是在國內的關注並不太夠,這是爲什麼呢?

言歸正傳,看看是哪10篇論文入了Feathers大師的法眼吧:

On the criteria to be used in decomposing systems into modules – David Parnas
A Note On Distributed Computing – Jim Waldo, Geoff Wyant, Ann Wollrath, Sam Kendall
The Next 700 Programming Languages – P. J. Landin
Can Programming Be Liberated from the von Neumann Style? – John Backus
Reflections on Trusting Trust – Ken Thompson
Lisp: Good News, Bad News, How to Win Big – Richard Gabriel
An experimental evaluation of the assumption of independence in multiversion programming – John Knight and Nancy Leveson
Arguments and Results – James Noble
A Laboratory For Teaching Object-Oriented Thinking – Kent Beck, Ward Cunningham
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更不欠你。”

(沉思十分鐘……)

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/turingbook/archive/2009/03/01/3946421.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章