給程式設計生涯充電的 10 本書

Erucy發表於2016-10-27

作為程式設計師,我們都喜歡編寫程式碼,都喜歡挑戰艱深的演算法,喜歡設計並建立炫酷的新技術。我們厭倦那些不得不處理的日常瑣碎、工作中的官僚作風,以及無關的應酬(比如工作無關的聚會)。

回想起大概十年前,我畢業之後直接進入微軟的時候,我想要的生活就是早晨 10 點上班,碼上 8-10 個小時,創造一些炫酷的玩意兒,然後回家。我所需要的就是這些,它讓我開心、讓我滿足、讓我充滿了成就感。不過隨著時間的流逝,我開始意識到:作為一個程式設計師,在通往成功的路上,除了寫程式碼之外,還有些別的事情要做。我想把它們分成三類:技術能力、人際交往能力(或者叫“軟技能”)、個人理財能力。

給程式設計生涯充電的 10 本書

不過為什麼我需要與人際交往能力???

大部分程式設計師老手都會對提出這個問題的人哈哈一笑,實際上我從好多新員工和實習生那裡聽到過這個問題。他們和十年前的我有著相同的心態:只要我是個可靠的工程師,擁有牛叉的設計和編碼能力,就足夠我邁向成功了。遺憾的是,這個世界不是這樣的。我是從一段痛苦中學到的這一點,那時候我的晉升被延期了 6 個月,因為我不具備所需的專案管理能力和“軟技能”。我的經理最後把我送去參加戴爾·卡內基的培訓課程,說實話,它徹底地改變了我對工作和生活的看法。從那裡學到的東西,幫助我在接下來的兩年半中取得了兩次升職。

那麼為什麼我還需要個人理財知識??

有很多新人程式設計師在獲得他們的第一份工作時,對自己需要做出的財務決策一頭霧水。需要簽署那種 401k 計劃?需要什麼樣的保險範圍?是不是需要使用員工認購股票計劃?等等。當我剛加入微軟的時候,對這些東西一無所知,我只能說,我當時根本就沒把它們放在心上。直到我犯下了足夠多的錯誤之後,我才意識到個人理財和投資的重要性。擁有了可靠的金融知識作為基礎,你就可以為你的生活開啟無數中可能:想想有多少次這種念頭曾經出現在你的腦海裡:

  • 早知道我當初就應該加入那個創業公司,抓住那個機會做成一件大事!
  • 哇塞,我真心喜歡這份新的 offer,不過它開出的價錢沒法支撐我現在的生活。
  • 我剛有了小孩,早知道我這幾年就應該找個在家也能做的工作。
  • 我恨死這份工作了,不過我現在沒有足夠的財務緩衝區能讓我裸辭去找份新工作。

(伯樂線上補充:401K 計劃也稱401K 條款,401K 計劃始於 20 世紀 80 年代初,是一種由僱員、僱主共同繳費建立起來的完全基金式的養老保險制度,是指美國 1978 年《國內稅收法》新增的第401條k項條款的規定,1979 年得到法律認可,1981 年又追加了實施規則,20 世紀 90 年代迅速發展,逐漸取代了傳統的社會保障體系,成為美國諸多僱主首選的社會保障計劃。適用於私人盈利性公司。)

好吧,其實我們很多人時不時地就會想過這種事情。現在想想看,如果你能知道你未來兩年、五年、甚至十年的生活開銷的話,會怎麼樣!你的職業生涯和生活方式會不會有不同的選擇?我賭你肯定會的。這就是財務自由能夠賦予我們的能力:只需要關注你喜歡的事情,而不用擔心財務上的風險。

所以,不管你是很年輕、剛剛開始工作,還是一個有經驗的老手程式設計師沒什麼時間去學習這些能讓你邁向成功的種種額外知識,下面列出的這些書都會讓你走向正軌。我知道你很忙,所以這些書中絕大部分(除了和技術相關的)讀起來都很快。不過我發現自己不斷地重讀它們,以鞏固我學到的知識,這樣才能留在生活和工作的正確道路上。

