天天看點

這些書都學完,絕對是程式設計界的大佬

這些書都學完,絕對是程式設計界的大佬

你好,我是看山。

今天列一下技術相關的書單,本文是第一版,後續持續更新。

文中提到的部分書目我也沒有讀過,作為todo list,明确接下來一段時間的學習方向。

Java

因為本人屬于Java棧,是以主要推薦的還是屬于Java領域内的書目。

  • 《Java核心技術:卷I 基礎知識》:本書由擁有20多年教學與研究經驗的資深Java技術專家撰寫(獲Jolt大獎),是程式員的優選Java指南。無論是Java初學者還是有一定經驗的Java工程師,這是一本非常不錯的值得時常翻閱的技術手冊。
  • 《Java程式設計思想》:從Java的基礎文法到最進階特性(深入的面向對象概念、多線程、自動項目建構、單元測試和調試等),本書都能逐漸指導你輕松掌握。屬于經典書目,可能很多Java棧的程式猿,都是從這本書開始的。
  • 《Java程式設計的邏輯》:Java專家撰寫,力求透徹講解每個知識點,逐漸建立程式設計知識圖譜。本書以Java語言為例,由基礎概念入手,到背後實作原理與邏輯,再到應用實踐,融會貫通。
  • 《Effective Java》:模仿《Effective C++》而成,一共包含90個條目,每個條目讨論Java程式設計中的一條規則。這些規則反映了最有經驗的優秀程式員在實踐中常用的一些有益的做法。前人的經驗之作,想要升階,這本書一定繞不開。最好是看第三版的,增加了Java 8的規則。
  • 《Head First Java》:完整的面向對象(object-oriented,OO)程式設計和Java的學習指導。此書是根據學習理論所設計的,讓你可以從學習程式語言的基礎開始一直到包括線程、網絡與分布式程式等項目。最重要的,你會學會如何像個面向對象開發者一樣去思考。而且不隻是讀死書,你還會玩遊戲、拼圖、解謎題以及以意想不到的方式與Java互動。在這些活動中,你會寫出一堆真正的Java程式,包括了一個船艦炮戰遊戲和一個網絡聊天程式。
  • 《Java并發程式設計實戰》:深入淺出地介紹了Java線程和并發,是一本完美的Java并發參考手冊。書中從并發性和線程安全性的基本概念出發,介紹了如何使用類庫提供的基本并發建構塊,用于避免并發危險、構造線程安全的類及驗證線程安全的規則,如何将小的線程安全類組合成更大的線程安全類,如何利用線程來提高并發應用程式的吞吐量,如何識别可并行執行的任務,如何提高單線程子系統的響應性,如何確定并發程式執行預期任務,如何提高并發代碼的性能和可伸縮性等内容,最後介紹了一些進階主題,如顯式鎖、原子變量、非阻塞算法以及如何開發自定義的同步工具類。
  • 《Java性能權威指南》:通過使用JVM和Java平台,以及Java語言和應用程式接口,本書詳盡講解了Java性能調優的相關知識,幫助讀者深入了解Java平台性能的各個方面,最終使程式如虎添翼。
  • 《Java系統性能優化實戰》:基于作者在實際工作中遇到的與系統相關的問題及解決之道,通過改善代碼來提高系統性能,解決因為代碼導緻的系統故障。國人寫的新書也很好,一些細節,一些過時的傳言,作者都用jmh給測了。
  • 《Java性能優化實踐:JVM調優政策、工具與技巧》:本書從實驗科學的角度探讨了Java性能優化的方方面面,重點闡述了最新的實用JVM性能調優政策、工具和技巧。通過本書,我們不僅可以了解Java原理和技術如何充分利用現代硬體和作業系統、衡量Java性能的陷阱以及微基準測試的弊端有哪些,還能深入研究可能使團隊煩惱的幾種性能測試和常見反模式、JVM垃圾收集、JIT編譯和Java語言性能技術等。
  • 《Spring實戰》:一本經典而實用的暢銷Spring 學習指南。
  • 《SpringBoot實戰》:Spring應用程式開發為中心,全面講解如何運用Spring Boot提高效率,使應用程式的開發和管理更加輕松有趣。
  • 《精通Spring 4.x》:雖然現在都已經是Spring 5.x了,但是Spring的基礎并沒有變,本書把應用和原理都講的很透徹,IoC和AOP分析的很棒,娓娓道來。
  • 《深入了解Java虛拟機》:這是一部從工作原理和工程實踐兩個次元深入剖析JVM的著作,是計算機領域公認的經典。
  • 《實戰Java虛拟機:JVM故障診斷與性能優化》:本書将通過200餘個示例詳細介紹JVM中的各種參數配置、故障排查、性能監控及性能優化,幫助Java人突破瓶頸。
  • 《新一代垃圾回收器ZGC設計與實作》:有了ZGC,就忘記CMS,G1什麼的吧。ZGC 所針對的是這些在未來普遍存在的大容量記憶體:TB 級别的堆容量,具有很低的停頓時間(小于 10 毫秒),對整體應用性能的影響也很小(對吞吐量的影響低于 15%)。ZGC 所采用的機制也可以在未來進行擴充,以支援一些令人興奮的特性,如多層堆(用于熱對象的 DRAM 和用于低頻通路對象的 NVMe 閃存)。
  • 《深入了解JVM位元組碼》:這是一本揭示JVM位元組碼“黑科技”的著作,它從原理和應用兩個次元深入剖析了JVM位元組碼。書中内容涉及JVM位元組碼的大部分應用場景,如Java性能優化、軟體防護與破解、APM等,通過大量實戰案例講解了它在這些場景中的實操技巧。
  • 《Java實戰》:現代Java應用充分利用了微服務、反應式架構以及流式資料等創新設計。現代Java特性,譬如Lambda、流以及大家期待已久的Java子產品系統讓這些設計的實作極其便利。是時候更新技能工具箱了,隻有這樣,你才能從容應對迎面而來的種種挑戰!
  • 《Java8實戰》:本書全面介紹了Java 8 這個裡程碑版本的新特性,包括Lambdas、流和函數式程式設計。有了函數式的程式設計特性,可以讓代碼更簡潔,同時也能自動化地利用多核硬體。
  • 《實戰Java高并發程式設計》:主要介紹基于Java的并行程式設計基礎、思路、方法和實戰。第一,立足于并發程式基礎,詳細介紹Java進行并行程式設計的基本方法。第二,進一步詳細介紹了JDK對并行程式的強大支援,幫助讀者快速、穩健地進行并行程式開發。第三,詳細讨論了“鎖”的優化和提高并行程式性能級别的方法和思路。第四,介紹了并行的基本設計模式,以及Java 8/9/10對并行程式的支援和改進。第五,介紹了高并發架構Akka的使用方法。第六,詳細介紹了并行程式的調試方法。第七,分析Jetty代碼并給出一些其在高并發優化方面的例子。

