引言
首先我们要理解,后端和前端的边界在哪。后端和前端目前的边界越来越模糊,但后端总的来讲,更注重逻辑的组织、底层特性的利用。因此,后端要想学好,基本等同于要把整个计算机世界那些奠基的石块都捡起来——你首先得站在巨人的肩膀上。计算机的书籍浩如烟海,选择读哪本,读的顺序非常重要。笔者自认技术不足,但是在家园之前没有人做这件事情,只好强作此文,如有纰漏,还望及时告知,感激不尽。
后端最重要的基础:
算法,操作系统,网络,数据库。(重要程度基本从前往后)
在这些基础之上,再去构建你对语言特性的了解,各种框架的实现,以及对架构的理解。
算法
必做事项
- leetcode前200题,能刷多少刷多少
推荐书目
-
《算法(第4版)》
-
《算法导论》
操作系统
必读书目
- 先看计科的操作系统教科书
- 《UNIX环境高级编程》
- 《深入理解计算机系统》
推荐书目
- 操作系统导论
- 《linux内核设计与实现》
- 《unix网络编程卷1》
网络
必读书目
- 《计算机网络 自顶向下方法》
- 《TCP/IP详解卷1》12-16章
数据库
必读书目
- 《Designing Data-Intensive Application》
- 《数据库系统实现(第2版)》
- 《高性能mysql(第3版)》
- 《Redis 设计与实现》
推荐书目
- 《MySQL技术内幕:InnoDB存储引擎(第2版)》
- 《hbase权威指南》
- 《Hadoop权威指南(第四版)》
- 6.824系列论文与实验: https://pdos.csail.mit.edu/6.824/
语言
推荐学习的语言:
c/c++, java, golang, python, rust, kotlin, shell, js/ts, haskell, scala
以上基本涵盖了国内外大厂的主流使用语言。因为目前国内面试后端,语言题主要考c/c++, java, golang,所以如果希望找工作的,还是建议以这几门语言为主去学。
c++
必读书目
-
《C++ Primer》
-
《STL源码剖析》
-
《深度探索C++对象模型》
推荐书目
-
《Effective C++:改善程序与设计的55个具体做法》
-
《More Effective C++(35个改善编程与设计的有效方法)》
Java
必读书目
-
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》
-
《On Java 8》(《Java 编程思想》第5版)
-
《Java并发编程实战》
-
《effective java》
其他推荐
-
人月神话
-
架构整洁之道
-
代码整洁之道
-
编译原理(龙书)
-
代码大全
-
SICP
-
博弈论(网课就可以)
-
Visual Group Theory (介绍群论的入门书)
-
基础拓扑学 (Armstrong的书)
-
离散数学 (看个人情况学习,一般网课就可以入门)
本文为🐋学长分享在内部网站US上,现转载