打磨你技術能力的書籍

#1 《資料結構與演算法經典問題解析:Java語言描述

給程式設計生涯充電的 10 本書

如果現在是你在大學的頭一年,你應該找一本來讀讀看。如果你是個經驗豐富的程式設計師,至少應該粗讀一下,看看書中的那些概念你是否熟悉。在今天的世界中,穩定的工作就像個童話,你不得不時刻準備好進行技術面試。即使你的工作很穩定,你也應該隨時準備好,這樣才能利用好隨時可能出現在你面前的好機會。

作為在微軟有著 8 年面試經驗的人,我可以保證,如果你對這本書中涵蓋的內容都很熟悉的話,你有很大機會在面試中取得良好的表現。另一個我喜歡這本書的原因是,它裡面並沒有充斥著電腦科學理論和數學,而是用非常淺顯易懂的問答形式來講述知識。它會告訴你同樣一個面試題的多種不同解法。我推薦你買一本,讀讀它,熟練掌握其中的概念,這樣可以讓你隨時搞定面試題。

#2 《程式碼整潔之道

給程式設計生涯充電的 10 本書

當坐在你旁別的人讀你程式碼的時候沒有衝著你破口大罵時,你就知道你成功編寫了整潔的程式碼。

為什麼這麼多新人程式設計師都沒法寫出整潔的程式碼?因為大部分大學中都不會教給如何編寫專業的程式碼。例如,我參加過的絕大多數演算法和資料結構的課程,都只關注在程式碼的正確性,只要示例輸入能得到正確的輸出結果就萬事大吉了。即使是軟體工程課,在大部分大學裡面,都是通過 UML 圖、程式碼文件、軟體演示和最後的報告來給學生打分的。他們沒有資源去深入檢視班上每個學生那上千行的程式碼,然後在程式碼風格和清晰程度上面給予學生一些反饋。這就是《程式碼整潔之道》能夠幫助你的地方,把你從一個電腦科學專業的學生轉變成一個專業的程式設計師。

#3 《Head First 設計模式

給程式設計生涯充電的 10 本書

所謂的軟體設計模式,指的是在特定的場景或領域中,用於解決一些常見問題的可重用的方案。通常來說學習設計模式都是推薦那本經典的《設計模式 : 可複用物件導向軟體的基礎》。不過我還是想格格不入地向你推薦這本《Head First 設計模式》,因為它讀起來容易得多。讀這本書的時候打瞌睡的可能性要比你讀那本《設計模式》低得多。它會畫上一些時間讓你掌握一些概念,不過這時間花的是值得的。根據我的經驗,15% 到 20% 的技術面試問題都多多少少和設計模式相關,所以對於應對面試而言,它也挺有幫助的。

#4 《我程式設計,我快樂: 程式設計師職業規劃之道

給程式設計生涯充電的 10 本書

這本書的第一版名叫《我去印度工作(My Job Went to India)》(譯註:貌似沒找到中文版),封面上是個程式設計師舉著張硬紙板,上面寫著“寫程式碼換口飯吃”。後來作者就把書名換掉了,變得更專業一些,沒那麼具有煽動性了。

不過和第一版一樣,這本書中囊括的一些建議還是相當有價值的。這本書就如何在通往成功之路上戰略性地設定你自己的定位,給出了一些的指導意見。它讀起來很輕鬆,我要是能在上學的時候看過就好了。

培養軟技能的書籍

#5 《贏得朋友

給程式設計生涯充電的 10 本書

你在軟體開發領域待的時間越長,就越能意識到一個人沒法做完所有的事情。你需要協調外部的團隊,和其他的程式設計師、測試、產品經理一起合作,一起完成專案,使用技巧推動其他人一起完成軟體的釋出。簡要地說,你需要和你的同事進行日常溝通。你需要在必要的時候說服別人來幫助你,需要激勵他們來追隨你的領導。

這本書會幫助你說服別人按照你的方式來思考,同時又能避免激怒他們。這其實很重要,因為在今天,不論你做什麼工作,最終肯定是要和人打交道的。我強烈推薦這本書。

