【Java】编程技术经典书籍列表
这个列表包括了 100 多本经典技术书籍,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试 和 编程相关的经典书籍。
本列表综合了伯乐在线网站以往推荐经典书籍文章中的列表,以及在微信和微博中被广泛推荐的好书。虽然已经包括了 100 多本,覆盖的面也比较全,仍然有很多方面需要补充,而且相信还有很多没有被收录的好书。欢迎大家在评论中推荐或自荐。
这篇文章主要是分类别推荐了该类别所属的经典书籍列表。每个类别下,从书名就可以看出来,是区分了方向。即使是同一个方向,也侧重点不同。即使侧重点相同,作者讲解的思路也是不同的。请选择自己关注的方向,根据图书的简介选择适合自己的书籍学习。
计算机系统与网络
- 《图灵的秘密:他的生平、思想及论文解读》
 - 《计算机系统概论》
 - 《深入理解Linux内核》
 - 《深入Linux内核架构》
 - 《TCP/IP详解 卷1:协议》
 - 《Linux系统编程(第2版)》
 - 《Linux内核设计与实现(第3版)》
 - 《深入理解计算机系统(原书第2版)》
 - 《计算机程序的构造和解释(原书第2版)》
 - 《编码:隐匿在计算机软硬件背后的语言》
 - 《性能之颠:洞悉系统、企业与云计算》
 - 《UNIX网络编程 卷1:套接字联网API(第3版)》
 - 《UNIX网络编程 卷2:进程间通信》
 - 《Windows核心编程(第5版)》
 - 《WireShark网络分析就这么简单》
 - 《WireShark网络分析的艺术》
 
编程通用
- 《编程原本》
 - 《代码大全》
 - 《UNIX编程艺术》
 - 《代码整洁之道》
 - 《编程珠玑(第2版)》
 - 《编程珠玑(续)》
 - 《软件调试的艺术》
 - 《修改代码的艺术》
 - 《编程语言实现模式》
 - 《编写可读代码的艺术》
 - 《解析极限编程:拥抱变化》
 - 《精通正则表达式(第3版)》
 - 《编译原理(第2版)》龙书
 - 《重构:改善既有代码的设计》
 - 《七周七语言:理解多种编程范型》
 - 《调试九法:软硬件错误的排查之道》
 - 《程序设计语言:实践之路(第3版)》
 - 《计算的本质:深入剖析程序和计算机》
 - 《设计模式 : 可复用面向对象软件的基础》
 
算法与数据结构
- 《算法(第4版)》
 - 《算法导论(原书第2版)》
 - 《Python算法教程》
 - 《算法设计与分析基础(第3版)》
 - 《学习 JavaScript 数据结构与算法》
 - 《数据结构与算法分析 : C++描述(第4版)》
 - 《数据结构与算法分析 : C语言描述(第2版)》
 - 《数据结构与算法分析 : Java语言描述(第2版)》
 
职业修炼与规划
- 《大教堂与集市》
 - 《卓有成效的程序员》
 - 《程序员的职业素养》
 - 《程序员修炼之道:从小工到专家》
 - 《软件开发者路线图:从学徒到高手》
 - 《我编程,我快乐: 程序员职业规划之道》
 - 《程序员的思维修炼:开发认知潜能的九堂课》
 - 《高效程序员的45个习惯:敏捷开发修炼之道(修订版)》
 
大师访谈
架构/性能
- 《微服务设计》
 - 《大数据日知录》
 - 《企业应用架构模式》
 - 《Web性能权威指南》
 - 《SRE:Google运维解密》
 - 《发布!软件的设计与部署》
 - 《高扩展性网站的 50 条原则》
 - 《大型网站技术架构:核心原理与案例分析》
 - 《恰如其分的软件架构:风险驱动的设计方法》
 - 《软件系统架构:使用视点和视角与利益相关者合作(第2版)》
 
Web前端
- 《高性能 JavaScript》
 - 《锋利的 jQuery(第2版)》
 - 《JavaScript 忍者秘籍》(感谢@joker-danta 补充推荐)
 - 《编写可维护的 JavaScript》
 - 《你不知道的 JavaScript(上)》
 - 《JavaScript 权威指南(第6版)》
 - 《JavaScript 语言精粹(修订版)》
 - 《JavaScript DOM编程艺术 (第2版)》
 - 《JavaScript 高级程序设计(第3版)》
 - 《JavaScript 异步编程:设计快速响应的网络应用》
 - 《Effective JavaScript:编写高质量JavaScript代码的68个有效方法》
 - 《HTML5 权威指南》
 - 《HTML5 秘籍(第2版)》
 - 《HTML5 与 CSS3 基础教程(第八版)》
 - 《CSS 揭秘》
 - 《CSS 设计指南(第3版)》
 - 《CSS 权威指南(第3版)》
 - 《深入浅出 HTML 与 CSS》
 
