时间紧张,理论为主
时间充裕,6分理论,4分实践
最后还是要落到实际处。
计算机网络(1-2个月)
我首先学习的科目是计算机网络。计算机网络是互联网大厂考核的重中之重。推荐资料:
- 书籍:《计算机网络自顶向下方法》、《计算机网络(第7版) (谢希仁著)》
- 公众号:小林coding
和计算机考研不同的是,互联网面试中,计算机网络考核的核心频次是自顶向下的。如果大家时间紧凑的话,强烈推荐《计算机网络自顶向下方法》,如果大家时间紧凑的话,按着这本书,看到网络层就可以结束学习了。一般网络层以下互联网考核频次极低,大家面试的时候答不上来也没关系。
考核重点:
- 应用层:DNS原理、HTTPS原理、HTTP状态码、HTTP1.0/1.1/1.2区别
- 传输层:TCP三次握手四次挥手、TCP与UDP区别、流量控制拥塞控制
- 其他:OSI七层协议与TCP/IP五层协议
操作系统(2-3个月)
操作系统在后端开发中考核的频次最低,所以可以放在最后准备。这里推荐的资料有:
- 书籍:《operation system three easy piece》、《操作系统真象还原》
- 公众号:小林coding
- 视频:b站Up主Y4NGY
对于初学者,拿小林coding入门是最好不过的了,小林coding讲操作系统的文章可以说是图文并茂,是市面上最好的入门读物。在对操作系统有一定了解后,大家可以针对知识点学习《操作系统真象还原》。这本书是完全用汇编与C语言实现了一个32位的操作系统。通过这本书,大家可以对操作系统某些知识点达到源码级的理解。
针对Linux操作系统的知识点,可以看一下Up主Y4NGY录制的课程,形成一个有体系的理解。
考察重点:
- 进程管理: 用户态内核态区别、进程,子进程,线程的区别和实现方式、进程调度算法,死锁的条件及解决方式、进程通信方式
- 内存管理:逻辑地址与物理地址、页表、快表
- 文件系统: inode、文件、目录、目录项
关系型数据库(1个月)
关系型数据库是后端开发工程师的必备技能。数据库学习分为两部分,第一部分是SQL语句的学习,第二部分是数据库的一些基础知识。推荐资料:
- 书籍:《SQL必知必会》
- 视频:B站尚硅谷周阳老师的《MySQL高级》
- 网站:leetcode
关于SQL语句的学习,大家可以参照《SQL必知必会》,配合leetcode数据库版的练习题加以理解。有一些互联网厂在面试时会出情景题让求职者写SQL语句,这部分需要勤加练习。
关于数据库的一些基础知识,重点需要掌握:
- 事务:事务特性、事务隔离级别、MVCC概念及实现原理
- 索引:B树,B+树概念与区别、稀疏索引和稠密索引
- 数据库引擎:MyISAM和Innodb的使用场景和区别,一条SQL语句的执行过程
- 数据库语句优化:七种Join方式、最左匹配原则、group by,order by、explain 关键字、优化语句的流程、分库分表、水平切分垂直切分
- 数据库日志:Undo log、redo log、bin log、update log各自的使用场景