Jeff Atwood傾情推薦——程序員必讀之書 (zz)

//z 2013-12-27 21:27:45 IS2120@BG57IV3 T1611149493.K.F3499268100[T6,L76,R2,V15]
程序員

  英文版:《Code Complete 2》面試

  中文版:《代碼大全(第二版)》正則表達式

  做者:Steve McConnell算法

  譯者:金戈 湯凌 陳碩 張菲數據庫

  出版社:電子工業出版社編程

  出版日期:2007 年8月api

  Jeff Atwood的推薦:Steve McConnell的這本書是軟件開發領域裏的《烹飪的樂趣》。若是你對這本書感興趣,說明你熱愛你如今的工做,你對你正在作的事情是認真的,而且你想不斷地提高本身。Steve在這本書裏指出,普通程序員每一年所讀的技術書籍不足一本。僅僅只需閱讀這本書,你就有可能超越身邊90%的程序員。這絕對是個好主意!瀏覽器

  我很是喜歡這本書,以至於我在給本身的博客網站取名的時候也受到了它的啓發——我把咱們應該避免去作的事情都打上了「Coding Horror」的標籤。沒有比編程方面的恐怖案例更能給人帶來樂趣了。但若是你不得不本身去應對某些恐怖,那麼你的樂趣就會蕩然無存。請你幫本身一個忙吧!要想讀書,這本書是首選;要給身邊其餘的程序員推薦圖書,這本書也是首選。網絡

  英文版:《The Mythical Man-Month》app

  中文版:《人月神話》

  做者:Frederick P.Brooks Jr.

  譯者:UML China翻譯組 汪穎

  出版社:清華大學出版社

  出版日期:2007 年9月

  Jeff Atwood的推薦:毫無疑問,這是咱們領域裏唯一的一本經典圖書。若是你還沒讀過,你應該以爲丟臉!

  你知道關於IBM的那個廢棄已久的OS/360系統及其開發團隊的故事嗎?若是你讀了《人月神話》還不明白OS/360那回事,那你就是白讀了!這本已經出版了30多年的圖書有力地證實了一個觀點:計算機也許會變,但人不會變。

  花點時間讀一讀這本經典之做是值得的,跟你埋頭苦讀上千頁的技術資料比起來,它必定能給你帶來更大的效益。

  英文版:《Don't Make Me Think》

  中文版:《點石成金:訪客至上的網頁設計祕笈》

  做者:Steve Krug

  譯者:DeDream'(蔣芳)

  出版社:機械工業出版社

  出版日期:2006 年8月

  Jeff Atwood的推薦:這是我曾讀過的、在「可用性」方面講得最好的一本書。儘管這本書的副標題說的是「Web可用性」,但你不要被它迷惑了。Steve Krug在這本書裏談到了「可用性」全部的重要概念,並且入木三分。這本書讀起來頗有樂趣。若是「可用性」方面的書你只打算讀一本,那就選這本吧!這本書包含有豐富的信息,並且以一種簡潔、切實可行的方式展示在讀者面前。它普遍適合於各種羣體閱讀,包括技術人員、非技術人員、用戶、開發者、管理人員等等。

  看一看下面的幾幅漫畫吧。是否是很糾結?永遠也不要參加那樣的會議!順便說一下,解決這個問題的方法就是「可用性測試」。好好想想:咱們作決定的時候,是要無休無止地爭吵、最後誰吵贏了誰說了算呢,仍是要基於真實的數據?這種改變是一場革命!

  英文版:《Rapid Development》

  中文版:《快速軟件開發》

  做者:Steve McConnell

  譯者:席相霖等

  出版社:電子工業出版社

  出版日期:2002年1月

  Jeff Atwood的推薦:這本書完整的標題應該是《快速軟件開發——有效控制與完成進度計劃》。我故意沒把它寫全,不只僅由於副標題太長了、有點唐突,還由於它確實不怎麼恰當。

  這本書其實不是關於快速軟件開發的。它講的是失敗的現實。絕大部分軟件開發項目都會失敗——他們的開發進度滯後於計劃,作出來的東西不符合要求,甚至有時候根本就沒有完成。這已經不存在爭議了,由於它是一個統計事實。使人不快的現實是,你的團隊必須很是優秀才能避免失敗,要想成功機率就更小了。儘管這聽起來讓人沮喪——沒錯,現實讓人很沮喪——但你仍是要讀一讀這本書。

  爲何呢?由於若是你能避免重複去犯你或者其餘人犯過的錯誤,你就已經成功了一半。(嚴格來講,書裏面說是成功了四分之一。可是,我以爲應該會更多一點。)這本書能夠給咱們的啓示是,犯錯誤是好事,只要這些錯誤是全新的、活蹦亂跳的(可能會重複發生)。若是你一直在犯一樣的錯誤,其實你在一開始就已經失敗了。可悲的是,你對你正在犯的錯誤可能還渾然不知。

  在咱們的領域裏,「唯一不變的就是變化」。這樣的領域是很少的,而咱們很不幸就身處其中。所以,咱們唯一能作的就是擁抱變化,而且嘗試各類不一樣的「快速」開發技巧。但不要走極端!咱們不能假設:「自1970 年以來發生的變化是如此之大,以至於跟咱們最新、最熱門的技術比起來,全部的傳統軟件開發經驗都已通過時、毫無用處了。」仍是那個說法:計算機已經變了,但人沒有變。在你開始作任何事以前,至少了解一下什麼是行得通的、什麼是行不通的。拿Steve McConnell的話來講,「在開始刷漆以前要先讀一讀油漆罐上的說明。」這聽起來彷佛是理所固然的,但在讀了這本書以後你就會發現,咱們領域裏真正那樣作的人簡直就是百裏挑一。