作業系統

  • 《深入了解計算機系統》:這本書是程式員必讀的一本書,這本書最大的優點是為程式員描述計算機系統的實作細節,幫助其在大腦中構造一個層次型的計算機系統。從最底層的資料在記憶體中的表示到流水線指令的構成,到虛拟存儲器,到編譯系統,到動态加載庫,到最後的使用者态應用。通過掌握程式是如何映射到系統上,以及程式是如何執行的,你能夠更好的了解程式的行為為什麼是這樣的,以及效率底下是如何造成的。
  • 《計算機網絡》:經典的計算機網絡教材,采用作者獨創的自頂向下方法來講授計算機網絡的原理及其協定。
  • 《UNIX環境進階程式設計》:UNIX程式設計“聖經”
  • 《UNIX網絡程式設計:卷1》:UNIX程式設計“聖經”
  • 《UNIX網絡程式設計:卷2》:UNIX程式設計“聖經”。可以看到,三本聖經,都是大部頭很難啃的書,比較枯燥。修行路就是比較枯燥的。
  • 《TCP/IP詳解 卷1:協定》:本書内容豐富、概念清晰、論述詳盡,适合任何希望了解TCP/IP協定實作的人閱讀,更是TCP/IP領域研究人員和開發人員的權威參考書。無論是初學者還是功底深厚的網絡領域高手,本書都是案頭必備。
  • 《Wireshark資料包分析實戰》:從資料包分析與資料包嗅探器的基礎知識開始,循序漸進地介紹Wireshark的基本使用方法及其資料包分析功能特性,同時還介紹了針對不同協定層與無線網絡的具體實踐技術與經驗技巧。在此過程中,作者結合大量真實的案例,圖文并茂地示範使用Wireshark進行資料包分析的技術方法,使讀者能夠順着本書思路逐漸掌握網絡資料包嗅探與分析技能。
  • 《鳥哥的Linux私房菜:基礎學習篇》:講解細緻,深入淺出。可以對計算機和作業系統,以及Linux有一個非常全面的了解,并能夠管理或者操作好一個Linux系統。
  • 《現代作業系統》:這本書是作業系統領域的經典之作,書中集中讨論了作業系統的基本原理,包括程序、線程、存儲管理、檔案系統、輸入/輸出、死鎖等,同時還包含了有關計算機安全、多媒體作業系統、掌上計算機作業系統、微核心、多核處理器上的虛拟機以及作業系統設計等方面的内容。
  • 《計算機程式的構造和解釋》:在過去的二十多年裡,對于計算機科學的教育計劃産生了深刻的影響。

