1. 前言
互联网行业因为广为人知的高薪以及相对于传统工科行业更多的发展机会,最近几年涌入了越来越多的非计算机专业毕业的从业人员,校招 / 社招面试的时候,候选人往往也会被分为两种:科班和非科班,互联网科班一般特指大学就读计算机科学与技术或者软件专业,非科班则包含其他各大传统工科甚至是文科专业。
某些大厂在招聘后端开发工程师时会严格要求科班背景,因为对于非科班的同学,一般都能胜任计算机网络应用层以上的工作(例如编写一个低并发的后台管理系统),但是对于计算机底层的知识往往是一片盲区。当对计算机网络了解甚少的非科班同学遇到线上问题时,或者网络通信相关的运维故障,往往会束手无策。
所以了解计算机底层如何运作是非常有必要的,我们这里谈到的计算机底层知识,包括但不限于:
- 计算机组成:CPU 运行的原理,内存、硬盘等各种硬件如何协调合作;
- 操作系统:支撑后端框架的系统,具体做了哪些操作;
- 编译原理:对于 Java 、C++ 这类高级语言,如何经过编译,转换为汇编语言以及二进制文件;
- 计算机网络:计算机与计算机之间如何进行