Java开发
- 《Java8 实战》
 - 《Java并发编程实战》
 - 《Java性能权威指南》
 - 《Java程序员修炼之道》
 - 《实战Java高并发程序设计》
 - 《Java编程思想 (第4版)》
 - 《深入理解Java虚拟机(第2版)》
 - 《Effective java 中文版(第2版)》
 - 《Java核心技术·卷1:基础知识(原书第9版)》
 - 《Java核心技术·卷2:高级特性(原书第9版)》
 
.NET
Python
- 《集体智慧编程》
 - 《笨办法学Python》
 - 《Python基础教程》
 - 《Python源码剖析》
 - 《Head First Python》
 - 《与孩子一起学编程》
 - 《Python学习手册(第4版)》
 - 《Python Cookbook(第3版)》
 - 《Python参考手册(第4版)》
 - 《Python核心编程(第3版)》
 - 《Python科学计算(第2版)》
 - 《利用 Python 进行数据分析》
 - 《Think Python:像计算机科学家一样思考Python(第2版)》
 - 《Python编程实战:运用设计模式、并发和程序库创建高质量程序》
 - 《Python绝技:运用Python成为顶级黑客》
 - 《Flask Web开发:基于Python的Web应用开发实战》
 
Android
iOS
PHP
C语言
C++
- 《C++标准库》
 - 《C++编程思想》
 - 《C++语言的设计与演化》
 - 《C++程序设计原理与实践》
 - 《C++ Primer (中文第5版)》
 - 《C++ Primer习题集(第5版) 》
 - 《C++程序设计语言(第1-3部分)(原书第4版) 》
 - 《Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)》
 - 《More Effective C++:35个改善编程与设计的有效方法(中文版)》
 
机器学习和数据挖掘
- 《数据之巅》
 - 《矩阵分析》
 - 《机器学习》
 - 《统计学习方法》
 - 《机器学习导论》
 - 《推荐系统实践》
 - 《机器学习实战》
 - 《Web数据挖掘》
 - 《深入浅出统计学》
 - 《模式分类(第2版)》
 - 《概率论与数理统计》
 - 《统计学习基础(第2版)(英文) 》
 - 《数据挖掘:概念与技术(第3版)》
 - 《数据挖掘:实用机器学习工具与技术(原书第3版)》
 - 《大数据:互联网大规模数据挖掘与分布式处理(第2版)》
 
数据库
- 《SQL应用重构》
 - 《SQL Cookbook》
 - 《高性能MySQL (第3版)》
 - 《深入浅出SQL(中文版)》
 - 《MySQL技术内幕 : InnoDB存储引擎(第2版)》
 - 《深入浅出MySQL : 数据库开发、优化与管理维护》
 
测试
- 《探索式软件测试》
 - 《有效的单元测试》
 - 《Google软件测试之道》
 
项目与团队
- 《人月神话》
 - 《快速软件开发》
 - 《人件(原书第3版)》
 - 《门后的秘密:卓越管理的故事》
 - 《极客与团队:软件工程师的团队生存秘笈》
 
求职面试
编程之外
- 《暗时间》
 - 《数学之美》
 - 《赢得朋友》
 - 《精益创业》
 - 《批判性思维》
 - 《世界是数字的》
 - 《程序员的数学》
 - 《程序员健康指南》
 - 《禅与摩托车维修艺术》
 - 《关键对话:如何高效能沟通》
 - 《写作法宝:非虚构写作指南》
 - 《黑客与画家 : 来自计算机时代的高见》
 - 《软件随想录(卷1)》《软件随想录(卷2)》
 - 《如何把事情做到最好:改变全球9800万人的人生指导书》
 
【Java】编程技术经典书籍列表的更多相关文章
- java、八大经典书籍,你看过几本?
		
java.八大经典书籍,你看过几本? 转载 一.Java从入门到精通 <Java从入门到精通(第3版)>从初学者角度出发,通过通俗易懂的语言.丰富多彩的实例,详细介绍了使用Java语言进 ...
 - 10个实用的但偏执的Java编程技术
		
