【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:没有消息就是好消息
随机推荐
- 2018.10.17校内模拟赛:T2神光
题面:pdf 首先排序,二分,然后怎么判定是否可行. 最简单的思路是,dp[i][j][k],到第i个,用了j次红光,k次绿光,前i个点都选上了,是否可行.然后转移就行. 然后考试的时候就想到这了,往 ...
- Android开发笔记——图片缓存、手势及OOM分析
把图片缓存.手势及OOM三个主题放在一起,是因为在Android应用开发过程中,这三个问题经常是联系在一起的.首先,预览大图需要支持手势缩放,旋转,平移等操作:其次,图片在本地需要进行缓存,避免频繁访 ...
- 使用performance进行前端性能监控
该文章仅作为自己的总结 1.performance.timing对象 navigationStart:当前浏览器窗口的前一个网页关闭,发生unload事件时的Unix毫秒时间戳.如果没有前一个网页,则 ...
- CentOS7部署ELK5.2
原文发表于cu:2017-02-10 参考文档: Elasticsearchyum文档:https://www.elastic.co/guide/en/elasticsearch/reference/ ...
- vsftpd安装配置虚拟用户
原文发表于cu:2016-03-11 参考文档: FTP原理:http://vbird.dic.ksu.edu.tw/linux_server/0410vsftpd_1.php FTP配置:http: ...
- Python3实现机器学习经典算法(一)KNN
一.KNN概述 K-(最)近邻算法KNN(k-Nearest Neighbor)是数据挖掘分类技术中最简单的方法之一.它具有精度高.对异常值不敏感的优点,适合用来处理离散的数值型数据,但是它具有 非常 ...
- 论文笔记:Visualizing and Understanding Convolutional Networks
2014 ECCV 纽约大学 Matthew D. Zeiler, Rob Fergus 简单介绍(What) 提出了一种可视化的技巧,能够看到CNN中间层的特征功能和分类操作. 通过对这些可视化信息 ...
- CS231n assignment2
preparation: solve the problem of `from builtins import rang` pip install future update_rule
- Linux 150命令之 文件和目录操作命令 chattr lsattr find
chattr添加隐藏权限 lsattr查看隐藏权限 参数 a文件内容不能删除,只能追加 >> [root@mysql tmp]# chattr +a 1.txt [root@mysql t ...
- Android 对话框(Dialogs)
对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 1.对话框设计 如需了解有关如何设计对话框的信息(包括语言建议),请阅读对话框设 ...