这是 herongwei 的第 87 篇原创

阅读本文大概需要 8.8 分钟。

对于大部分知识,最好的学习资料还是书籍,因为书籍经过了长期的检验,质量有保证。而且书籍的知识体系更加完善,这是传统网络上的博客文章所不具备的,所以我认为,系统的看书学习比零散的看博客文章更有用。

最近发现有一个开源的编程类中文开源电子书合集

​https://openingsource.org/1137/​

几乎无所不包,知识体系也很完善,而且内容简洁易懂。可以先看这个博客入门学习,然后某些内容再看书进行补充学习。

纸质书的另一个好处就是阅读起来对眼睛好,排版好。但是不方便携带和查阅,不方便做笔记而且价格也更高。

电子书优缺点基本和纸质书相反。建议某些很经典的书籍还是买纸质书,毕竟要经常翻。而那些就打算看几次,或者当做参考的书,可以买电子书,方便很多。如果有非常高质量的电子书,也比较推荐电子书。

在电商网站上买纸质书经常有满 几百减几百 的活动,会便宜很多,比如 618、双 11,当当网站这些。

其它电子书资料可以直接使用 Google 搜 xxx pdf、xxx mobi 进行查找。

在二手交易平台买书也不错,不推荐买盗版书,不要因为一时的便宜,而影响阅读体验,我以前也会偶尔买一些盗版书,但是现在越来越倾向于买正版的了,买了盗版,心里会有一种莫名的负罪感,而且纸张质量很差。

1、数据结构与算法

1.1 《算法》豆瓣 9.4 分

经典书籍推荐_数据结构

非常适合作为数据结构与算法的入门书籍,比算法导论容易理解得多。使用 Java 实现,但不会涉及太多的 Java 高级语法,因此也适合其它语言使用者使用。Google 搜一下 Coursera 上有配套视频课程:Algorithms。

1.2《数据结构》豆瓣 9.3 分

经典书籍推荐_SQL_02

清华大学教材,使用 C++ 实现,可以结合配套视频学习:学堂在线网站-清华大学数据结构。

1.3《剑指 offer 》豆瓣 9.1 分

经典书籍推荐_数据结构_03

找工作刷题神书,基本涵盖了高频代码面试题,C++ 实现,在面试之前,推荐至少刷 3 遍以上!

配套专题训练:牛客网-剑指offer。

1.5 LeetCode

经典书籍推荐_Java_04

剑指 Offer 上的题目基本能在 Leetcode 上找到,而且 Leetcode 更全面,如果时间充足的话建议先刷 Leetcode 再刷剑指 Offer。刷 200 题左右就足够应对大多数公司的代码面试题。

最开始可以按照顺序来刷,如果时间紧张,可以按照 Top 100的题目来刷,不会的题目可以先看看 Discuss 上的高票答案,先学习别人是怎么做的。建议使用 Leetcode 英文版,因为英文版 Discuss 上的优质答案比较多。

1.6 《程序员代码面试指南》

经典书籍推荐_Java_05

适合当做 Leetcode 的辅助书籍,对一些题目讲解的不错。除了算法题之外,还有一些海量数据分析的题目很值得看一下。

1.7 玩转算法面试

慕课网的在线视频课程,主要讲解 LeetCode 上面的题目,画图和讲解都很认真。

​https://coding.imooc.com/class/82.html​

1.8 《挑战程序设计竞赛》

经典书籍推荐_Java_06

大厂可能会出一些简单的 ACM 题目,这本书,也值得看一部分内容,比如线段树,网络流之类的。

1.9 《大话数据结构》

经典书籍推荐_数据结构_07

以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比。

2、计算机网络

2.1 《计算机网络自顶向下方法》

经典书籍推荐_SQL_08

适合当做入门书籍,重点阅读前四章内容。

2.2 《TCP-卷1-2-3》

经典书籍推荐_数据结构_09

TCP/IP 是网络中最重要的一部分,对于某些面试高频知识点,建议阅读这本书的相应章节进行深入学习。

