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