#6 《關鍵對話:如何高效能溝通

給程式設計生涯充電的 10 本書

程式設計師以他們的聰明和固執而知名。在一個典型的工作日中,在選擇正確的設計方式、針對 deadline 進行談判、程式碼審查、甚至在公開場合如何安排座位的時候,都會發生爭論。不用說,這些都是關鍵性的對話,你需要確保你的建議和需求能被別人聽進去,同時又不會徹底的惹惱某人(尤其是你可能還需要他的幫助)。

這本書會教給你一些工具,能夠用在你這輩子最艱難、最重要的對話中,說出你的想法,獲得讓你驚歎的正面反饋。不過光是閱讀它是不夠的,你需要在實際生活中應用這些技巧。幸運(或不幸)的是,如果你是個程式設計師的話,在進行一場關鍵對話的時候,通常你也不用想得太多。

#7 《口渴之前先挖井

給程式設計生涯充電的 10 本書

你知道在大公司中,絕大多數高階開發的職位是如何招聘的麼?如果你猜是來自內部推薦的話,那完全正確。

我可不是說你能在 Google 或者微軟得到一份開發工作,只是因為你認識裡面的誰,那隻取決於你在技術面試時候的表現。不過,如果在你感興趣的公司中有認識人的話,至少能確保你的簡歷會被 HR 看到,至少能得到一次遠端面試的機會。這可不是件容易的事,因為通常這種讓人垂涎的職位在網上至少得有幾百份簡歷會提交進來。在公司裡面有一個認識人,可能意味著你能有機會在面試中證明自己的價值。

邁向財務自由

#8 《超越華爾街:成功投資的十大守則

給程式設計生涯充電的 10 本書

我知道你很忙:如果你剛開始工作,你可能會把所有時間花在你那份新工作需要的技能上。最後你所需要的是一本金融學的專著。這本是我曾經讀過的最簡潔的,關於個人理財和投資的指導了。

這本指導會幫助你從一開始,找到通向財務自由的正確方向。在 2008 年經濟危機時,我毫不慌張地賣光了我的共同基金,其中的原因之一,就是我讀過這本書,並且深刻記住了它教給我的東西。這也讓我在最近的牛市中,通過股票獲得了 200% 的收益,這都是歸功與這本書,以及 BogleHeads 論壇(譯註:一個知名的投資論壇)。

#9 《鄰家的百萬富翁

給程式設計生涯充電的 10 本書

讓我問個直接的問題:你想要有朝一日變得富有麼?如果答案是“是”的話,那你可一定得看看這本書。它講述了百萬富翁是如何賺錢並且保持他們的財富的,這徹底改變了我的觀念。

這本書的作者花了 20 年時間採訪百萬富翁俱樂部中的精英會員,篩選出了七條規則,能夠讓你的財富變得更加持久。所以如果你想要在某一天不再擔心財務問題、真正自由的做自己喜歡的事情的花,千萬別忽略了這本書中給出的建議。

最後同樣重要的

#10 《牧羊少年奇幻之旅

給程式設計生涯充電的 10 本書

對很多程式設計師來說,當他們適應了現有的位置時,就會變得過於“慵懶”;他們不會再挑戰自己學習新技術,換句話說,不會再成長了。這相當於職業生涯的自殺。唯一能夠繼續學習和成長的方法,就是跨出你的舒適區,探索新的可能。

這個清單中的其它九本書會幫助你建立良好的技術、人際、財務平臺,從而讓你抓住自己人生道路上能夠改變命運的機會。不過,這是清單中唯一一本能讓你重燃激情,傾聽你內心深處的聲音,追尋你曾經的夢想,那些已經迷失在我們日常瑣碎生活中的夢想。

 

還在等什麼?你可以把這些書當作是自己的朋友、心理醫生和嚮導,去探險、去意識到你真正的潛力、去追尋你的夢想。不要害怕你需要學習的東西,就像那句老話說的:千里之行始於足下。祝你好運!

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

給程式設計生涯充電的 10 本書

相關文章