StackOverflow 創始人:程序員必讀的15本經典書籍

這份讀書清單已經很久沒更新了,至於為什麼閱讀列表為何很少更新?Stack overflow 創始人Jeff Atwood表示這10年裡,計算機發展迅猛,帶來的變化也是翻天覆地,但人卻沒有改

為了開發出更好的軟件,你需要了解人們的工作方式,這也正是他推薦的書籍時所注重的地方。以下就是Jeff Atwood就是推薦的書單內容:

1、《代碼大全2》

StackOverflow 創始人:程序員必讀的15本經典書籍

出自Steve McConnell之手的《代碼大全2》就像在為為軟件開發人員訴說編程的樂趣。能讀的下去這本書的人,證明他喜歡目前的工作,對待工作認真負責,並且想不斷提升自己。在書中Steve指出,普通程序員每年閱讀的技術書不到一本。選擇閱讀這本書,就已經證明你與90%的程序員不一樣了。

我非常喜歡這本書,以至於這個網站的標題(Coding horror)就是從這本書中衍生出來的 - 書中的編程反例都標有“Coding horror”圖標。沒有什麼比Coding horror更有趣了 - 直到有一天你自己也碰上了,然後你就會覺得突然間不再那麼有趣了。使這本書成為您閱讀的第一本書,而且這本書絕對值得讓你推薦給身邊的任何一個同事。

2、《人月神話》

StackOverflow 創始人:程序員必讀的15本經典書籍

這本書可以說是我們這個領域唯一的經典書籍了,假如你還沒讀過它,那真是太可惜了

我敢說任何一個拿起這本書的程序員都沒有發現關於那個早就不使用操作系統的故事以及它的開發團隊之間驚人的相關性。這本已經出版25年的書大膽地說明了一個觀點:電腦可能會改變,但人卻不會改變。

閱讀這本經典作品肯定比你沉迷於最新的千頁技術書籍更有價值。

3、《點石成金 : 訪客至上的網頁設計秘笈》

StackOverflow 創始人:程序員必讀的15本經典書籍

關於我所閱讀的關於可用性中最好的一本書。書名說“網頁的可用性”,但不要被它的字面意思所誤導了。Steve Krug在書中涵蓋了所有重要的可用性概念,而“網頁的可用性”只是其中的一部分。書中的內容也十分有趣,如果只想閱讀一本有關可用性的書籍,那麼選擇它準沒錯了。它裡面包含了很多重要的知識點,並以簡潔,通俗易懂的文字呈現。適用於任何讀者:技術,非技術,用戶,開發人員,經理等。

StackOverflow 創始人:程序員必讀的15本經典書籍

呃。。。是不是發現自己從來沒有開過這樣的會議。順便提一下,解決這個問題的辦法是進行一次快速的可用性測試。請想象一下:根據實際數據來得出事實依據,而不是基於一場為了辯論來讓其他人認同你。這難道革命性轉變麼?

4、《快速軟件開發》

StackOverflow 創始人:程序員必讀的15本經典書籍

這本書的全稱是:《快速軟件開發:掌控軟件開發進度》,這個標題囉嗦而且含糊不清,更重要的是還用詞不當。

《快速軟件開發》並非是一本關於快速開發的書。書中圍繞軟件開發失敗這一現實問題展開。絕大多數的軟件開發項目都會失敗:有時是沒能按時上線,有時是開發出來的項目不合格,甚至有些時候都沒辦法完成。絲毫不用懷疑,事實就是如此。說難聽了就是:除非你的團隊非常厲害,能夠避免失敗,否則根本不用提成功了。雖然這聽起來可能會令人沮喪——好吧,這確實令人沮喪——但你仍然會想要去讀一讀這本書。

為什麼呢?因為只要你不重複犯曾經犯過的錯,不走別人走過的彎路,你就已經成功一半了,本書提供的示例就是為了表明,犯錯並非壞事,只要犯的這些錯都是之前沒有出現過的,如果你犯了同樣的老錯誤,那麼,表明你在一開始就已經失敗了,所以,從現在開始去發現那些你可能正在犯的錯誤吧

對我們這一行來講,唯一不變的就是一直在變。所以接受這種變化並嘗試不同的“快速”開發技術是很自然的一件事。但是這句話反過來說就不對了。我們不能認為自1970年以來,所有舊的軟件開發課程與我們今天的技術相比已經是過時了的或是沒用的了。老生常談的一件事是:計算機不斷改變;人卻沒有。 McConnell 曾說過:“粉刷之前請先閱讀油漆桶上的說明文字。”意思就是在你準備開始做一件事之前,至少要對於哪些可行哪些不可行有個認識。 雖然這聽上去並沒有什麼不妥,但是當你讀了這本書之後,你才會意識到,我們很少會真正去這麼做。

5、《人件》

StackOverflow 創始人:程序員必讀的15本經典書籍

如果你曾經看過全明星運動隊,因為教練原因導致表現不佳的話,那麼你會很喜歡這本書。當團隊中人都不能相互交談,或者在某件事情達成一致時,無論你得到多少“編程之星”都於事無補。而且,無論多聰明的開發者,都不能在被幹擾的情況下依然高校的工作,開發人員本身並不知道他們的社交技能,但頗為諷刺的是:項目的成功與否正取決於此。如果你想真的在實踐中成為“團隊領導者”而不止是名義上的,那麼,你需要拿起這本書。

