【笔试篇】技术岗笔试考点分析与准备
就我目前接触过的绝大部分同学来说,很多人对笔试的了解甚少,所以本章节我们将详细讲解笔试,让大家对笔试心里有个大概的认知。
为了更好讲解本章节,我将通过问答的形式来介绍一些校招笔试。
技术岗笔试题型
首先,不同的公司笔试的内容有些许差别,特别是央国企的笔试类型,和私企的笔试类型差别很多,不过,我们本书主要是讲私企,所以笔试这块,也是以讲解私企为主。
一般在各种私企中大厂中,笔试主要有两部分构成:编程题 + 选择题,如果是互联网大厂,部分只有编程题,没有选择题。
对于有有选择题的笔试,在占比上,一般是 编程题:选择题 = 6:4,要么是 编程题:选择题 = 5:5;考试市场则是 120 分钟。
编程题考什么?
绝大部分的公司的编程题部分考察算法题,就是我们平时 LeetCode 做的那些算法题,不过在 LeetCode 写算法题的时候,我们是需要给出核心代码,就不需要我们处理输入输出这些,我们称之为核心代码模式;而在笔试中,则需要我们处理输入输出,我们也称之为这些模式为ACM模式下。
所以呢,大家在参加笔试之前,一定要先去熟悉一下 ACM 模式,以免对输入输出处理不熟悉,浪费了很多时间,反正挺多同学吃过这种亏。
除了算法题之后,有些公司也会给出少许的 SQL 题,所以我们也需要把常见的 SQL 题刷一刷。
考试时间 120 分钟,题目数量一般是 3~5 道题,第一道题比较简单,属于打卡题,之后的题就很难了,难度普遍比 LeetCode 的 hard 题还要大,基本属于竞赛级别。
所以我们能够做出 1~2 道算不错了,做出 3 道就很强了,如果全部做出来,估计得 ACM 竞赛选手了。
选择题考什么?
选择题考察很杂,可以理解为把你大学四年所学的课程,都参杂进去,比如数据结构,网络,操作系统,计算机组成原理,面向对象语言,等等。
而且笔试考察细节,和你面试考察的是不同的维度,所以对于选择题的笔试,我们很难去做周全的准备,因为涉及太广了。
推荐的准备方法就是,在面试前一个月,可以去刷几套真题,把里面涉及到的内容搞定就可以了,没必要在笔试上花费太多的时间。
笔试该如何准备?
根据我对大部分学生对了解,很多人面试的内容都没时间准备,更别说笔试的内容了,所以呢,如果你没啥时间去准备笔试,那就随缘就好了,因为面试的准备,优先级远远大于笔试。
但是对于面试准备的差不多的用户,那么笔试还是可以好好准备一下,毕竟笔试考的好,是可以提高你的面试概率。
那准备笔试的话,主要以准备编程题为主,因为编程题,区分度非常大,而选择题,大家可能做的都差不多,比如很多人可能会利用搜索工具来解决编程题,如 GPT 之类的。
但是编程题,则不行,很多编程题是新题,你搜索引擎根本搜索不到,哪怕是 GPT,也都做不出来,而且面试官可能更加关注你的编程题成绩。
所以呢,主要以准备编程题为主,下面是关于笔试准备的一些建议
1、选择题考前刷一刷即可
这块我上面分析了,准备起来很容易,大家考前一个月,找个 10 套笔试真题刷一刷,把遇到的问题熟悉一下就行,比如怎么计算二叉树高度啊,通过前序中序的结果来找出后序遍历的结果啊,等等。
熟悉一下这些常见的题型,一般笔试都没有太大问题,其他就随缘吧,笔试选择题占比低,甚至部分公司都没有选择题。
2、算法题要总结题型
编程题非常难,也无法临时突击,所以建议大家要尽早开始刷题,然后学会总结各类题型,这非常重要。
笔试的题之所以难,是因为新,其实当你知道了答案,你会发现好像也不怎么难;其次则是灵活,比如你在 LeetCode 刷题,它可能就是单纯运用了某个算法思想就能解决了。
但是笔试中的编程题,则可能运用了几种算法思想,你一时之间可能想不到,所以会觉得很难,所以我感觉平时要多总结各种算法题型,特别是对于自己不熟悉的题型,那你总结多了,在笔试的时候,运用起来就会很灵活。
3、输入输出练熟悉
很多人经常在输入输出这块浪费了很多很多时间,因为平时刷题都是采用核心模式,导致笔试的时候很抓急,让他分割个字符串,都不知道怎么分割,经常在处理出入输出这一块,花了大量时间,影响后面做题。
所以呢,最好在笔试几个月前,就适合去适应按照 ACM 模式刷题,把常见的输入输出搞定,就不慌了。
4、参加一些周赛
可以参加一下 LeetCode 或者 牛客网 的算法周赛,周赛和笔试很类似的,完全可以把它当作一场笔试去做,时间多的可以多参加几次。
但是对于时间不多的,就不建议经常参加了,参加几次练习下就行了,毕竟参加这玩意很费时间,而且对个人提升并不大,所以还是要根据自己的情况去做一些规划。
总结
总之,笔试是一场选拔赛,通过机器来盲选,大家去参加之前,要先去了解和熟悉笔试的规则,毕竟机器无情,眼里只有分数,一就是一,二就是二,不像人,还能理解你。