高級程序員必看的書
高級程序員必看的書
程序員,都喜歡編寫代碼,都喜歡挑戰(zhàn)艱深的算法,喜歡設(shè)計并創(chuàng)建炫酷的新技術(shù)。厭倦那些不得不處理的日?,嵥?、工作中的官僚作風,以及無關(guān)的應酬(比如工作無關(guān)的聚會)。知道你很忙,所以給大家推薦幾本讀起來很快很有收益的書。來看看吧。
1 《數(shù)據(jù)結(jié)構(gòu)與算法經(jīng)典問題解析:Java語言描述》
如果現(xiàn)在是你在大學的頭一年,你應該找一本來讀讀看。如果你是個經(jīng)驗豐富的程序員,至少應該粗讀一下,看看書中的那些概念你是否熟悉。在今天的世界 中,穩(wěn)定的工作就像個童話,你不得不時刻準備好進行技術(shù)面試。即使你的工作很穩(wěn)定,你也應該隨時準備好,這樣才能利用好隨時可能出現(xiàn)在你面前的好機會。
作為在微軟有著 8 年面試經(jīng)驗的人,我可以保證,如果你對這本書中涵蓋的內(nèi)容都很熟悉的話,你有很大機會在面試中取得良好的表現(xiàn)。另一個我喜歡這本書的原因是,它里面并沒有 充斥著計算機科學理論和數(shù)學,而是用非常淺顯易懂的問答形式來講述知識。它會告訴你同樣一個面試題的多種不同解法。我推薦你買一本,讀讀它,熟練掌握其中 的概念,這樣可以讓你隨時搞定面試題。
2 《代碼整潔之道》
當坐在你旁別的人讀你代碼的時候沒有沖著你破口大罵時,你就知道你成功編寫了整潔的代碼。
為什么這么多新人程序員都沒法寫出整潔的代碼?因為大部分大學中都不會教給如何編寫專業(yè)的代碼。例如,我參加過的絕大多數(shù)算法和數(shù)據(jù)結(jié)構(gòu)的課程,都 只關(guān)注在代碼的正確性,只要示例輸入能得到正確的輸出結(jié)果就萬事大吉了。即使是軟件工程課,在大部分大學里面,都是通過 UML 圖、代碼文檔、軟件演示和最后的報告來給學生打分的。他們沒有資源去深入查看班上每個學生那上千行的代碼,然后在代碼風格和清晰程度上面給予學生一些反 饋。這就是《代碼整潔之道》能夠幫助你的地方,把你從一個計算機科學專業(yè)的學生轉(zhuǎn)變成一個專業(yè)的程序員。
3 《Head First 設(shè)計模式》
所謂的軟件設(shè)計模式,指的是在特定的場景或領(lǐng)域中,用于解決一些常見問題的可重用的方案。通常來說學習設(shè)計模式都是推薦那本經(jīng)典的《設(shè)計模式 : 可復用面向?qū)ο筌浖幕A(chǔ)》。 不過我還是想格格不入地向你推薦這本《Head First 設(shè)計模式》,因為它讀起來容易得多。讀這本書的時候打瞌睡的可能性要比你讀那本《設(shè)計模式》低得多。它會畫上一些時間讓你掌握一些概念,不過這時間花的是 值得的。根據(jù)我的經(jīng)驗,15% 到 20% 的技術(shù)面試問題都多多少少和設(shè)計模式相關(guān),所以對于應對面試而言,它也挺有幫助的。
4 《我編程,我快樂: 程序員職業(yè)規(guī)劃之道》
這本書的第一版名叫《我去印度工作(My Job Went to India)》(譯注:貌似沒找到中文版),封面上是個程序員舉著張硬紙板,上面寫著“寫代碼換口飯吃”。后來作者就把書名換掉了,變得更專業(yè)一些,沒那么具有煽動性了。
不過和第一版一樣,這本書中囊括的一些建議還是相當有價值的。這本書就如何在通往成功之路上戰(zhàn)略性地設(shè)置你自己的定位,給出了一些的指導意見。它讀起來很輕松,我要是能在上學的時候看過就好了。
5 《贏得朋友》
你在軟件開發(fā)領(lǐng)域待的時間越長,就越能意識到一個人沒法做完所有的事情。你需要協(xié)調(diào)外部的團隊,和其他的程序員、測試、產(chǎn)品經(jīng)理一起合作,一起完成 項目,使用技巧推動其他人一起完成軟件的發(fā)布。簡要地說,你需要和你的同事進行日常溝通。你需要在必要的時候說服別人來幫助你,需要激勵他們來追隨你的領(lǐng) 導。
這本書會幫助你說服別人按照你的方式來思考,同時又能避免激怒他們。這其實很重要,因為在今天,不論你做什么工作,最終肯定是要和人打交道的。我強烈推薦這本書。
6 《關(guān)鍵對話:如何高效能溝通》
程序員以他們的聰明和固執(zhí)而知名。在一個典型的工作日中,在選擇正確的設(shè)計方式、針對 deadline 進行談判、代碼審查、甚至在公開場合如何安排座位的時候,都會發(fā)生爭論。不用說,這些都是關(guān)鍵性的對話,你需要確保你的建議和需求能被別人聽進去,同時又 不會徹底的惹惱某人(尤其是你可能還需要他的幫助)。
這本書會教給你一些工具,能夠用在你這輩子最艱難、最重要的對話中,說出你的想法,獲得讓你驚嘆的正面反饋。不過光是閱讀它是不夠的,你需要在實際生活中應用這些技巧。幸運(或不幸)的是,如果你是個程序員的話,在進行一場關(guān)鍵對話的時候,通常你也不用想得太多。
7 《口渴之前先挖井》
你知道在大公司中,絕大多數(shù)高級開發(fā)的職位是如何招聘的么?如果你猜是來自內(nèi)部推薦的話,那完全正確。
我可不是說你能在 Google 或者微軟得到一份開發(fā)工作,只是因為你認識里面的誰,那只取決于你在技術(shù)面試時候的表現(xiàn)。不過,如果在你感興趣的公司中有認識人的話,至少能確保你的簡歷 會被 HR 看到,至少能得到一次遠程面試的機會。這可不是件容易的事,因為通常這種讓人垂涎的職位在網(wǎng)上至少得有幾百份簡歷會提交進來。在公司里面有一個認識人,可 能意味著你能有機會在面試中證明自己的價值。
8 《超越華爾街:成功投資的十大守則》
我知道你很忙:如果你剛開始工作,你可能會把所有時間花在你那份新工作需要的技能上。最后你所需要的是一本金融學的專著。這本是我曾經(jīng)讀過的最簡潔的,關(guān)于個人理財和投資的指導了。
這本指導會幫助你從一開始,找到通向財務自由的正確方向。在 2008 年經(jīng)濟危機時,我毫不慌張地賣光了我的共同基金,其中的原因之一,就是我讀過這本書,并且深刻記住了它教給我的東西。這也讓我在最近的牛市中,通過股票獲 得了 200% 的收益,這都是歸功與這本書,以及 BogleHeads 論壇(譯注:一個知名的投資論壇)。
9 《鄰家的百萬富翁》
讓我問個直接的問題:你想要有朝一日變得富有么?如果答案是“是”的話,那你可一定得看看這本書。它講述了百萬富翁是如何賺錢并且保持他們的財富的,這徹底改變了我的觀念。
這本書的作者花了 20 年時間采訪百萬富翁俱樂部中的精英會員,篩選出了七條規(guī)則,能夠讓你的財富變得更加持久。所以如果你想要在某一天不再擔心財務問題、真正自由的做自己喜歡的事情的花,千萬別忽略了這本書中給出的建議。
10 《牧羊少年奇幻之旅》
對很多程序員來說,當他們適應了現(xiàn)有的位置時,就會變得過于“慵懶”;他們不會再挑戰(zhàn)自己學習新技術(shù),換句話說,不會再成長了。這相當于職業(yè)生涯的自殺。唯一能夠繼續(xù)學習和成長的方法,就是跨出你的舒適區(qū),探索新的可能。
這個清單中的其它九本書會幫助你創(chuàng)建良好的技術(shù)、人際、財務平臺,從而讓你抓住自己人生道路上能夠改變命運的機會。不過,這是清單中唯一一本能讓你重燃激情,傾聽你內(nèi)心深處的聲音,追尋你曾經(jīng)的夢想,那些已經(jīng)迷失在我們?nèi)粘,嵥樯钪械膲粝搿?/p>
還在等什么?你可以把這些書當作是自己的朋友、心理醫(yī)生和向?qū)?,去探險、去意識到你真正的潛力、去追尋你的夢想。不要害怕你需要學習的東西,就像那句老話說的:千里之行始于足下。祝你好運!