1. 课程简介
本课程的核心内容可以分为三个部分,分别是需要理解记忆的计算机底层基础,后端通用组件以及需要不断编码练习的数据结构和算法。
计算机底层基础可以包含计算机网络、操作系统、编译原理、计算机组成原理,后两者在面试中出现的频率很少,课程主要关注网络和系统两个模块,计算机网络模块主要介绍了常见的 TCP 协议、HTTP/HTTPS 协议,操作系统模块主要介绍了操作系统的进程和线程、内存管理的页面置换算法等高频题。
后端通用组件主要分为存储持久化数据的数据库,存储临时数据的缓存以及通信中间件。常用的支持持久化存储的数据库有 Oracle Database、SQLite 以及 MySQL,其中 MysQL 已经是后端必备的数据库技能。常用的缓存方案有 memcached、guava cache、Redis,其中 Redis 是目前大型应用系统首选的缓存组件,课程介绍了 Redis 的数据结构和应用问题。通信中间件则介绍了 RabbitMQ 的常见应用问题。
数据结构和算法部分最能提现候选人的编程基本功以及逻辑思考能力,课程主要介绍了最常见的算法案例,例如快排、链表、二叉树、动态规划。
课程总体上是面向工作 3 年内的初中级程序员以及准备面试后端岗位的应届生,因为篇幅原因并不能涵盖所有的面试题,候选人需要做到举一反三,例如能够通过对于二叉树的各种遍历操作总结得到解决二叉树问题的递归算法模板,这也是本课程的最终目的。
2. 为什么要做这门面试教程?提升面试能力与了解市场现状
就业市场和所有的市场相同,影响就业指标的关键就是供需关系。在互联网行业,供需主要分为两类,需求方是作为招聘方的互联网公司,供给方则是作为候选人的程序员。如果互联网公司对于程序员的需求大于市场上流动的人员数量,此时求职的程序员就会有更大的议价能力,这种情况一般发生在每年的金三银四时间段。如果程序员数量过剩,互联网公司则会普遍提高选拔指标,尝试筛选出更符合条件的候选人。
从供给侧来看,根据 2021 年高考填报志愿的统计数据,计算机和金融已经明显成为两大金砖专业,越来越多的高水平学生流入到计算机专业,以及观察考研数据,可以发现计算机已经是最受欢迎的目标专业。
从需求侧来看,国内互联网经历了 2010 年之后的移动互联网流量大爆炸时期,增速已经逐渐放缓,各种大厂的竞争也从寻找增量的用户转为到存量市场博弈,例如在电商领域继淘宝和京东之后出现的拼多多、唯品会等各种细分应用,或者从企业微信、阿里钉钉以及字节跳动飞书的办公软件领域的竞争都可以看出存量市场竞争的激烈。蛋糕已经很难做大,所以大家都开始花精力研究如何分到更多的蛋糕。
所以未来的趋势很明显,互联网的供给增速飞快,但是需求增速放缓,作为找工作的一方,不管是应届在校生还是工作时间不长的程序员,都需要提高自己的核心专业素养。