【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:没有消息就是好消息
随机推荐
- WPF之路-键盘与鼠标事件 - 简书
原文:WPF之路-键盘与鼠标事件 - 简书 键盘事件 事件类型分为以下几个类型 生命周期事件:在元素加载与卸载的时候发生 鼠标事件:鼠标动作 键盘事件:键盘动作 手写笔事件:适用于win7以上的系统 ...
- WPF MVVM从入门到精通2:实现一个登录窗口
原文:WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 ...
- logstash处理@timestamp时区
input { stdin { } } filter { #ruby { # code => "event.set('timestamp', event.get('@timestamp ...
- JVM知识(下)
目录 方法区 类型信息 方法信息 类变量 引用类的类加载 类引用 堆(Heap) GC 定义对象 数组引用 栈 栈帧 操作数栈 帧数据 本次主要介绍,JVM的方法区,堆,栈.以下内容主要还是参考< ...
- Ubuntu设置DNS服务
有时候安装完Ubuntu系统,源换好好还是不能更新,软件也不能下, 配置好IP,ping 1.1.1.1是通的,ping 域名就不通了,这是没有DNS解析域名的结果 一.Server版: 对于Ubun ...
- PHP自定义生成二维码跳转地址
比较简单的一款PHP自定义生成二维码跳转地址,手机端微信扫码,自动跳转到定义好的链接.支持自定义生成二维码尺寸.间距等. 鼠标悬浮显示二维码弹出层,离开后消失.js实现,代码如下: $(fu ...
- 算法工程师进化-NLP之主题模型
1 引言 主题模型是文本挖掘的重要工具,近年来在学术界和工业届都获得了非常多的关注.学术界的工作主要集中在建模层面,即提出各种各样的主题模型来适应不同的场景,因此缺乏指导主题模型在工业场景落地的资源和 ...
- Python 日志记录与程序流追踪(基础篇)
日志记录(Logging) More than print: 每次用 terminal debug 时都要手动在各种可能出现 bug 的地方 print 相关信息来确认 bug 的位置: 每次完成 d ...
- AutoCAD2015激活码和密钥
CAD2015序列号和密钥 序列号: 666-69696969 产品密钥: 001G1 序列号: 356-72378422 产品密钥: 206G1 安装说明 ...
- 如何理解IPD+CMMI+Scrum一体化研发管理解决方案之CMMI篇
如何快速响应市场的变化,如何推出更有竞争力的产品,如何在竞争中脱颖而出,是国内研发企业普遍面临的核心问题,为了解决这些问题,越来越多的企业开始重视创新与研发管理,加强研发过程的规范化,集成产品开发(I ...