其实,Spring、Spring MVC、Spring Boot 都是 Spring 体系的。所以,要找后端工作,Spring 是必须要掌握的。有了 Spring 的基础,别的 Spring 体系可以即插即用的。
SSM 中的的 M——Mybatis 也最好掌握了,有数据库基础的话,Mybatis 学起来也不算难。
Netty 是一套网络框架,我估计初期用到的机会不多,但奈何有些面试官会问、会考,所以,若有闲暇功夫,推荐对它看个大概。
相关推荐的书有《Spring 5 开发大全》、《MyBatis技术内幕》、《Netty进阶之路:跟着案例学Netty》。
1.6 常用数据库
一般来说,找工作,熟悉一个数据库就好。推荐 MySQL,这是最常见的数据库(其次是 Oracle)。
要熟悉到什么程度呢?我认为最低水平要知道怎么用 MySQL 执行 CRUD 操作。但是这还不够保险,因为很多面试官为了防止新人删库跑路,会对面试者要求更高。
像在 CRUD 里,R 代表查询,是后端工程师最常打交道的操作。而查询用的又对又好是对工程师使用 MySQL 水平的重要标准。所以,面试官就希望面试者能对 MySQL 的索引原理有一定的了解,面试的时候也会经常问这类问题。
同样的道理,除了查询以外,CUD 即增、改、删是非常危险的,既可能影响性能,还可能出现各种误操作。所以,为了保证把人招进来,不会对数据库乱操作,面试的时候大概率会考察程序员对 MySQL 中的锁和 MVCC 的理解情况,明白怎么用才安全可靠。
如果对这些都不太熟悉,推荐看下《MySQL是怎样运行的》,对 MySQL 讲的非常透彻。
1.7 Linux 基本操作
现在只要想做后端工程师,就肯定避不开和 Linux 系统打交道。
基本的命令操作是肯定要熟悉的,比如:目录切换、设置环境变量、文件的增删查改等等。
除了这些基本命令,还要理解 Linux 中一切皆文件的概念。并且对于一些重要概念,比如:管道、重定向、标准输入输出、标准错误输出等,也要明白他们是什么东西。
有时候,还需要开发人员直接在线上机器去编辑文件,所以还要会用 Vi/Vim 去在线编辑一些文件。
另外,如果服务器有了问题,起码基本的查询性能的命令,也要会用。比如用 netstat、vmstat 等命令去查看下机器状态。
这些知识可以看下《鸟哥的Linux私房菜 基础学习篇 第四版》。
2. 计算机基础知识