資料庫

  • 《MySQL必知必會》:書中從介紹簡單的資料檢索開始,逐漸深入一些複雜的内容,包括聯結的使用、子查詢、正規表達式和基于全文本的搜尋、存儲過程、遊标、觸發器、表限制,等等。
  • 《SQL必知必會》:本書是深受世界各地讀者歡迎的SQL經典暢銷書,内容豐富,文字簡潔明快,針對Oracle、SQL Server、MySQL、DB2、PostgreSQL、SQLite等各種主流資料庫提供了大量簡明的執行個體。與其他同類圖書不同,它沒有過多闡述資料庫基礎理論,而是專門針對一線軟體開發人員,直接從SQL SELECT開始,講述實際工作環境中最常用和最必需的SQL知識,實用性極強。
  • 《資料庫系統概念》:本書是資料庫系統方面的經典教材之一,其内容由淺入深,既包含資料庫系統基本概念,又反映資料庫技術新進展。它被國際上許多著名大學所采用,包括斯坦福大學、耶魯大學、得克薩斯大學、康奈爾大學、伊利諾伊大學等。

資料結構與算法

  • 《算法》:算法領域的經典參考書。不但全面介紹了關于算法和資料結構的必備知識,還給出了每位程式員應知應會的50個算法,并提供了實際代碼。最不錯的是,其深入淺出的算法介紹,讓一些比較難的算法也變得容易了解。其中,還有大量的圖解,詳盡的代碼和講解。
  • 《算法圖解》:本書示例豐富,圖文并茂,以讓人容易了解的方式闡釋了算法,旨在幫助程式員在日常項目中更好地發揮算法的能量。
  • 《算法導論》:本書将嚴謹性和全面性融為一體,深入讨論各類算法,并着力使這些算法的設計和分析能為各個層次的讀者接受。全書各章自成體系,可以作為獨立的學習單元;算法以英語和僞代碼的形式描述,具備初步程式設計經驗的人就能看懂;說明和解釋力求淺顯易懂,不失深度和數學嚴謹性。
  • 《程式設計珠玑》:曆史上最偉大的計算機科學著作之一。在書中,作者選取許多具有典型意義的複雜程式設計和算法問題,生動描繪了曆史上衆大師們在探索解決方案中發生的轶事、走過的彎路和不斷精益求精的曆程,引導讀者像真正的程式員和軟體工程師那樣富于創新性地思考,并透徹闡述和總結了許多獨特而精妙的設計原則、思考和解決問題的方法以及實用程式設計技巧。解決方案的代碼均以C/C++語言編寫,不僅有趣,而且有很大的實戰示範意義。每章後所附習題極具挑戰性和啟發性,書末給出了簡潔的解答。
  • 《資料結構與算法分析:Java語言描述》:是國外資料結構與算法分析方面的經典教材,使用卓越的Java程式設計語言作為實作工具讨論了資料結構(組織大量資料的方法)和算法分析(對算法運作時間的估計)。