原文轉自:http://blog.csdn.net/happydeer/article/details/8795687

  英文版:《Peopleware》

  中文版:《人件》

  做者:Tom DeMarco / Timothy Lister

  譯者:UML China翻譯組

  出版社:清華大學出版社

  出版日期:2003年6月

  Jeff Atwood的推薦:若是你曾經親眼目擊一支全明星運動隊在一個糟糕教練的帶領下表現平平,你必定會喜歡這本書。無論你有多少「編程高手」,若是他們相互之間沒有溝通,或者互不認同,結果你仍是會失敗。這本書還指出,無論開發人員多麼有天賦,若是他們持續不斷地受到各類干擾(哪怕干擾很細微),沒有人能在這種狀況下有效地開展工做。說白了,開發人員在人際技能方面並不見長,但具備諷刺意味的是:項目成功與否經常取決於人際的問題。若是你渴望成爲真正的「團隊領導」(而不是徒有虛名),你必須好好地讀一讀這本書。

  儘管這本書裏充斥着絕妙的、徹底正確的觀點,但它也暗示了:員工須要對工做場全部必定的控制權——這在大部分公司裏徹底是癡心妄想。不過,至少你會認識到,工做環境或你的團隊有時候就是癥結所在。更重要的是,你將學會如何去處理這些狀況。

  英文版:《The Design of Everyday Things》

  中文版:《設計心理學》

  做者:Donald A.Norman

  譯者:梅瓊

  出版社:中信出版社

  出版日期:2010年3月

  Jeff Atwood的推薦:開發軟件可能給人帶來難以置信的挫折感,由於過程當中有太多的陷阱。咱們所作的事中不少都是帶有預防性質的:在一件事情還沒出錯以前,先試想它將會出錯。這能令人心智衰弱,並且最終可能以一些負面的方式讓人「心想事成」。在向不懂技術的人解釋的時候,我有時候會說:這就像製造一塊有1000個零件組成的手錶同樣,在哪怕最輕微的震動之下,任何一個零件均可能隨機出錯。這真是一份「好差事」啊!

  毫無疑問,設計軟件是很難的。可是,設計一扇門也是很難的。無論是熱門的SQL引擎,仍是卑微的鞋子,設計的細微差異會滲入你能觸摸到的每個角落。「魔鬼藏在細節之中。」讀過這本書以後,你將對這句話有一個全新的體會。若是設計一扇門不像咱們當初想的那樣不費吹灰之力,也許咱們也該停下來想想了:爲何咱們設計不出完美的軟件呢?

  英文版:《About Face 3: The Essentials of Interaction Design》

  中文版:《About Face 3:交互設計精髓》

  做者:Alan Cooper / Robert Reimann / David Cronin

  譯者:劉松濤

  出版社:電子工業出版社

  出版日期:2012年3月

  Jeff Atwood的推薦:Alan Cooper是「Visual Basic之父」,他仍是「可用性」方面的教父。說實話,我是不少年前讀的這本書。這本書大約在1995年第一次出版,我就是在那時候買的。也就是說,我買的是最「老」的初版。而現在已經是第三版了!(用新版淘汰舊版,這能夠認爲是一種糟糕的可用性嗎?)

  在展示風格一致的圖形用戶界面方面,這本書和《GUI設計禁忌》一塊兒被認爲是具備教育性質的規則手冊。但這本書滿滿地記錄了更爲通用的指導原則。在用來作範例的GUI問題中(不少都是古老的Windows 95界面),評判一下哪些已經基本被解決了(使用可視化的方式來展現對話框選擇的效果)以及哪些尚未被解決(白癡的模態對話框讓程序停止運行),這其實挺有趣的!

  與《GUI設計禁忌》不一樣的是,這本書是在互聯網應用盛行以前寫的,所以它沒有討論到Web應用以及Web對GUI設計的影響。但這沒關係,它仍然是一本很是有用的書。在最近的一個.NET項目中,我在錯誤消息的處理方面所遵循的模型就源自於這本書。

  英文版:《The Inmates Are Running the Asylum: Why High Tech Products Drive UsCrazy and How To Restore The Sanity》

  中文版:《交互設計之路——讓高科技產品迴歸人性》

  做者:Alan Cooper

  譯者:Chris Ding(丁全鋼)

  出版社:電子工業出版社

  出版日期:2006年3月

  Jeff Atwood的推薦:Alan Cooper就是從這本書開始給你們推介了「人物角色」這個概念:與其把用戶想象成抽象的、難以描述的、琢磨不透的一羣人,還不如用「人物角色」來促使咱們談論一些具體的用戶,他們有名字、有個性、有需求、也有目標。咱們的用戶想要一個打印預覽的功能嗎?誰知道呢?但若是做爲客戶經理的Gerry Manheim必須每週打印他的費用報告(這是他工做的一部分),你最好相信打印預覽功能是必需的。其實沒什麼神奇的;像之前同樣,歸根結底你仍是要知道你的用戶是誰,以及他們真正想要的是什麼——「人物角色」這個方法用來達到那個目的是再適合不過的了。

  書裏面還有一個有趣的分析:開發者傾向於認爲本身可以表明「普通」用戶來作出「可用性」方面的決定,但實際上,他們根本就未入流。開發者充其量只能算是異想天開的極端用戶——「邏輯人」與「智人」的對抗。除非你碰巧是在開發一個編譯器,而開發者正是最終用戶……

  這本書裏還有一個容易被人忽視的「教訓」:有時候,無論你的設計有多麼優秀,你仍是可能會失敗。Alan Cooper在書中舉了兩個例子——一個是掃描儀軟件,另外一個是Web應用軟件——Alan參與了諮詢工做,事實也證實它們都是很是出色的軟件,但由於某些緣由它們沒有取得商業上的成功,而這些緣由跟「可用性」沒有任何關係。有時候,無論你多麼努力,偉大的產品仍是會由於一些不受你控制的緣由而失敗。記住這些案例吧,不要被書裏有些地方自鳴得意的論調衝昏了頭腦!(順便說一下,書中提到的「放在鍵盤後面的」USB掃描儀,我剛好也買過一個。我對它附帶的掃描軟件印象很是好。後來,我把這個掃描儀送給了我父親。有一次我和父親通電話的時候,在沒有任何暗示的狀況下,他竟然向我提及了他很是很是喜歡那個掃描軟件。這仍是發生在這本書出版之前的事呢!) 

