本書是IT與互聯網世界知名技術人陳皓生前文章精粹,既囊括程序員從起步到進階直至邁向卓越的優選路徑及實現方法,也覆蓋工程師從開啓職業生涯到走向管理崗位直至創辦公司的能力突破與細節修煉,更完整描繪了作者其人的獨特經歷、個性主張、人生趣味與技術理念。內容包含如何通過理解編程本質和範式、優質代碼與架構成爲有競爭力的程序員,如何通過注重高效溝通、研發效率、科學管理、合理考覈、有效招聘、工程師文化來打造技術領導力,以及如何通過正確面對三觀、技術變化、中年危機、他人評價、人生選擇、時間管理、有效學習來實現持續成長。程序員可用此書來完成快速入門與境界提升,理工科學生及技術從業者可參照此書設計職業生涯,大衆亦可從此書中覓得人生啓迪與內心觀照。
《代碼隨想錄——跟着Carl學算法》歸納了程序員面試中的經典算法題,並按照由淺入深、循序漸進的順序講解。 《代碼隨想錄——跟着Carl學算法》首先講解程序員面試時需要了解的製作簡歷的技巧和IT名企的面試流程,以及面試時經常忽略的代碼規範性問題。然後詳細分析程序的時間複雜度和空間複雜庫,包括如何把控程序的實際運行時間,以及編程語言的內存管理。接着講解數組、鏈表、哈希表、字符串、棧與隊列、二叉樹、回溯算法、貪心算法、動態規劃的理論基礎及其相關題目。 《代碼隨想錄——跟着Carl學算法》採用了力扣(LeetCode)的原題,方便讀者在學習算法的同時,及時練習相關代碼,加深對相關概念的理解。 《代碼隨想錄——跟着Carl學算法》適合所有程序員閱讀,特別是正在準備面試的程序員。希望本書可以幫助讀者循序漸進地學習算法,並搭建起知識框架,提升算法功力。
數據科學和機器學習已經深度融合到我們生活的方方面面,而數學正是開啓未來大門的鑰匙。不是所 有人生來都握有一副好牌,但是掌握“數學 + 編程 + 機器學習”絕對是王牌。這次,學習數學不再是爲了考試、分數、升學,而是投資時間、自我實現、面向未來。爲了讓大家學數學、用數學,甚至愛上數學, 在創作這套書時,作者儘量克服傳統數學教材的各種弊端,讓大家學習時有興趣、看得懂、有思考、更自信、用得着。 《數學要素:全綵圖解 + 微課 + Python編程》打破數學板塊的藩籬,將算數、代數、線性代數、幾何、解析幾何、概率統計、微積分、優化方法等板塊有機結合在一起。從加、減、乘、除四則運算講起,主要內容包括:第 1、2 章講解向量和矩陣的基本運算;第 3 章講解常用幾何知識;第 4 章講解代數知識;第 5、6 兩章介紹座標系;第 7、8、9 三章介紹解析幾何;第 10 章到第 14 章都是圍繞函數展開;第 15 章到第 19 章講解微積分以及優化問題內容;第20、21 兩章是概率統計入門;《數學要素:全綵圖解 + 微課 + Python編程》最後四章以線性代數收尾。 《數學要素:全綵圖解 + 微課 + Python編程》內容編排上突出“圖解 + 編程 + 機器學習應用”。講解一些特定數學工具時,《數學要素:全綵圖解 + 微課 + Python編程》會穿插介紹其在數據科學和機器學習領域應用場景,讓大家學以致用。 《數學要素:全綵圖解 + 微課 + Python編程》雖標榜“從加減乘除到機器學習”,但是建議讀者至少具備高中數學知識。如果讀者正在學習或曾經學過大學數學 ( 微積分、線性代數、概率統計 ),就更容易讀了。
第2版的《代碼大全》是著名IT暢銷書作者史蒂夫·邁克康奈爾11年前的經典著作的全新演繹:第2版不是第一版的簡單修訂增補,而是完全進行了重寫;增加了很多與時俱進的內容。這也是一本完整的軟件構建手冊,涵蓋了軟件構建過程中的所有細節。它從軟件質量和編程思想等方面論述了軟件構建的各個問題,並詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程序示例。這本書中所論述的技術不僅填補了初級與高級編程技術之間的空白,而且也爲程序員們提供了一個有關編程技巧的信息來源。這本書對經驗豐富的程序員、技術帶頭人、自學的程序員及幾乎不懂太多編程技巧的學生們都是大有裨益的。可以說,無論是什麼背景的讀者,閱讀這本書都有助於在更短的時間內、更容易地寫出更好的程序。
本書是經典著作《重構》出版20年後的更新版。書中清晰揭示了重構的過程,解釋了重構的原理和實踐方式,並給出了何時以及何地應該開始挖掘代碼以求改善。書中給出了60多個可行的重構,每個重構都介紹了一種經過驗證的代碼變換手法的動機和技術。本書提出的重構準則將幫助開發人員一次一小步地修改代碼,從而減少了開發過程中的風險。 本書適合軟件開發人員、項目管理人員等閱讀,也可作爲高等院校計算機及相關專業師生的參考讀物。
SQL是使用最爲廣泛的數據庫語言,幾乎所有重要的DBMS都支持SQL。本書是麻省理工學院、伊利諾伊大學等衆多大學的參考教材,由淺入深地講解了SQL的基本概念和語法,涉及數據的排序、過濾和分組,以及表、視圖、聯結、子查詢、遊標、存儲過程和觸發器等內容,實例豐富,便於查閱。與其他同類圖書不同,本書沒有過多闡述數據庫基礎理論,而是專門針對一線軟件開發人員,直接從SQL SELECT開始,講述實際工作環境中最常用和最必需的SQL知識,實用性極強。新版對書中的案例進行了全面的更新,並增加了章後挑戰題,便於讀者鞏固所學知識。
軟件質量,不但依賴架構及項目管理,而且與代碼質量緊密相關。這一點,無論是敏捷開發流派還是傳統開發流派,都不得不承認。本書提出一種觀點:代碼質量與其整潔度成正比。乾淨的代碼,既在質量上較爲可靠,也爲後期維護、升級奠定了良好基礎。作爲編程領域的佼佼者,本書作者給出了一系列行之有效的整潔代碼操作實踐。這些實踐在本書中體現爲一條條規則(或稱“啓示”),並輔以來自實際項目的正、反兩面的範例。只要遵循這些規則,就能編寫出乾淨的代碼,從而有效提升代碼質量。 本書閱讀對象爲一切有志於改善代碼質量的程序員及技術經理。書中介紹的規則均來自作者多年的實踐經驗,涵蓋從命名到重構的多個編程方面,雖爲一“家”之言,然誠有可資借鑑的價值。
《編程語言實現模式》旨在傳授開發語言應用(工具)的經驗和理念,幫助讀者構建自己的語言應用。這裏的語言應用並非特指用編譯器或解釋器實現編程語言,而是泛指任何處理、分析、翻譯輸入文件的程序,比如配置文件讀取器、數據讀取器、模型驅動的代碼生成器、源碼到源碼的翻譯器、源碼分析工具、解釋器,以及諸如此類的工具。爲此,作者舉例講解已有語言應用的工作機制,拆解、歸納出31種易於理解且常用的設計模式(每種都包括通用數據結構、算法、策略)。雖然示例是用Java編寫的,但相信讀者可以觸類旁通,利用這些設計模式構建針對其他編程語言(既包括特定領域語言,也包括通用編程語言)的應用。
重構,一言以蔽之,就是在不改變外部行爲的前提下,有條不紊地改善代碼。多年前,正是本書原版的出版,使重構終於從編程高手們的小圈子走出,成爲衆多普通程序員日常開發工作中不可或缺的一部分。本書也因此成爲與《設計模式》齊名的經典著作,被譯爲中、德、俄、日等衆多語言,在世界範圍內暢銷不衰。 本書凝聚了軟件開發社區專家多年摸索而獲得的寶貴經驗,擁有不因時光流逝而磨滅的價值。今天,無論是重構本身,業界對重構的理解,還是開發工具對重構的支持力度,都與本書最初出版時不可同日而語,但書中所蘊涵的意味和精華,依然值得反覆咀嚼,而且往往能夠常讀常新。
《x86彙編語言》第二版有以下變化: 1. 在書的前面添加基礎性的內容,用來說明彙編語言的由來和必要性,說明彙編語言編程的特點,以期平滑自然地進入彙編語言主題; 2. 原書中對指令系統及x86指令格式的描述過於簡略,此版增補這部分內容; 3. 讀者普遍反映第14章太難太緊湊,此版將相關內容拆分,降低學習的難度; 4. 整個保護模式部分以現在的觀點來看,內容組織不夠合理,予以重新組織,配書代碼重新編寫和組織; 5. 原書中有模糊的錯誤的表述,此版予以更正。