一、校招面试杂谈
前提
之前一段时间面试校招同学比较多, 相比于我之前毕业那会,互联网校招的门槛是越来越高,所以对于校招同学的要求也越来越高,但是万变不离其宗,毕竟校招同学还没有真正经历过一些企业遇到问题的锻炼,更多的时候还是看同学的学习能力和成长潜力。
这个专栏下,我主要聊两个问题:
1.对于校招同学,会问到哪些问题,以及可以学习的一些知识点。
2.对于已经投身于互联网开发的初级同学,面试会问到哪些问题,以及可以进阶的一些知识点。
前面几篇主要就先聊聊对于一个互联网校招同学,需要掌握哪些知识点,以及聊聊大厂面试这件事,第一篇先做一个大纲性质的文章,后面开始聊一些具体的事例,以及具体的一些知识点。
简历
对于一个互联网校招,我也看到过非常多的简历,有名校的也有普通学校的,基本上可以说大家简历上写的项目,一看都是大学的课程设计,或者一些看着就比较简单的项目,对于项目经验这块其实是不太能问出什么东西的,这部分考察点其实也比较明确,主要就是看能否比较好的描述自己项目是做什么的,自己做了哪些,用了什么技术,里面的一些点是如何实现的。
以两类比较常见的项目为例:
图书馆管理系统,这个基本大家都是耳熟能详
实验室做过的一些项目,比如图像识别,深度学习应用等等
其实大部分简历上面的项目,考察官并不是特别感兴趣,基本属于一个非企业级的应用,但是大家不要灰心,这里最重要的倒不是说还需要继续去做更复杂的项目,其实更加关心的是你是否能把整个项目讲解清楚,并且在这个基础上是否能说到一些更深入的一些亮点。
技术能力
一般来说面试官一个关注的点都是技术能力,尤其是一面的面试官,通过技术面来进行筛选,毕竟相对其他的一些潜力来说,技术面客观性更加的大一些。而且技术面有一个特点,大家网上应该看到过各种各样的面试题,但是其实一般校招的面试上都是比较基础的,所以这些问烂的面试题是需要大家学习一下的,就算暂时不深入理解,就是硬记也得记一下。 如果说一些简单的问题,你的回答都是磕磕碰碰的,很容易给面试官留下一个技术水平不扎实的印象。
技术面试来说,大概有三类引出方式:
一种是根据项目来问,就以图书馆管理系统来说,这里必然会涉及这么一些常见的知识点,比如项目中用到了数据库,能说一下
谈谈你对事务隔离级别的理解,索引的底层使用的是什么数据结构,如果是B+树,以及你对谈谈你对 B+ 树的理解。从你的项目中逐步引出一些基础的知识,也算是考察了一些基本概念的认知。
一种是根据自己的题库直接问题,主要在于项目的对话中,可能一直在聊一些项目的问题,比较难带出这些技术问题,所以后面过了以后,希望更直接的看是否对某些基础比较了解。
一种是根据你简历上面写的一些技术问题,在聊的过程中,不断的深入。 比如之前面试过一位同学,先聊了聊代码中对内存的使用,然后聊到虚拟内存的作用,操作系统如何进行内存的分配等。
各大厂其实对于校招的要求,技术这块基础能力是需要达标的,基本分至少要对常见的问题要能进行回答,如果这部分比较卡壳,比如问一个域名访问的过程中经过了哪些步骤。 你的回答中,无法比较好的描述网络的基层结构,对于DNS不清楚等等,那可想而知,这个印象分是非常差的,很有可能因为这个就直接挂了。
算法能力
研发同学需要刷算法题,这个逐渐成了一个必考的项目。 前面的技术面试如果出一些八股范式的题目,可能是因为见识的多了或者换个不好听的说法,就是会背了。
为了避免这些,也希望能真的识别大家的代码水平,那写一道算法题,既考察了思维能力,也考察了编码的能力。 一般来说在问完了前面的问题,就到了这个环节。 这个我看基本大家都有各种讨论,这个其实也好训练,去leetcode把热门的题目都刷一遍,能比较好的理解,并在不看答案的情况下写出来,基本问题不大。
这些年也自己面试或者面试别人,也出了很多的算法题,整体来说遇到的算法题都属于middle左右的题,一般也不会太过困难。 一方面本身面试时间不足,一方面也主要是考察一些代码能力,用一些刁钻的题目来考察并不能看出真实的水平。
不过虽然算法可能不是那么难,但是这个很多时候也是个决定性的问题。 如果你写出来了,那会结合其他的点一起看下是否通过。如果你没有完全写出来,有大体思路,也是可以考虑的。 如果一点思路没有,那就比较困难了,毕竟现在的竞争也比较激烈,每天面试的优秀同学是比较多的。
一面/二面的 面试官的心理上,比如今天一天面试了8位同学,那基本不可能全过,也不可能全不过。 因为这样会给hr和ld造成一种放水或者没有筛选能力的质疑。 所以如果你的算法题没有一点思路,那大概率会被从这6位同学中被筛选掉,所以多见识点题,这个真的是可以通过刷题努力来解决的。
工程能力
其实校招面试对工程能力的期待没有那么高,主要简历上看到的项目,至少我看过的,大部分都是学校自己想了个啥做了个demo用于简历的,或者实验室一些老师交代的课题。这种项目,有些一眼看就是应付面试的,实验室的问题很多都是算法类的,跟开发之类的岗位的诉求不是那么的一致。 所以一般的考察点主要是能否比较好的描述清楚自己做的项目的点,简单点也问题不大,希望能讲清楚自己的各个模块。 遇到的同学中,最怕的是简单的项目听起来也不是自己做的,这个记不清楚,那个记不清楚了,印象分会非常的差。
对于工程这块大家不要太害怕,其实比较好学校同学写的简历上的项目,也区别不是很大,最重要的搞清楚自己写在简历上的项目是自己了解的,亮点上主要还是关联的技术能力。
潜力
各大互联网公司其实对于校招有一个更大的考察点,希望能找到比较有潜力的同学。 潜力这个其实不太好考察,也没有一个文档明确说提哪些问题,怎么回答算是有潜力,所以有很强的主观判断。
虽然说潜力问题上没法直接按考题来背诵,但是也是有几个切入点的:
比如一些课外额外的代码阅读有自己的亮点,比如阅读过一些开源代码,并且能比较好的进行交流,说出你的心得, 那学习能力上必然会给面试官进行加分。
交流沟通顺畅,描述项目或者回答问题都比较有条理,这样也会给面试官留下一个比较好的印象,说明这个同学思维是有序的,以后也会成长为一个比较好的同事,不至于那么难沟通。
对于某些问题有很深入的了解,比如如果问你关于操作系统的问题,你除了能回答出正常的一些基本问题,并且还能深入回答看过一些linux的具体实现点,那这样会对你的潜力的判断上有比较好的感官。
总结
校招面试主要考察点,有 技术/算法/潜力/工程, 其中我认为 技术+潜力是最基本盘, 算法至少要有个思路,工程能力有就是亮点,没做过复杂的也问题不大。现在校招越来越不容易了,也希望通过这个专栏能有一个地方跟大家聊聊这些点,希望每个人能都收获自己心仪的offer.
#牛客创作赏金赛#针对互联网校招以及3年以下工作经验的同学聊聊面试考察点以及日常工作需要提高的能力