原文轉自:http://blog.csdn.net/happydeer/article/details/8795687

無論怎麼樣,這是Alan Cooper的另外一本傑做,它也是《About Face》的合理進化。在《About Face》裏,Alan把目標用戶都當作是「中庸的」;而在這本書裏,他提煉出了更具體、也更容易在實踐中應用的「人物角色」。

  英文版:《GUI Bloopers》

  中文版:《GUI設計禁忌》

  做者:Jeff Johnson

  譯者:王蔓 劉耀明

  出版社:機械工業出版社

  出版日期:2005年2月

  Jeff Atwood的推薦:遙想微軟的Windows 95和蘋果的System 7流行之時,那時候還真有一些關於GUI(圖形用戶界面)的設計準則。這本書就收錄了這些核心準則,包括菜單上的省略號、對話框上按鈕和文字的對齊方式等等。但有多少用戶能真正理解這些準則呢?這是有爭議的。不過,若是你遵循這些準則,你至少能夠指望A程序的用戶界面會跟B程序的表現得很類似。現現在,網絡內容的表現形式魚龍混雜,特別是天天都會有一些Flash設計新手另起爐竈,標新立異地自創一套GUI。所以,溫故一下這門「經典的」關於GUI設計準則的課程仍是頗有好處的。

  事實上,傳統的GUI風格和基於瀏覽器的風格正在漸漸融合,它們彼此之間取長補短。如今,你會發現有不少桌面應用程序都採用了酷似瀏覽器的界面風格。這就是所謂的「引導性用戶界面」(Inductive User Interface)。依稀記得大概是在2000年,我在Microsoft Money(一款財務管理軟件)上第一次看到了這種界面風格。你應該能在WindowsVista、Windows七、Windows 8上看到更多的這種變化。

  英文版:《Programming Pearls》

  中文版:《編程珠璣》

  做者:Jon Bentley

  譯者:謝君英 石朝江

  出版社:中國電力出版社

  出版日期:2004年3月

  Jeff Atwood的推薦:對因而否要推薦這本書,我曾經猶豫過,由於它包含了一些很是底層的編碼技術。但這本書裏同時也蘊藏了至關多的軟件工藝方面的「珍珠」,這使得它仍然值得全部開發者都去讀一讀。任何包含下面這種圖片的圖書都是頗有價值的寶書。它就用來展現TRS-80與DEC Alpha之間48n比n3的算法複雜度差別嗎?兄弟,拜託……沒有比那更好的了!若是你不能幸運地跟一位大師級的程序員並肩而坐,而且在一塊兒工做大約一年的時間,那麼買一本《編程珠璣》就是退而求其次的最佳選擇了。這本書是集體智慧的結晶,凝聚了不少技能嫺熟的程序員的貢獻,並最終彙編成了一個個精粹而容易被人理解的專題欄目。

  我不想騙你!其實,這本書的不少章節你均可以忽略。好比說,像第十一、13和14章談到的排序、堆或者哈希算法,當今有不少成熟的庫早已實現了這些基本技術,我想不出任何理由你須要去把它們從新實現一遍。但對於每個枯燥的課本練習,這本書的確給出了一些實用的建議。你盡能夠快速翻閱這本書,碰到有代碼的部分就跳過去……聽個人準沒錯!第7章「封底計算」是要點,那也許是我曾見過的在「估算」這個專題上最好的論述。它還用很大的篇幅去解釋了那些瘋狂的面試問題,而一些公司每每熱衷於用那些問題來考驗咱們……

  若是你還在猶豫,建議你到網上去讀一讀這本書的樣章。最近,我把從「珍珠字符串」那一章學到的東西付諸實踐,我在生成合成數據填入一個空數據庫的時候使用了馬爾科夫鏈——這也證實了在「封底計算」那一章談到的性能估算技術。

  英文版:《The Pragmatic Programmer: From Journeyman to Master》

  中文版:《程序員修煉之道:從小工到專家》

  做者:Andrew Hunt / David Thomas

  譯者:馬維達

  出版社:電子工業出版社

  出版日期:2011年1月

  Jeff Atwood的推薦:這本書讓我想起了《編程珠璣》裏的不少內容,但它事實上比《編程珠璣》更好,由於它再也不拘泥於代碼。做者擺脫了代碼的束縛,轉而專一於真實世界裏已經被證實切實可行的方法,並把它們通通都收錄進了這本書。嚴格來講,不是全部的事情都跟編程有關係。好比,自問「我爲何要作這件事?它究竟值得去作嗎?」並不算是創意性思惟,你偏偏應該天天都這麼問問本身,以使你和你的同事始終保持清醒的頭腦。這也正是這本書的難得之處!

  若是你想對這本書作更多的瞭解,你能夠去看一看我在博客網站上發表的那篇「A Pragmatic Quick Reference」。那篇文章很好地歸納了這本書的內容,它也能夠做爲你「修煉」時候的便捷參考。

  英文版:《Designing Web Usability》

  中文版:《Web可用性設計》

  做者:Jakob Nielsen

  譯者:瀟湘工做室

  出版社:人民郵電出版社

  出版日期:2000年11月

  Jeff Atwood的推薦:Jakob Nielsen由於創辦了關於「可用性」的網站(http://www.nngroup.com)而名聞遐邇。自從他在1989年出版了第一本書以來,他便開始了可用性專家的職業生涯。這是一本徹徹底底的關於Web可用性設計的初級讀本,所以跟Alan Cooper專一於GUI的圖書仍是有些不同的。


原文轉自:http://blog.csdn.net/happydeer/article/details/8795687

  《The Visual Display of Quantitative Information》

  《Visual Explanations: Images and Quantities, Evidence and Narrative》

  《Envisioning Information》

  信息多美麗!設計優良的GUI也是這樣。

  這個系列的3本書你沒必要都買,除非你是一個完美主義者(我猜你也許是個受虐狂),但前兩本是很關鍵的。

  Chris Sells曾經在2004年6月參加過Edward R. Tufte的一次研討會,以後他對Tufte的圖書發表了一些頗有意思的看法。詳見http://www.sellsbrothers.com。

  英文版:《Mastering Regular Expressions》

  中文版:《精通正則表達式》

  做者:Jeffrey E.F.Friedl

  譯者:餘晟

  出版社:電子工業出版社

  出版日期:2012年7月

  Jeff Atwood的推薦:UNIX由於其複雜、使人費解而臭名昭著。正則表達式與它同病相憐。

  我應該算得上是「保持通俗易用」俱樂部的正式會員,但我要爲正則表達式破一回小例。若是正則表達式書寫得當的話,它們能夠在字符串操做方面爲你節省大把大把的時間。我還歷來沒碰到過一個正則表達式派不上用場的項目呢!

  一旦你鑽進正則表達式的世界,你可能會沉醉於它們驚人的力量和潛能。請記住,絕對的權力致使絕對的腐敗。不過,它也絕對可讓你酷斃了!


原文轉自:http://blog.csdn.net/happydeer/article/details/8795687

//z 2013-12-27 21:27:45 IS2120@BG57IV3 T1611149493.K.F3499268100[T6,L76,R2,V15]
相關文章
相關標籤/搜索