在沉浸于编码一段时间以后,你会渐渐对这些东西习以为常.因为,你知道的-- 任何事情有可能出错,没错,的确如此. 这就是为什么我们要采用"防御性编程",即一些偏执习惯的原因.下面是我 ...
 - 转载:10个实用的但偏执的Java编程技术
		
在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常.因为,你知道的…… 任何事情有可能出错,没错,的确如此. 这就是为什么我们要采用“防御性编程”,即 ...
 - (转载)10个实用的但偏执的Java编程技术
		
10个实用的但偏执的Java编程技术 在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常.因为,你知道的…… 作者:小峰来源:码农网|2015-09- ...
 - Java基础知识强化49:10个实用的但偏执的Java编程技术
		
1. 将String字符串放在最前面 为了防止偶发性的NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码: // Bad ...
 - Java编程技术之浅析SPI服务发现机制
		
SPI服务发现机制 SPI是Java JDK内部提供的一种服务发现机制. SPI->Service Provider Interface,服务提供接口,是Java JDK内置的一种服务发现机制 ...
 - Java编程技术之浅析JVM内存
		
JVM JVM->Java Virtual Machine:Java虚拟机,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. 基本认知: ...
 - Java编程技术之浅析Java容器技术
		
Java容器 集合是一种存储数据的容器,是Java开发中使用最频繁的对象类型之一. 或许提起Collection,都会第一时间意识到List和Set以及Map等相关关键词.因为这几乎是我们日常开发里接 ...
 - Java编程中经典语句收录
		
1.spring系列:约定优于配置(习惯大于配置): 2.Java:一次编译,处处运行 3.Unix:没有消息就是好消息
 
随机推荐
- echarts设置小图标位置
			
// <!-- 左上角小图标 --> toolbox: { show : true, // orient: 'horizontal', // 布局方式,默认为水平布局,可选为: // // ...
 - (The application/json Media Type for JavaScript Object Notation (JSON))RFC4627-JSON格式定义
			
原文 http://laichendong.com/rfc4627-zh_cn/ 摘要 JavaScript Object Notation (JSON)是一个轻量级的,基于文本的,跨语言的数据交换 ...
 - P2P平台投宝金融跑路?为什么我没有中雷!
			
编者按:市场有风险,投资需谨慎.最近,安徽合肥P2P平台"投保金融"跑路倒闭了. 今天(2016年11月8日)下午,在朋友圈看到一个分享,投宝金融跑路了,新闻媒体已经传开了. 这个 ...
 - Dlib简介及在windows7 vs2013编译过程
			
Dlib是一个C++库,包含了许多机器学习算法.它是跨平台的,可以应用在Windows.Linux.Mac.embedded devices.mobile phones等.它的License是Boos ...
 - spark on yarn 资源调度(cdh为例)
			
一.CPU配置: ApplicationMaster 虚拟 CPU内核 yarn.app.mapreduce.am.resource.cpu-vcores ApplicationMaster占用的cp ...
 - jenkins自动打包部署linux
			
需要用到2个插件. git parameter:用于参数化构建时选择分支. Publish Over SSH:用于上传jar包和操作tomcat 1.先在系统设置添加要连接的linux服务器,使用用户 ...
 - 真香!iOS云真机全新上线!
			
WeTest 导读 众多开发者已经渐渐适应通过调用线上的安卓真机进行远程调试,但是针对iOS设备,则依然存在“iOS设备昂贵”“无法及时采购iOS最新设备”“无法复现iOS历史系统版本”等问题. 为了 ...
 - Maven学习(十二)-----Maven POM
			
Maven POM POM代表项目对象模型.它是 Maven 中工作的基本单位,这是一个 XML 文件.它始终保存在该项目基本目录中的 pom.xml 文件.POM 包含的项目是使用 Maven 来构 ...
 - Qt 利用XML文档,写一个程序集合 二
			
接上一篇文章https://www.cnblogs.com/DreamDog/p/9213915.html XML文档的读写 一个根节点,下面每一个子节点代表一个子程序,内容为子程序名字,图标路径,e ...
 - Python函数标注
			
Python函数标注 是关于用户自定义函数中使用的类型的完全可选元数据信息. 函数标注 以Python字典的形式存放在函数的 __annotations__ 属性中,并且不会影响函数的任何其他部分. ...