程序员必读书籍

时间:2023-02-11 22:30:33

参考:http://bestcbooks.com/recommend/most-influential-book/
http://*.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read
http://www.billthelizard.com/2008/12/books-programmers-dont-really-read.html
http://www.cnblogs.com/figure9/p/developer-reading-list.html
http://lucida.me/blog/developer-reading-list/
http://www.infoq.com/cn/articles/each-programmer-must-have-programming-books-bookcase
http://zkread.com/article/651251.html
https://aotu.io/notes/2016/11/14/booklist-for-every-programmer/
http://www.programgo.com/article/74811989458/
http://www.ituring.com.cn/article/39963
http://www.williamlong.info/archives/3028.html
https://breezetemple.gitbooks.io/programming-essay/content/books/
http://aes.jypc.org/?p=47908
http://www.jizhuomi.com/software/566.html
http://www.lai18.com/content/8747878.html
http://www.tymood.com/?p=1073
http://www.cnblogs.com/Wen-Man/archive/2011/08/08/2373763.html

计算机系统

  • 计算机系统概论
  • 深入理解计算机系统
  • 计算机程序的构造和解释
  • 编码:隐匿在计算机软硬件背后的语言
  • 编译原理(第2版)》龙书
  • 计算的本质:深入剖析程序和计算机
  • 汇编语言程序设计机
  • 程序员的自我修养—链接、装载与库
  • 代码揭秘—-从c/c++角度探索计算机系统库

UNIX

  • UNIX 编程艺术
  • UNIX环境高级编程
  • Unix技术手册
  • UNIX系统编程
  • UNIX编程环境
  • GNU/Linux 编程指南
  • The Design Of The Unix Operating System
  • linux技术手册
  • Unix网络编程卷1
  • Unix网络编程卷2
  • Unix超级工具
  • Linux系统编程
  • 鸟哥私房菜——基础知识篇
  • 鸟哥私房菜——服务器篇

C

  • C程序设计语言
  • C Primer Plus
  • C陷阱与缺陷
  • C与指针
  • C专家编程
  • C语言接口与实现:创建可重用软件的技术
  • C语言参考手册
  • C标准库
  • C语言参考手册
  • C语言大全

C++

  • C++ Primer
  • Essentital c++
  • The c++ programming language
  • C++ Primer Plus
  • Effective C++
  • More Effective C++
  • Inside the c++ object model
  • Exceptional c++
  • Essential C++
  • C++编程思想
  • C++语言的设计与演化
  • C++标准程序库
  • C++标准程序库
  • C++ 程序设计教程(钱能)
  • STL源码剖析
  • C++程序设计原理与实践

Java

  • Java编程思想
  • JAVA 2核心技术 卷I:基础知识
  • JAVA 2核心技术 卷II:高级特性
  • JEffective Java
  • Java编程语言
  • 深入理解Java虚拟机
  • 深入分析Java Web技术内幕
  • Java语言规范
  • Java并发编程实战
  • Java程序员修炼之道
  • Java性能权威指南

软件工程

  • 重构—改善既有代码的设计
  • 人月神话
  • 设计模式–可复用面向对象软件的基础
  • 敏捷软件开发:原则、模式与实践
  • 企业应用架构模式
  • 代码大全
  • head first design pattern
  • 面向对象分析与设计
  • UML面向对象建模与设计
  • UML用户指南

数据结构与算法

  • 计算机程序设计艺术
  • 算法导论
  • 数据结构与算法分析 : C++描述
  • 数据结构与算法分析 : C语言描述
  • 数据结构与算法分析 : Java语言描述
  • 数据结构 C++语言描述
  • 数据结构算法与应用-C++语言描述
  • 数据结构(C语言版)》严蔚敏
  • 数据结构与算法分析
  • 算法
  • 计算机算法的设计与分析

Python

  • 集体智慧编程
  • 笨办法学Python
  • Python基础教程
  • 与孩子一起学编程
  • Python学习手册(第4版)
  • Python Cookbook(第3版)
  • Python核心编程(第3版)
  • Python科学计算(第2版)
  • 利用 Python 进行数据分析
  • Think Python:像计算机科学家一样思考Python(第2版)
  • Python编程实战:运用设计模式、并发和程序库创建高质量程序)
  • Python绝技:运用Python成为*黑客
  • Flask Web开发:基于Python的Web应用开发实战

编程通用

  • 编程原本
  • 编代码大全
  • 代码整洁之道
  • 编程珠玑
  • 编程珠玑(续)
  • 软件调试的艺术
  • 修改代码的艺术
  • 重构:改善既有代码的设计
  • 七周七语言:理解多种编程范型
  • 调试九法:软硬件错误的排查之道
  • 精通正则表达式(第3版)
  • 设计模式 : 可复用面向对象软件的基础
  • 程序设计语言:实践之路(第3版)
  • 编程语言实现模式
  • 编写可读代码的艺术
  • 解析极限编程:拥抱变化
  • 编程之美

