《程序员面试金典》
1 操作系统
入门《操作系统》
深入《unix 高级环境编程》 C++用的
《Operating System: Three Easy Pieces》
操作系统: OSTEP
《深入理解计算机系统》第八章、第九章、第十二章。
其他:《深入理解计算机系统》第十章与第七章
操作系统《操作系统概念》,MOOC 上哈工大的视频, B 站的清华大学一个老师讲的操作系统视频,也很好;
2 计算机网络
计算机网络有时间的话就看《Computer Networks: A Top-Down Approach》
时间比较紧的话就看《图解 http》和《图解 tcpip》系列;
《深入理解计算机系统》第十一章。
《TCP/IP 详解》卷一。www.52im.net中有。
《计算机网络(自顶向下方法)》可看可不看,TCP 那本更优秀,这本也非常好,同时看也是很好的。
计网《计算机网络》谢希仁版,视频看了 MOOC 上的哈工大视频;
《HTTP 权威指南》
3 计算机组成原理
《深入理解计算机系统》1~6 章。
4 设计模式
《大话设计模式》
《Head First 设计模式(中文版)》
《设计模式 : 可复用面向对象软件的基础》
5 算法
《算法》(第四版)
《算法笔记》
6 系统设计
《数据密集型应用系统设计》7 成以上内容吧,消息中间件的特性(bilibili 上随便找个看看),缓存的底层设计 ( https://www.bilibili.com/video/BV1qE411T719),《微服务架构设计模式》
《大型网站技术架构:核心原理与案例分析+李智慧》,《淘宝技术这十年》,《深入分析 Javaweb 技术内幕》等
其他书籍:
《码出高效:Java 开发手册》,对开发所涉及到的知识都可以有一个比较系统的了解
《浪潮之巅》、《数学之美》只看了一点点,
7 Linux
shell 可以看看 linux 命令行与 shell 脚本编程实战(看过不愧是圣经) linux shell 脚本攻略(没看过,)
8 进阶
MIT CS 6.824 (分布式),CMU 15445 (数据库), MIT CS 6.828 (OS) 如果有一年的时间
其他我看过觉得还可以的: Fluent Python, Java Concurrency in Practice, redis 设计与实现(版本略老), 深入理解 Java 虚拟机, Oracle 官方的 JVM 手册
刷题的同时可以把一些类库的源码看一下,几个容器类、线程池、ThreadLocal 等等,都是很牛的人写的很牛的代码,我觉得看了之后收获挺大的