程式設計素養

  • 《代碼整潔之道》:代碼品質與其整潔度成正比。幹淨的代碼,既在品質上較為可靠,也為後期維護、更新奠定了良好基礎。作為程式設計領域的佼佼者,本書作者給出了一系列行之有效的整潔代碼操作實踐。這些實踐在本書中展現為一條條規則(或稱“啟示”),并輔以來自現實項目的正、反兩面的範例。隻要遵循這些規則,就能編寫出幹淨的代碼,進而有效提升代碼品質。
  • 《程式員修煉之道》:由一系列的獨立的部分組成,涵蓋的主題從個人責任、職業發展,直到用于使代碼保持靈活、并且易于改編和複用的各種架構技術。
  • 《重構 改善既有代碼的設計》:重構,一言以蔽之,就是在不改變外部行為的前提下,有條不紊地改善代碼。多年前,正是本書原版的出版,使重構終于從程式設計高手們的小圈子走出,成為衆多普通程式員日常開發工作中不可或缺的一部分。本書也是以成為與《設計模式》齊名的經典著作,被譯為中、德、俄、日等衆多語言,在世界範圍内暢銷不衰。
  • 《設計模式》:這本書結合設計實作例從面向對象的設計中精選出23個設計模式,總結了面向對象設計中最有價值的經驗,并且用簡潔可複用的形式表達出來。書中分類描述了一組設計良好、表達清楚的軟體設計模式,這些模式在實用環境下特别有用。此書适合大學計算機專業的學生、研究所學生及相關人員參考。
  • 《Head First 設計模式》:一本設計模式入門書籍,用實際的程式設計案例講解算法設計中會遇到的各種問題和需求變更,并以此逐漸推導出良好的設計模式解決辦法。
  • 《設計模式就該這樣學:基于經典架構源碼和真實業務場景》:本書從軟體架構設計必備的通用技能UML開始,重點介紹常用的類圖和時序圖;然後介紹軟體架構設計常用的七大原則;接着結合JDK、Spring、MyBatis、Tomcat、Netty等經典架構源碼對GoF的23種設計模式展開分析,并結合作者多年“踩坑填坑”和“教學答疑”經驗,用深刻、全面、通俗、生動、有趣、接地氣的方式結合真實業務場景分析每種設計模式,治愈“設計模式選擇困難症”;之後介紹4種常用的新設計模式;最後總結軟體架構、設計模式與應用架構之間的差別。
  • 《代碼大全》:一本完整的軟體建構手冊,涵蓋了軟體建構過程中的所有細節。它從軟體品質和程式設計思想等方面論述了軟體建構的各個問題,并詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程式示例。這本書中所論述的技術不僅填補了初級與進階程式設計技術之間的空白,而且也為程式員們提供了一個有關程式設計技巧的資訊來源。這本書對經驗豐富的程式員、技術帶頭人、自學的程式員及幾乎不懂太多程式設計技巧的學生們都是大有裨益的。可以說,無論是什麼背景的讀者,閱讀這本書都有助于在更短的時間内、更容易地寫出更好的程式。
  • 《程式設計的原則:改善代碼品質的101個方法》:本書介紹了軟體開發領域101個重要的程式設計原則,涉及程式設計中的永恒真理,指導方針,程式設計思想,程式員的視角、習慣和工具,以及程式設計的反模式等内容。書中以“這個原則是什麼”“為什麼要遵循這個原則”“具體應該怎麼做”為中心,對各個原則進行介紹,簡明扼要,通俗易懂。這些原則凝聚了前人的智慧,經過了曆史的考驗,是指導程式員改善代碼、進一步提升程式設計能力的實用指南。

架構

  • 《軟體架構設計》:圍繞軟體架構設計,系統化地梳理技術架構與業務架構的方法論與實踐。
  • 《架構師修煉之道:思維、方法與實踐》:作者結合多年的架構學習和項目開發經驗,總結出一套架構學習的體系,從技術方法、思維意識、工具等方面講解做好網際網路後端架構設計的相關知識。通過相關知識的學習,讀者能夠掌握設計穩定、易維護、易擴充的軟體架構的方法,也能夠提升日常維護已有項目的能力。書中講解的技術方法具有通用性,在其他非網際網路行業的軟體開發中,也具有借鑒意義。
  • 《釋出!設計與部署穩定的分布式系統》:作者根據自己的親身經曆和某些大型企業的案例,講述了如何建立高穩定性的軟體系統,分析了設計和實作中導緻系統出現問題的原因。
  • 《可伸縮架構:雲環境下的高可用與風險管理》:一本關于現代化軟體架構的書。書中介紹了如何建構和更新你的關鍵應用程式來滿足日益苛刻的數字化客戶的需求。書中還介紹了如何實作高可用性,如何使用現代化的開發和運維技術來架構應用程式,如何組織開發團隊幫助應用程式和業務獲得成功,如何将系統擴充到最大規模,以及如何利用雲計算的可用資源來迎接上述挑戰。
  • 《攜程架構實踐》:本書濃縮了攜程公司的整個技術架構,可以幫助讀者了解支撐一家大型企業所需要的核心技術産品,以及它們的架構和面臨的挑戰。
  • 《架構師應該知道的37件事》:本書彙集了一名架構師20多年來在全球各大企業任職的經驗,共分為5個部分,分别對應在幫助大型企業進行IT轉型的過程中,首席架構師必須高效處理的5個方面:企業或IT架構師的角色和能力、架構工作在大型企業中的價值、與各種幹系人的溝通、對組織結構和系統的了解、對傳統組織進行轉型。本書科學而系統地歸納出軟體架構師應該具備的完整能力模型,不僅幫助軟體開發人員系統地學習如何掌握這37項技能,而且還能讓他們進一步了解軟體架構師的角色和本質,使他們最終突破技術“天花闆”,成為一名合格的軟體架構師。
  • 《微服務設計》:本書全面介紹了微服務的模組化、內建、測試、部署和監控,通過一個虛構的公司講解了如何建立微服務架構。
  • 《微服務治理:體系、架構及實踐》:在微服務技術流行的當下,企業在實施微服務架構的時候,會對整個研發體系,包括開發、運維、團隊組織、協同都帶來沖擊。是以必須建構起一整套以服務治理為核心、從線下到線上的新的能力體系來支撐這套新的架構技術,否則很難保證微服務架構的順暢落地。 本書是作者多年服務治理經驗總結,希望能夠給仍在(微)服務治理迷局中奪路狂奔的計算機技術人員一點啟發和指引。
  • 《企業級業務架構設計:方法論與實踐》:作者是一位資深的業務架構師,在金融行業工作超過19年,有豐富的大規模複雜金融系統業務架構設計和落地實施經驗。作者在書中倡導“知行合一”的業務架構思想,全書内容圍繞“行線”和“知線”兩條主線展開。“行線”涵蓋企業級業務架構的戰略分析、架構設計、架構落地、長期管理的完整過程,“知線”則重點關注架構方法論的持續改良。
  • 《架構整潔之道》:創造“Clean神話”的Bob大叔在架構領域的登峰之作,圍繞“架構整潔”這一重要導向,系統地剖析其緣起、内涵及應用場景,涵蓋軟體研發完整過程及所有核心架構模式。
  • 《領域驅動設計:軟體核心複雜性應對之道》:全書圍繞着設計和開發實踐,結合若幹真實的項目案例,向讀者闡述如何在真實的軟體開發中應用領域驅動設計。書中給出了領域驅動設計的系統化方法,并将人們普遍接受的一些最佳實踐綜合到一起,融入了作者的見解和經驗,展現了一些可擴充的設計最佳實踐、已驗證過的技術以及便于應對複雜領域的軟體項目開發的基本原則。

