主頁 >  其他 > 每個程式員都應該閱讀的最有影響力的書是什么?

每個程式員都應該閱讀的最有影響力的書是什么?

2021-12-21 07:38:19 其他

該問題來自于 stackoverflow[1],目前狀態已經關閉,排名第一的答案獲得了 1745 的投票,給出的書單非常的經典,供 94 本,雖然是英文,但是你很容易知道是哪本書,

這里從中挑出 10 本最經典的,推薦大家去閱讀,如果需要電子版的,可以加我微信「somenzz」,回復對應的書名即可,我會在方便的時候發你電子書,

1.《代碼大全2》,作者:史蒂夫·麥康奈爾

自從有了《代碼大全2》,程式員就分兩種:一種是看過《代碼大全2》的,一種是沒有看過的,猶如蒙娜麗莎的微笑,本書從語言基礎到創建高質量代碼,到變數、陳述句、代碼優化、系統考量和軟體工藝,全方面涵蓋關于軟體構建的種種細節,細節是決定卓越與平庸的分水嶺,不管是盧浮宮琥珀色的古老建筑與鉆石般奪目的玻璃金字塔,還是卓有成效的程式員,

這本書很經典,公眾號回復「送書」抽獎包郵送一本,

2.《程式員修練之道》

本書適合各層次軟體開發人員閱讀,也適合高等院校計算機專業學生和教師閱讀,本書之所以在全球范圍內廣泛傳播,被一代代開發者奉為圭臬,蓋因它可以創造出真正的價值:或撰寫出更好的軟體,或探究出編程的本質,而所有識訓均不依賴于特定語言、框架和方法,時隔20年的新版,經過全面的重新選材、組織和撰寫,覆寫哲學、方法、工具、設計、解耦、并發、重構、需求、團隊等務實話題的最佳實踐及重大陷阱,以及易于改造、復用的架構技術,本書極具洞察力與趣味性,適合從初學者到架構師的各階層讀者潛心研讀或增廣見聞,

3.《計算機的構造和解釋》

《計算機程式的構造和解釋》成型于美國麻省理工學院(MIT)多年使用的一本教材,1984年出版,1996年修訂為第二版,在過去的二十多年里,該書對于計算機科學的教育計劃產生了深刻的影響,

在第二版中,大部分重要程式設計系統都重新修改并做過測驗,包括各種解釋器和編譯器,作者根據其后十余年的教學實踐,還對其他許多細節做了相應的修改,

經典中的經典,必讀,

4.《演算法導論》

美國的本科生教材,這本書應該也是中國計算機學生的教材,

在有關演算法的書中,有一些敘述非常嚴謹,但不夠全面;另一些涉及了大量的題材,但又缺乏嚴謹性,本書將嚴謹性和全面性融為一體,深入討論各類演算法,并著力使這些演算法的設計和分析能為各個層次的讀者接受,全書各章自成體系,可以作為獨立的學習單元;演算法以英語和偽代碼的形式描述,具備初步程式設計經驗的人就能看懂;說明和解釋力求淺顯易懂,不失深度和數學嚴謹性,

全書選材經典、內容豐富、結構合理、邏輯清晰,對本科生的資料結構課程和研究生的演算法課程都是非常實用的教材,在IT專業人員的職業生涯中,本書也是一本案頭必備的參考書或工程實踐手冊,

5.《設計模式》

這本書是面向物件設計的經典書籍,結合設計實體從面向物件的設計中精選出23個設計模式,總結了面向物件設計中最有價值的經驗,并且用簡潔可復用的形式表達出來,書中分類描述了一組設計良好、表達清楚的軟體設計模式,這些模式在實用環境下特別有用,此書適合大學計算機專業的學生、研究生及相關人員參考,

書中涉及的設計模式并不描述新的或未經證實的設計,只收錄了那些在不同系統中多次使用過的成功設計,

6.《重構》

書中清晰揭示了重構的程序,解釋了重構的原理和實踐方式,并給出了何時以及何地應該開始挖掘代碼以求改善,書中給出了60多個可行的重構,每個重構都介紹了一種經過驗證的代碼變換手法的動機和技術,本書提出的重構準則將幫助開發人員一次一小步地修改代碼,從而減少了開發程序中的風險,

7.《人月神話》

在軟體領域,很少能有像《人月神話》一樣具有深遠影響力和暢銷不衰的著作,Brooks博士為人們管理復雜專案提供了最具洞察力的見解,既有很多發人深省的觀點,又有大量軟體工程的實踐,本書內容來自Brooks博士在IBM公司SYSTEM/360家族和OS/360中的專案管理經驗,該專案堪稱軟體開發專案管理的典范,該書英文原版一經面世,即引起業內人士的強烈反響,后又譯為德、法、日、俄、中、韓等多種文字,全球銷售數百萬冊,確立了其在行業內的經典地位,

8.《代碼整潔之道》

軟體質量,不但依賴架構及專案管理,而且與代碼質量緊密相關,這一點,無論是敏捷開發流派還是傳統開發流派,都不得不承認,本書提出一種觀點:代碼質量與其整潔度成正比,干凈的代碼,既在質量上較為可靠,也為后期維護、升級奠定了良好基礎,作為編程領域的佼佼者,本書作者給出了一系列行之有效的整潔代碼操作實踐,這些實踐在本書中體現為一條條規則(或稱“啟示”),并輔以來自實際專案的正、反兩面的范例,只要遵循這些規則,就能撰寫出干凈的代碼,從而有效提升代碼質量,