2.3 《图解TCP-IP》

经典书籍推荐_数据结构_10

一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。

2.4《UNIX 网络编程卷1-2》

经典书籍推荐_Java_11

UNIX 网络编程(UNP)和 UNIX 环境高级编程(APUE)被称为腾讯的敲门砖,C++ 岗位的同学都应该学习一下。非常之经典!

2.5 《Linux 多线程服务端编程》

经典书籍推荐_数据结构_12

陈硕大佬的书籍,比上面几本大块头更贴近实践,如果对 Web Server 这些项目感兴趣的话,建议先看这本书。

2.7《Linux高性能服务器编程》

经典书籍推荐_Java_13

搭配上一本书,从网络协议、服务器编程核心要素、原理机制、工具框架等多角度全面阐释了编写高性能Linux服务器应用的方法、技巧和思想。不仅理论全面、深入,抓住了重点和难点,还包含两个综合性案例,极具实战意义。

3、操作系统

下面这些书籍也值得推荐。

经典书籍推荐_Java_14

经典书籍推荐_SQL_15

经典书籍推荐_SQL_16

经典书籍推荐_SQL_17

   非常经典的书籍,都是 C++ 岗位必备书籍。

4、数据库

4.1 《MySQL 必知必会》 

 

经典书籍推荐_数据结构_18

学习数据库第一步是学习 SQL,这本书很适合当做 SQL 的入门书籍,实践性很强。

4.2 Leetcode-Database && 牛客网-SQL 专题

学完 SQL 之后最好去 Leetcode 或者牛客网 SQL 专题再实践一下,面试有时候也会考察手写 SQL 语句。 

4.3 《高性能 MySQL》 

经典书籍推荐_数据结构_19

比较偏向于 DBA 书籍,而且理论性比较强,重点看看第一章数据库系统原理相关的内容、第五章索引、第六章查询优化。 

4.4 《MySQL 技术内幕》

经典书籍推荐_SQL_20

建议阅读第二章 InnoDB 存储引擎、第五章 索引与算法、第六章 锁、第七章 事务、第九章 性能优化。 

4.5 《Redis 设计与实现》

经典书籍推荐_SQL_21

从 Reids 源码角度去分析实现原理,推荐阅读字典、跳跃表、过期机制、持久化、事件、复制、Sentinel、集群、发布与订阅、事务。 

4.6 《Redis 实战》

经典书籍推荐_数据结构_22

这本书偏实践,最好动手做一下书上的一些小项目。 

4.7 《大规模分布式存储系统》 

经典书籍推荐_SQL_23

 非常适合当做存储系统和分布式系统的入门书籍。

5、设计模式

5.1 《大话设计模式》

经典书籍推荐_数据结构_24

以情景对话的形式,用多个小故事或编程示例来组织讲解。

5.2 《Head First 设计模式》

经典书籍推荐_Java_25

Head First 系列的图书都很适合当做入门书籍,包含了大量图示,内容也很有意思。

6、C++

C++ 经典的书籍很多

经典书籍推荐_SQL_26

经典书籍推荐_数据结构_27

经典书籍推荐_SQL_28

经典书籍推荐_SQL_29

经典书籍推荐_数据结构_30

可以看看虚函数的实现,C++设计者的思考。

7、Java

Java 的经典书籍也有很多:

《JAVA 核心技术》《Java 编程思想》 《Effective java 中文版》 《深入理解 Java 虚拟机》 《Java 并发编程实战》 《精通 Spring 4.x》 《Spring 揭秘》等。

8、系统设计

8.1 《大型网站技术架构》

经典书籍推荐_数据结构_31

     非常好的网站架构入门书籍,在做网站项目之前建议先看一下这本书,然后在这本书中找几个技术用在你的项目中,比如缓存、集群等。

经典书籍推荐_Java_32

经典书籍推荐_数据结构_33

日积月累,方能聚沙成塔!加油鸭!

经典书籍推荐_数据结构_34

认真的人,自带光芒!