求职面试

  • 程序员面试金典
  • 编程之美 : 微软技术面试心得
  • 剑指Offer:名企面试官精讲典型编程题
  • 金领简历:敲开苹果、微软、谷歌的大门

职业修炼与规划

  • 程序员修炼之道:从小工到专家
  • 软件开发者路线图:从学徒到高手
  • 高效程序员的45个习惯:敏捷开发修炼之道(修订版)
  • 程序员的思维修炼:开发认知潜能的九堂课
  • 卓有成效的程序员
  • 卓程序员的职业素养
  • 我编程,我快乐: 程序员职业规划之道
  • 大教堂与集市
  • 门后的秘密:卓越管理的故事
  • 人件
  • 快速软件开发
  • 极客与团队:软件工程师的团队生存秘笈
  • 暗时间
  • 数学之美
  • 世界是数字的
  • 程序员的数学
  • 软件随想录(卷1)
  • 批判性思维
  • 黑客与画家 : 来自计算机时代的高见
  • 关键对话:如何高效能沟通
  • 程序员健康指南
  • 如何把事情做到最好:改变全球9800万人的人生指导书
  • 编程大师智慧
  • 编程大师访谈录
  • 编程人生 : 15位软件先驱访谈录
  • 奇思妙想 : 15位计算机天才及其重大发现
  • 图灵和ACM图灵奖

C++必读书籍推荐

本文内容来自国外著名编程问答网站*评选的C++推荐书单!推荐大家看原版英文,但这些书大部分也都有中文版!

  • 手册类 – 所有级别

C++程序设计语言(The C++ Programming Language)
作者:Bjarne Stroustrup(更新到C++11)C++之父写的经典C++书籍。内容覆盖C++的所有东西,从语言内核到标准库、编程范式和语言哲学(这使得最新版突破1千页)。2013年5月出版的第四版涵盖了C++11的内容。
电子书:第三版(中文)、第四版(英文)

C++标准程序库(C++ Standard Library Tutorial and Reference)
作者:Nicolai Josuttis (更新到C++11) 这本书是C++标准库(STL)的引导和手册。 2012年4月发行的第二版涵盖了C++11。
电子书:第一版(中文)、第一版(英文)、第二版(英文)

The C++ IO Streams and Locales
作者:Angelika Langer and Klaus Kreft 除了这本书,市面上基本没有讲解streams and locales的书。
电子书:96年版(英文)

*C++ 11手册:*
The C++ Standard (INCITS/ISO/IEC 14882-2011)
作者:C++标准委员会 这当然是C++最权威的标准。要注意的是,C++标准是提供给有足够精力和时间的专家级用户研究用的。国内估计很少有人看,在国外一般它的第一个发行版也非常贵( 300+US) 30US的电子发行版。
电子书:N3225(英文)

Overview of the New C++ (C++11/14)
作者:Scott Meyers(更新到C++11/C++14) 这是Scott Meyers开设的一个为期3天的C++课程的教材。Scott Meyers是C++社区最受尊敬的作者之一。虽然内容比较简短,但质量极高。
电子书:2011年版(英文)

  • 初级

  • 入门

如果你是一个无编程经验的C++初学者,或者有其它语言经验的C++初学者,那强烈推荐下面的书籍。

C++ Primer
作者:Stanley Lippman, Josée Lajoie, and Barbara E. Moo (更新到C++11) 近1千页,本书透彻的介绍了C++,以浅显和详细的方式讲到C++语言差不多所有内容。2012年8月发行的第五版包含C++11的内容。
电子书:第三版(中文)、第四版(中文)、第五版(英文版)

Accelerated C++
作者:Andrew Koenig and Barbara Moo 这本书覆盖了和C++ Primer一样的内容,但厚度只有C++ Primer的四分之一。这主要是因为本书面向的不是编程的初学者,而是有其它语言经验的C++初学者。对于初学者,本书学习曲线稍显陡峭,但对于能克服这一点的学习者而言,它确实非常紧凑的介绍了C++这门语言。
电子书:中文版,英文版

C++编程思想(Thinking in C++)
作者:Bruce Eckel 共两卷,第二卷主要将标准库,但还是不错的。
电子书:第二版V1(英文版)、第二版V2(英文版)、第二版V1(中文版)、第二版V2(中文版)

C++程序设计原理与实践 (Programming: Principles and Practice Using C++ )
作者:Bjarne Stroustrup C++之父写的C++入门书籍。本书面向没有编程经验的初学者,但相信有编程经验的人也能从本书中学到不少东西。
电子书:中文版

  • 最实用

Effective C++
作者:Scott Meyers 本书以瞄准成为C++程序员必读的第二本书籍而写,Scott Meyers成功了。早期的版本面向从C语言转过来的程序员。第三版修改为面向从类似Jave等语言转来的程序员。内容覆盖了50多个很容易记住的条款,每个条款深入浅出(并且有趣)讲到了你可能没有考虑过的C++规则。
电子书:第二版(英文)、第三版(英文)、第三版(中文)