雖然《人件》有許多完美的觀點,但裡面描繪的這種僱員管理對大多數公司來說都是純粹的幻想。但至少你可以你的工作環境或你的團隊在什麼時候出現了問題 - 更重要的是,你知道該如何做。

6、《設計心理學》

StackOverflow 創始人:程序員必讀的15本經典書籍

開發軟件可能是一件令人極度沮喪的事,因為很多的軟件都可能會出錯。我們所做的很多事情都是防禦性的,比如試圖預測會出現哪些問題。這是十分費腦的,而且最終還可能表明是錯誤的。我有時會和非技術人員這樣解釋:就好比製造一個帶有一千個移動部件的手錶,所有這些部件都有可能在無意中就壞掉了。這真是個悲傷的故事。

軟件開發肯定是困難的,但設計也很困難。設計的微妙之處在於它可以延伸到你能接觸到的每一個事物,無論是一些最新最熱門的SQL引擎,還是一隻普通的鞋子。這本書都會讓你對“惡魔藏在細節裡”這句話有一個新的認識。如果設計軟件並不是我們認為的那麼簡單的時候,那麼也許是時候該讓自己休息一下了。

7、《About Face:交互設計精髓》

StackOverflow 創始人:程序員必讀的15本經典書籍

Visual Basic的父親 Alan Cooper 是可用性領域的教父。我已經擁有這本書的多個版本(這是第四版),這本書越修訂越好,並且有越來越多的合作者像本書融入了不同的觀點,這是十分罕見的

《About Face》有很多適用於移動端和Web應用的通用指南。在用於說明的GUI問題中 - 以舊的Windows 95用戶界面的例子 - 將該系統已經改進的地方(在進行對話框選擇前使用視覺樣例進行展示)和還沒有改進的部分(使用愚蠢的模態框來停止正在運行的進程)進行對比是很有趣的一件事。

這是一本非常有用的書。我已經將本書作為我所從事項目的指南。

8、《編程珠璣》

推薦《編程珠璣》這本書我有點猶豫,因為它涵蓋了很多底層的編碼技術,但本書中嵌入了足夠的軟件開發的“珠璣”,使它值得任何開發人員花時間去閱讀。任何包含此圖的書

..的確是物有所值。利用TRS-80與DEC Alpha來說明48n與n 3算法的區別,所以真的沒有比這個更合適的了。能和大神級別的程序員共事一年固然美好,如果不行讀《編程珠璣》也是不錯的選擇。這本書將很多高級工程師的智慧提煉成簡潔的語言和易懂的文字。

說實在的:有些章節可以把它被忽略。例如,我無法理解本書的第11,13和14章中居然在介紹如何實現排序,堆或哈希算法。但是,對於每一本教科書繁瑣的練習,都有真實可行的建議。你只需瀏覽本書,忽略代碼部分。但第8章“粗略估算”是至關重要的,可能是我看到過的最佳評估方法。這張還解釋了一些經常出現的面試問題。

你可以現在網上閱讀這本書的一些樣章。我最近使用了書中“粗略估算”這一章節的內容來說明馬爾可夫鏈生成人造數據以填充空數據庫

9、《程序員修煉之道》

本書時常會讓我想起《編程珠璣》,但相比這本書還更好一點,因為它不太關注代碼。作者把在現實工作中發現所有實用方法歸結為一本書。並非所有的這些方法都是與技術上的編程相關。例如,問自己“我為什麼要這樣做?這樣做值得嗎?” 跳出固有思維方式; 並把這種思想融入到你的日常工作中。這就是《程序員修煉之道》為什麼會成為如此出色的書的原因。

10、《Web 可用性設計》

StackOverflow 創始人:程序員必讀的15本經典書籍

Jakob Neilsen 以其創建的可用性網站而聞名,1989年,當時他的第一本書出版,這時就已是一名可用性專家了。《Web 可用性設計》顯然是一個專注於Web可用性入門的書,所以它與面向GUI的Cooper書籍有點不同。

11、《定量信息的視覺顯示》

StackOverflow 創始人:程序員必讀的15本經典書籍

12、《視覺解釋:圖像和數量,證據與線索》

StackOverflow 創始人:程序員必讀的15本經典書籍

13、《想象信息》

StackOverflow 創始人:程序員必讀的15本經典書籍

14、《美麗的證據》

StackOverflow 創始人:程序員必讀的15本經典書籍

信息很美。設計良好的GUI也是如此。除非你是完美主義者(或者是受虐狂,我想),否則你不需要擁有系列中全套的四本書,但前兩個是必不可少的。

Chris Sells於2004年6月出席的Tufte研討會後,對Tufte書籍有了一些有趣的見解。

15、《正則表達式經典實例》

StackOverflow 創始人:程序員必讀的15本經典書籍

眾所周知,UNIX十分複雜而且難以理解。正則表達式也是如此。

我可能是“Keep It Simple Stupid”原則的忠實遵循者,但我正在為正則表達式做一個特例。若能正確書寫正則表達式,那麼她們會為你在字符串處理上節省大量時間,我從來沒有遇到一個正則表達式不能派上用場的項目。

一旦深入瞭解正則表達式,你可能會因為擁有驚人的力量和潛力而沉迷於此,這也就是Perl的由來。請記住,絕對權力會導致絕對的腐敗。但它也是絕對的好用。


分享到:


相關文章: