程序員老實、愛學習,也是最有危機感的群體之一,他們每天在GitHub、各大技術論壇上如饑似渴地汲取對自己最有幫助的技術知識,同時怕時間精力跟不上高強度的程序員工作。
為此,我們基于華為云各個產品線技術專家多年工作經驗和心得體會,再經過層層篩選整理,推出了這份程序員進階必讀書單。
無論是1年小白、5年資深還是10年技術專家,或者更高階的CTO,都可以在書單中找到適合自己目前階段的書,清晰化未來要走的方向,讓路越走越寬,財富累、技能累積、經驗累積也會愈發(fā)順利。
第一階段:初級程序員(0-3年)
初級程序員工作經驗在3年以下,處于打基礎、定方向的階段,這時候建議主要精力用于夯實基礎,規(guī)范編程上,將會終身受益。
了解自己所在的領域,對吃飯的工具有清晰的認知
《編碼:隱匿在計算機軟硬件背后的語言》
豆瓣評分:9.2分
這本書常年排在程序員必讀書單TOP5內,作者用豐富的想象將看似繁雜的計算機工作原理闡述得通俗易懂。比如讀的時候,你會驚訝地發(fā)現(xiàn)把電線、電燈泡、觸發(fā)器這些常見的零件拼拼接接,最后居然可以建造一臺電子計算機,在這個過程中,還順便學了數(shù)理邏輯、布爾代數(shù)、組合數(shù)學、集合、物理、化學和電子學。
代碼是一個程序員的靈魂,每個優(yōu)秀的程序員都應該認真對待親手寫出的代碼
《代碼整潔之道》
豆瓣評分:8.6分
閱讀這本書有兩種原因:第一,你是個程序員;第二,你想成為更好的程序員。
作者Bob大叔給出了一系列整潔代碼操作實踐,并用實際項目的正、反案例,說明只要遵循這些規(guī)則,就能編寫出干凈的代碼,從而有效提升代碼質量。而干凈的代碼,既容易理解、質量可靠,而且讓項目更容易啟動和延續(xù),也為后期維護、升級奠定了良好基礎。
從實際問題出發(fā),讓自己的編程語言和思維更上一層樓
《編程珠璣》
豆瓣評分:9.1分
作者Jon Bentley可以說是計算機科學大家培養(yǎng)專業(yè)戶,Java之父James Gosling就是他的學生。他選取了典型的復雜編程和算法問題,生動描繪大師們在探索解決方案中發(fā)生的軼事、走過的彎路和不斷精益求精的歷程,總結了許多獨特而精妙的設計原則、思考和解決問題的方法以及實用程序設計技巧。比如和Bob Martin討論密西西比河一天流出多少水,用這樣一個小問題引出粗略估算的技巧。
多學點算法和數(shù)據結構,提高編程水平
《數(shù)據結構和算法分析(套書)》
豆瓣均分:8.7分
國內外很多大學都拿它當作教材,這套書非常系統(tǒng)、全面、嚴謹,適合對數(shù)據結構和算法有些基本了解,并且掌握了至少一門編程語言的程序員。而且,作者用了C\C++\Java三種語言分別寫了三個版本。被眾多程序員選為最好的算法入門書,看完了這本書再看其它算法書,會很有底氣。
初級程序員必備軟技能,學習職業(yè)規(guī)劃、自我營銷
《軟技能—代碼之外的生存指南》
豆瓣評分:8.0分
概括了軟件行業(yè)從業(yè)人員所需的“軟技能”,從揭秘面試的流程到精耕細作出一份殺手級簡歷,從創(chuàng)建大受歡迎的博客到打造個人IP,從提高自己工作效率到與如何與“拖延癥”做斗爭,甚至包括如何投資不動產,如何關注自己的健康,堪稱程序員的生活百科全書。
這個階段的程序員童鞋,有的想深入學習某一門主流開發(fā)語言,例如Java,則可以進行由淺到深的學習、實訓,熟練使用Java進行面向對象設計(查看JAVA學習路線)。如果想對于自己所學做一個初步應用,可嘗試從最初級的網站建設開始(查看學習路線),從0學起,從HTML、CSS基礎課程開始,到頁面腳本、頁面框架等,可以輕松上手網站搭建。
第二階段:中高級程序員(3-5年)
從部門新人變?yōu)槔先撕螅枰獙ψ约旱穆殬I(yè)規(guī)劃有明確方向,如果選擇專攻技術,必然要多學習,進一步提高業(yè)務能力和技術能力,積累優(yōu)質的項目經驗。
《重構:改善既有代碼的設計》
豆瓣評分:9.0分
重構,就是在不改變外部行為的前提下,有條不紊地改善代碼。本書凝聚了軟件開發(fā)社區(qū)專家多年實踐經驗,解釋重構的原理和最佳實踐方式,并指出何時何地應該開始挖掘你代碼以求改善。
整本書第三章“代碼壞味”,寫的很有用。什么是代碼的壞味道,如何消除這些壞味道,這是一本關于代碼美學的一本書,培養(yǎng)碼農那高貴的code taste的不二選擇。
總有不合理的軟件項目存在,如何避免犯一些經典錯誤
《快速軟件開發(fā)》
豆瓣評分:8.4分
軟件開發(fā)處處都是陷阱,作者告訴你前人都踩了哪些坑。本書總結了以微軟為代表的美國軟件業(yè)的項目實踐經驗,并列出了可以提高項目開發(fā)速度的方法和技巧。比如,過緊或不合理的進度計劃可能是軟件開發(fā)唯一最具破壞力的殺手,所以開發(fā)人員要提高談判能力,合理規(guī)劃項目進度。
技術能力之外,提高工作效率很重要
《高效程序員的45個習慣》
豆瓣評分:8.2分
總結高效程序員在開發(fā)過程中的45個個人習慣、思想觀念和方法,有助于開發(fā)人員在開發(fā)進程、編碼工作、開發(fā)者態(tài)度、項目和團隊管理,以及持續(xù)學習等方面積極修煉。養(yǎng)成這些好的習慣,可以極大地提升自己的編程實力,更快速、更可靠地交付更高質量的軟件,從而成為真正的高效程序員。
程序員職業(yè)生涯到了一定階段,系統(tǒng)地思考職業(yè)發(fā)展】
《軟技能2:軟件開發(fā)者職業(yè)生涯指南》
豆瓣評分:9.0分
了解軟件開發(fā)從業(yè)者需要具備的各種“軟技能”,包括如何選擇工作崗位、如何選擇技術方向、如何拓展技術技能、如何與團隊和領導融洽相處等等。
培養(yǎng)專業(yè)的軟件開發(fā)素養(yǎng),具備良好的編程實踐
《程序員修煉之道:通向務實的最高境界(第2版)》
豆瓣評分:9.2
理解身為一名程序員到底意味著什么,本書通過許多富有娛樂性的奇聞軼事、有思想性的例子以及有趣的類比,全面闡釋了軟件開發(fā)的最佳實踐和重大陷阱。書中有一章的標題是“我的源碼被貓吃了”,其實說的是當你發(fā)現(xiàn)問題時,重要的是解決它,而不是把錯誤推給“貓”。華為云資深架構師董老師在“云享讀書會”領讀過這本書,拆解書中精華知識,學練結合,拒絕紙上談兵。
這一階段的程序員可以拓寬邊界,學習新的技術和知識,為下一步的職業(yè)進階未雨綢繆,此時找準熱門領域很重要。
第三階段:全棧工程師/軟件設計師
(5-10年)
這個時期的程序員,或多或少要開始思考職業(yè)拐點:是繼續(xù)做一名底層碼農,還是往前走兩步,成為一個優(yōu)秀的全棧工程師或者軟件設計師。
無論是前后端技術一把手的全棧工程師,還是有程序設計能力的軟件設計師,都得精通多門編程語言,有系統(tǒng)性的技術能力。前幾年打好技術基礎后,此時更要注重技術之外的軟件開發(fā)細節(jié),讓自己的工作更勝一籌。
全棧工程師必備技能之協(xié)調客戶、管理好項目
《人月神話》
豆瓣評分:8.4分
軟件領域的圣經,內容源于作者在IBM公司System/360家族和OS/360中的項目管理經驗。書名中的“人月”指的是一個人在一個月內完成的工作,“神話”指通過人手來縮短項目實踐是神話。
雖然書里很多概念、例子、技術都屬于上古時期的遺跡了,但是書里介紹的軟件開發(fā)的困難、管理的思路,仍然可以在今天的軟件開發(fā)中找到對應的場景。
全棧工程師培養(yǎng)可用性思維
《點石成金 : 訪客至上的Web和移動可用性設計秘笈》
豆瓣評分:8.2分
一本關于Web設計原則而不是Web設計技術的書,作者用幽默的語言揭示Web設計中重要但卻容易被忽視的問題,只需幾個小時,便能對照書中講授的設計原則找到網站設計的癥結所在,常看常新。
軟件設計模式領域的里程碑著作
《設計模式》
豆瓣評分:9.1分
設計模式不是語法規(guī)定,而是一套用來提高代碼可復用性、可維護性、可讀性以及安全性的解決方案,一般的大型項目開發(fā)或者框架設計,都會用設計模式來組織代碼。
本書從面向對象的設計中精選出23個設計模式,面向對象開發(fā)必讀,雖然隨著動態(tài)語言的發(fā)展,很多模式都已經融入到語言當中,但是作為一個好的開發(fā)者,這本書講的不是模式本身,而是模式的軌跡。
轉變一下程序員的思維,認識交互設計的重要性
《交互設計之路》
豆瓣評分:7.9分
雖然書中不乏“黑”程序員的橋段,但卻是程序員很好的交互設計啟蒙書。作者通過列舉真實案例,討論由于產品設計中存在“認知摩擦”引起的“難用”問題,講述如何創(chuàng)建更好的、高客戶忠誠度的軟件產品和基于軟件的高科技產品。
面對漫長的職業(yè)生涯,靜下心來追求“良質”
《禪與摩托車維修藝術》
豆瓣評分:8.3分
一本非典型的適合程序員閱讀的哲學書,霍金、喬布斯都曾推薦過。書中講述作者和兒子 騎摩托車旅游路途所悟到的“禪”,其中最關鍵的就是“良質”。
舉個例子,寫程序跟維修摩托車一樣,有時候會枯燥、機械且乏味,但如果用“良質”的境界用心去對待這件事,找到內心的平衡,最好能達到“物我兩忘”的境界,最終的結果就是另一番局面了。
從初級程序員進階為全能手,需要持之以恒的學習吸收各種技術知識。全棧工程師是個不錯的選擇,感興趣的童鞋可以通過華為云的學習體驗中心了解:JAVA開發(fā)全棧成長計劃、WEB前端全棧成長計劃、IoT物聯(lián)網全棧成長計劃、AI人工智能全棧成長計劃,幫助你度過技術轉型過渡期,成為一個優(yōu)秀的全棧工程師。
第四階段:架構師、CTO(10年以上)
恭喜你,已經進階到程序員的金字塔頂端了! 入行有10多年經驗的你,有過項目開發(fā)經歷,精通多門編程語言且熟悉數(shù)據庫,對行業(yè)、技術、產品都有了深層次的認識,帶好團隊成為更關鍵的業(yè)務能力。
為解決架構設計模式中的“疑難雜癥”打開思路
《企業(yè)應用架構模式》
豆瓣評分:8.3分
將40多種常見的解決方案轉化成模式,每個模式都給出使用方法和實現(xiàn)信息,并配以詳細的Java代碼或C#代碼示例。
雖然書中有些內容放在現(xiàn)在有點過時,但如網友所言,在今天的開發(fā)思想環(huán)境下,也許再也不會出來這樣一本重量級的企業(yè)架構模式的書,甚至其中的很多模式會被覺得太重,太Java/.NET,但這才是真正的大型軟件項目應有的架構模式,值得每一個程序員細細品味。
跟著國外技術大佬學團隊管理
《極客與團隊》
豆瓣評分:8.3分
程序員辦公室政治指南,谷歌技術大佬以自身的經歷為基礎,闡明了團隊合作的重要性,提出了加強合作的具體方法,并輔以實例進行了深入分析。全文主要從三個角度介紹了團隊合作的方法:如何處理團隊中有關人的方面;如何在良好或不佳的公司中工作;如何與用戶合作創(chuàng)造更出眾的產品。
帶領團隊完成敏捷轉型
《敏捷轉型:打造VUCA時代的高效能組織》
豆瓣評分:9.2分
為了幫助更多期待轉型或者處于轉型過程中的企業(yè)走出誤區(qū)、突破阻礙,本書重點闡述了敏捷轉型的步驟、方法和策略,用大量真實的案例,生動還原敏捷轉型容易走入的誤區(qū),以及企業(yè)在轉型過程中常見的疑惑。
從技術人員轉型為領導者,系統(tǒng)提高技術領導力
《成為技術領導者》
豆瓣評分:8.3分
很多技術人員固有思維會阻礙真正的交流,甚至忽略真正的問題,這本書能夠清晰的指出這些事情。
作為一名成功領導者所必須掌握的領導方法與技巧——創(chuàng)新、激勵和組織(MOI模型)。本書提出了一些方法,供技術人員分析自己在這三個方面的領導技巧,并提供了開發(fā)這些技巧所需的實踐步驟。
架構師也好,CTO也罷,管理團隊有時候比技術能力更重要
《人件》
豆瓣評分:8.2分
從管理人力資源、創(chuàng)建健康的辦公環(huán)境、雇用并留用正確的人、高效團隊形成、改造企業(yè)文化和快樂工作等多個角度,闡釋了如何思考和管理軟件開發(fā)的最大問題——人(而不是技術),以得到高效的項目和團隊。
本書的一個基本出發(fā)點就是,管理者不應該把員工看作冷冰冰的機器或可隨時替換的零件,而應尊重他們的生物、社會屬性,當成有血有肉的“人件”來管理。
結語:
關于程序員是否吃青春飯,一直是火熱討論的話題,無論哪一行,多思考多總結,“拓寬舒適圈”就會比“跳出舒適圈”更容易達到。
對于多數(shù)程序員來說,40歲之前賺到別人60歲的錢是普遍目標,不過職業(yè)的進階也印證著人生的進階,所以何時開始思考未來的職業(yè)規(guī)劃,都不算早。
以上列舉的20本書,雖然不能做到面面俱到,但可以從“術”的層面,為想要擺脫焦慮、走上技術進階之路的程序員指點迷津,鉆研出職業(yè)進階的“道”。歡迎大家收藏本書單,閱讀計劃安排起來!
-END-
本文摘自華為云社區(qū),作者:技術火炬手
推薦閱讀
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!