Effective STL
作者:Scott Meyers 讲解方式和Effective类似,但内容主要面向于STL。
电子书:中文版,英文版

  • 中级
    More Effective C++
    作者:Scott Meyers 更多(深入)关于C++的规则。没有前一本Effective C++重要。但同样值得一读。
    电子书:中文版

Exceptional C++
作者:Herb Sutter 讲解方式为提出并解决一系列的C++难题。本书极其透彻的讲解了C++资源管理、异常安全和RAII。同时覆盖了一些较为深入的技术,比如:编译防火墙(pimpl idiom)、名字查找规则,、好的类设计和C++内存模型。
电子书:中文版,英文版

More Exceptional C++
作者:Herb Sutter 讲到了Exceptional C++没有涉及到的更高级的异常安全技术, 同时讨论了高效的C++ OOP方式和如何正确的使用STL。
电子书:中文版,英文版

Exceptional C++ Style
作者:Herb Sutter 讨论了泛型编程、最优化和资源管理。本书出彩之处在于谈到了如何用非成员函数和单职责原则编写模块化的C++代码。
电子书:中文版

C++编程规范(C++ Coding Standards)
作者:Herb Sutter and Andrei Alexandrescu “编程规范”这里并不是”代码缩进要用几个空格”。这本书包含了101个例子、惯用法、缺陷,通过这些可以帮助你编写正确、清晰高效的C++代码。
电子书:中文版

C++ 模板完全指南(C++ Templates: The Complete Guide)
作者:David Vandevoorde and Nicolai M. Josuttis 本书是关于C++11之前的模板的。它覆盖了从非常基础到*的元编程知识,解释了模板工作原理的细节(概念和实现方式)。并且讨论了大量的缺陷。附录中包含关于ODR和重载的精彩总结。
电子书:中文版、英文版

  • 高级

C++设计新思维-泛型编程与设计模式之应用(Modern C++ Design )
作者:Andrei Alexandrescu 泛型编程鼻祖级书籍。本书先介绍了基于策略(policy-based)的设计、type lists 和泛型编程基础, 然后讲到了许多有用的设计模式(包括small object allocators, functors, factories, visitors, and multimethods) 如何被高效、模块化、清晰的泛型代码实现。
电子书:中文版、英文版

C++模板元编程(C++ Template Metaprogramming)
作者:David Abrahams and Aleksey Gurtovoy 更多的是讲解boost::mpl,想要深入理解mpl的可以看一下。
电子书:中文版

C++ Concurrency In Action
作者:Anthony Williams 这本书主要内容是C++11的并发支持,包括线程库、原子(atomics)库、内存模型、锁和互斥量。同时也讲解了开发和调试多线程程序的一些难题。
电子书:英文版

Advanced C++ Metaprogramming
作者:Davide Di Gennaro 前C++11时代TMP技术的手册级书籍。本书更侧重于工程实践。里面有大量的可能几乎无人知道但很实用的技术写成的代码。本书可能比Alexandrescu的书更值得读。对于资深的开发者来说,这是一个学习C++暗角技术的绝佳机会,通常这些技术要通过资深的编程经历才能获取。
电子书:没找到
经典 / 古老

注意: 下列书中的部分内容可能有些过时

C++的设计与演化(The Design and Evolution of C++ )
作者:Bjarne Stroustrup 如果你想知道为什么C++是今天这个样子,那么这本书将给你答案。本书覆盖C++标准化之前的一切东西。
电子书:中文版

C++沉思录(Ruminations on C++)
作者:Andrew Koenig and Barbara Moo 本书不是为了讲解具体的C++技术细节,而是如何通过C++编写出色的OO代码。
电子书:中文版

Advanced C++ Programming Styles and Idioms
作者:James Coplien 讲解了一些C++特有的惯用法. 它确实是一本不错的书籍,如果时间闲暇也可一读。不过它确实很老了,可能有些不符合现代的C++。
电子书:中文版

大规模C++程序设计(Large Scale C++ Software Design)
作者:John Lakos 本书介绍了如何管理大规模C++软件项目的技术。很值得一读,除了有些过时以外。它是在C++98以前写的,缺少了好多对大规模项目重要的特性(比如名字空间)。假如你工作在一个大规模的C++项目中,你可能想要读它, 不过你需要注意那些不适用甚至错误的技术点。
电子书:中文版

深度探索C++对象模型 (Inside the C++ Object Model )
作者:Stanley Lippman 如果你想知道虚函数是如何实现、多继承时基类是如何在内存中排布的和所有影响性能的东西,那么这本书会给你答案。不过这本书有好多低级的拼写排版错误,英文原版错误更多,侯捷翻译的版本中注明和纠正了很多,但本书绝对值得一读,你将明白编译器如何实现C++的对象模型。
电子书:中文版、英文版