持續傳遞

  • 《持續傳遞:釋出可靠軟體的系統方法》:講述如何實作更快、更可靠、低成本的自動化軟體傳遞,描述了如何通過增加回報,并改進開發人員、測試人員、運維人員和項目經理之間的協作來達到這個目标。
  • 《持續傳遞2.0》:本書重新定義了“持續傳遞”,增補了組織管理和系統架構兩個次元,并輔助以真實案例,對諸多持續傳遞原則與實踐加以解讀,并對持續傳遞過程中的實踐取舍之道加以論述。
  • 《學習靈活:建構高效團隊》:本書以靈活軟體開發為中心,系統闡述了靈活原則和實踐的先進理念和重要意義,并分别講解了Scrum、極限程式設計、精益和看闆四套靈活實踐的應用。作者從開發團隊的日常困境入手,用講故事的形式展開問題,由表及裡,層層講解,并在每一章最後附上參考書,便于讀者進一步查找學習。本書内容生動,語言通俗易懂,集趣味性和實用性于一體,是學習靈活開發、提升團隊效率的極佳參考書。
  • 《SRE: Google運維解密》:Google SRE的關鍵成員解釋了他們是如何對軟體進行生命周期的整體性關注的,以及為什麼這樣做能夠幫助Google成功地建構、部署、監控和運維世界上現存最大的軟體系統。
  • 《進化:運維技術變革與實踐探索》:本書依托作者在電信和網際網路行業多年的從業經曆,結合一線實際工作實踐,從應用生命周期的視角,全面詳細地介紹了分布式架構體系下,應用運維體系建設的方方面面,涵蓋了體系建設方法論指導、持續傳遞體系建設思路和實踐、穩定性體系規劃建設,以及故障的科學管理方法等内容,視角新穎且獨特,換一個角度看運維,能夠帶給讀者不一樣的思考方式。

參考

  • 左耳朵耗子在《程式員練級攻略》推薦的必讀書籍清單,關注【公衆号:看山的小屋】,回複“左耳”領取。如果想要付費訂閱《左耳聽風》,可以點這裡,購買成功的話在公衆号留言找我返現。
  • 江南白衣的書單

你好,我是看山,公衆号:看山的小屋,10 年老猿,開源貢獻者。遊于碼界,戲享人生。

個人首頁:https://www.howardliu.cn

個人博文:程式員進階書單2021版

CSDN 首頁:http://blog.csdn.net/liuxinghao

CSDN 博文:程式員進階書單2021版

這些書都學完,絕對是程式設計界的大佬