9.《Effective C++》/《More Effective C++》

C++ 中兩本經典得不能再經典的書,也許你覺得 C++ 復雜,但這兩本書中帶來對代碼穩定性的探索方式讓人受益,因為這種思維方式同樣可以用在其它地方,以至于各種模仿者,比如《Effective Java》也是一本經典書,

10. 《Unix 編程藝術》、《Unix 高級環境編程》

也是經典,

以下是原書單,序號不代表優先次序:

  1. Code Complete (2nd edition) by Steve McConnell

  2. The Pragmatic Programmer

  3. Structure and Interpretation of Computer Programs

  4. The C Programming Language by Kernighan and Ritchie

  5. Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein

  6. Design Patterns by the Gang of Four

  7. Refactoring: Improving the Design of Existing Code

  8. The Mythical Man Month

  9. The Art of Computer Programming by Donald Knuth

  10. Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman

  11. G?del, Escher, Bach by Douglas Hofstadter

  12. Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

  13. Effective C++

  14. More Effective C++

  15. CODE by Charles Petzold

  16. Programming Pearls by Jon Bentley

  17. Working Effectively with Legacy Code by Michael C. Feathers

  18. Peopleware by Demarco and Lister

  19. Coders at Work by Peter Seibel

  20. Surely You're Joking, Mr. Feynman!

  21. Effective Java 2nd edition

  22. Patterns of Enterprise Application Architecture by Martin Fowler

  23. The Little Schemer

  24. The Seasoned Schemer

  25. Why's (Poignant) Guide to Ruby

  26. The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity

  27. The Art of Unix Programming

  28. Test-Driven Development: By Example by Kent Beck

  29. Practices of an Agile Developer

  30. Don't Make Me Think

  31. Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin

  32. Domain Driven Designs by Eric Evans

  33. The Design of Everyday Things by Donald Norman

  34. Modern C++ Design by Andrei Alexandrescu

  35. Best Software Writing I by Joel Spolsky

  36. The Practice of Programming by Kernighan and Pike

  37. Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt

  38. Software Estimation: Demystifying the Black Art by Steve McConnel

  39. The Passionate Programmer (My Job Went To India) by Chad Fowler

  40. Hackers: Heroes of the Computer Revolution

  41. Algorithms + Data Structures = Programs

  42. Writing Solid Code

  43. JavaScript. The Good Parts

  44. Getting Real by 37 Signals

  45. Foundations of Programming by Karl Seguin

  46. Computer Graphics: Principles and Practice in C (2nd Edition)

  47. Thinking in Java by Bruce Eckel

  48. The Elements of Computing Systems

  49. Refactoring to Patterns by Joshua Kerievsky

  50. Modern Operating Systems by Andrew S. Tanenbaum

  51. The Annotated Turing

  52. Things That Make Us Smart by Donald Norman

  53. The Timeless Way of Building by Christopher Alexander

  54. The Deadline: A Novel About Project Management by Tom DeMarco

  55. The C++ Programming Language (3rd edition) by Stroustrup

  56. Patterns of Enterprise Application Architecture

  57. Computer Systems. A Programmer's Perspective

  58. Agile Principles, Patterns, and Practices in C# by Robert C. Martin

  59. Growing Object-Oriented Software, Guided by Tests

  60. Framework Design Guidelines by Brad Abrams

  61. Object Thinking by Dr. David West

  62. Advanced Programming in the UNIX Environment by W. Richard Stevens

  63. Hackers and Painters: Big Ideas from the Computer Age

  64. The Soul of a New Machine by Tracy Kidder

  65. CLR via C# by Jeffrey Richter

  66. The Timeless Way of Building by Christopher Alexander

  67. Design Patterns in C# by Steve Metsker

  68. Alice in Wonderland by Lewis Carol

  69. Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig

  70. About Face. The Essentials of Interaction Design

  71. Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky

  72. The Tao of Programming

  73. Computational Beauty of Nature

  74. Writing Solid Code by Steve Maguire

  75. Philip and Alex's Guide to Web Publishing

  76. Object-Oriented Analysis and Design with Applications by Grady Booch

  77. Effective Java by Joshua Bloch

  78. Computability by N. J. Cutland

  79. Masterminds of Programming

  80. The Tao Te Ching

  81. The Productive Programmer

  82. The Art of Deception by Kevin Mitnick

  83. The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan

  84. Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp

  85. Masters of Doom

  86. Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett

  87. How To Solve It by George Polya

  88. The Alchemist by Paulo Coelho

  89. Smalltalk-80: The Language and its Implementation

  90. Writing Secure Code (2nd Edition) by Michael Howard

  91. Introduction to Functional Programming by Philip Wadler and Richard Bird

  92. No Bugs! by David Thielen

  93. Rework by Jason Freid and DHH

  94. JUnit in Action

最后的話

書這么多,這輩子估計都看不完,不過,時間擠一擠總是有的,可以先列一個代讀清單,排排優先級,然后一個一個劃掉,隨著時間的流逝,書中的知識也被我們吸收,

先關注公眾號「Python七號」,然后回復「送書」抽獎,

64731bd6292976b0a129b961ea7a0faf.png

參考資料

[1]

stackoverflow: https://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/387817.html

標籤:其他

上一篇:沒有學歷,自學軟體測驗,找到一份月入過萬的測驗作業真的有可能嗎?

下一篇:她做銷售6年,從底薪3K轉行程式員狂飆2W,用兩年轉行經歷致想轉行的你

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more