(原书英文名:Interview System: A Interviewee‘s Perspective)😅😅
这段时间我陆续参加了一些互联网公司的面试,大大小小加起来也有十几次了。公司种类比较丰富:外企,国内独角兽,国内大厂,专一领域小公司。我总结了迄今为止的面试套路,分享给大家。
请注意,本文并不是面经,因此不会涉及很多具体的面试题目,只是让大家了解我学习到的面试套路。
希望大家能积极讨论,指点出我的不足。
不同类型的公司风格有很大的差别。列举如下:
1.专一领域小公司:
简述:这些公司可能你的亲戚完全不会知道,在外行看来可能是“野鸡公司”,但他们却在某些领域很精。例如“存储驱动器”,“开源数据库”。
渠道:这些公司往往没有大规模的招聘,很多通过各种就业微信群或朋友圈转发。
面试特点:跟面试官风格强相关:可能他只是跟你聊人生,比如“你的项目的挑战在哪里”,“你平时怎么学习Linux”,“你上课听讲吗”;他也可以是从某大厂跳槽创业的大牛,亲自开发了某开源项目,他就会问你他那一领域的深刻的知识,比如“Level DB的MVCC算法描述”。
面试准备:你几乎无法针对性的准备,很玄学。比如面试官很在意985学历,你的学历就可以通过面试;或者你做的项目恰好是他们业务,一拍即合。不过,你仍然需要准备一些基础。有些公司还是要做题的,但不一定是算法题,可以是“写出二分查找代码”,“写出volatile的使用场景”,“C++传引用和传指针的区别”,尽管会涉及到编程语言的细节(比如Java和C++的知识有不同),但这些问题都是基础问题,任何一名程序员都应该知道。总的来说,不需要很多准备。
总结:我并不推荐大家去小公司实习,尽管却是有些公司“深藏功与名”,但校招的机会是宝贵的,实习的时间是宝贵的,请注意我们的职业经历很长久,一开始您需要“镀金”,然后您可以任意选择公司。不过,可以去面试小公司,感受不同的风格。
2.外企:
简述:这里的外企指的是相对于国内大厂规模的外企,例如“第一搜索引擎”,“老牌桌面操作系统公司”,“芯片巨头”,“虚拟化与云计算巨头”,尽管他们在国内的部门可能并不大。这里并不包括传统外企(如快消,金融)的IT部门,因为我没有这方面的面试经验,暂且略过,但我认为与前者相似。
渠道:有些公司有大规模的招聘,有些却没有大规模的招聘,很多通过各种就业微信群或朋友圈转发,比较重视内推,甚至某些公司“只能”通过内推。
面试特点:外企的特点就是做事流程规范,这也体现在面试。面试官往往经历了很多培训,面试流程也是规范化的,这使得他们可以给候选人打分,通过综合多个面试官的分数,确定是否录取。因此,往往有很多轮面试(集中在一天或分散在几周,3-5轮面试),这样的好处是不容易翻车,就算你在某一轮面试表现不好也没关系,另一轮好好表现!外企的规范还体现在考核题目,“算法题”是他们首选的考核方法,,因为很标准,往往面试官不会“聊项目”或“聊八股文”(即技术知识),而是直接做题,而且是“白板编程”!不过不用担心,一般外企面试官都会耐心地引导你做出答案(这点与国内公司有很大不同,他们可能会不耐烦),所以还请你不要闷着头做题,有任何思路或困惑都请及时交流。有可能面试官会问一些项目或八股文的问题,但不会很难:“项目的简介”,“线程和进程的区别”,仅仅点到为止。
面试准备:请注意做算法题,有些公司的算法题难度已经“突破了正常人的上限”,因此实力不够还是不要尝试了,绝大部分外企的算法题不算很难,《剑指offer》和LeetCode前200题足以应付,大多是“玩数组”(2-sum 3-sum 特定要求查找元素),“玩链表”(插入删除,反转), “基本算法”(二分查找,快速排序,atoi),“二叉树基础”(基本遍历),一般不会涉及动态规划。边界条件处理很重要(考虑 i是> 还是 >=,输入是否为NULL)。“八股文”问题都是基础问题,任何一名程序员都应该知道。
总结:外企的965近几年很诱人,但并不是所有部门都965,请注意!另外,很多人担心外企裁员,撤出中国,外企在大陆是“边缘业务”,“给印度人打工当人下人”,等等。或多或少有这种问题。但单从实习角度考虑,外企有比较规范的培养模式,而且不加班(甚至允许家里办公)对仍有学业负担的实习生是友好的。“外企好还是大厂好”这类问题不过多讨论了。
3.大厂:
简述:大厂总是吸引人的。这几年包括“内容巨头”,“社交巨头”和“电商巨头”的大厂实力强劲,薪资诱人,很多实习生希望通过实习转正进入大厂,给履历“镀金”。大厂的规模往往在万人以上,这与独角兽形成对比。
渠道:还有人不知道怎么投大厂?牛客网冲浪就完事了。
面试特点:大厂的面试包括“八股文”,“项目”和“算法题”,与外企的区别是大厂的算法题比例没有很大,有些甚至不考算法题(甚至笔试都可以不参加)。“项目”和“八股文”的比例取决于面试官的风格。因为流程不规范加上人员太多,面试官素质有高有低,我遇到过实力强,表达清晰,循循善诱的面试官,也遇到过只会“抓手赋能”讲空话,口齿不清,铁板一块的面试官。“八股文”的考察牛客网有很多,比如“TCP三次握手”,“虚拟内存页表”,“虚函数原理” “JVM线程模型”(近几年内卷导致“八股文”难度上升了,考察“Concurrent HashMap算法”,“Redis持久化”的问题也变多了)我本人是讨厌八股文的考察的,千篇一律的问题和千篇一律的回答,当我被问到“阅读过源码”这类问题是,我是讨厌的……特别是我一个偏OS方向,写C类型语言的学生,遇到了一个抓着“Java voaltile关键词”,“Spring bean源码”,“MySQL索引优化策略”,真的是极度厌烦。我认为这仍然是因为面试官自身素质的问题,他们无法抓住我的项目询问,而是从题库机械化地选择提问。 “项目”一般是科班学生的优势,也是非科班的劣势。如果面试官的业务和简历上的项目吻合,他会考察一些“深度八股文问题”,比如我的项目跟虚拟化与RDMA网络相关,他们就会提问“vhost架构是怎样的”,“hugepage的好处”,“KVM怎样中断注入”,“RDMA内存绑定原理”,相信真正好好做项目的同学能回答好这种问题。“算法题”考察区别于公司,“内容巨头”广为人知注重算法考察,难度从“单链表反转”到“最长公共子序列”,甚至到“题目都看不懂的动态规划”,只能多做LeetCode了。“电商巨头”似乎算法题不难,“2-sum”,“反转二叉树”都很简单,不需要做很多准备。从我的经历看,我是偏底层的方向,算法没那么重要,因此就算是“内容巨头”,也不会拿动态规划难为我,“单链表每k个反转”足矣。
面试准备:请适当刷题,面经主要是了解八股文(尽管我认为过多地考察八股文说明面试官并不厉害),准备自己的项目(要能描述项目的初衷,项目的好处,做项目过程中遇到的困难和解决办法)。在大厂面试遇到聊得来的面试官,特别是能表达清晰的面试官很重要,与这样的人做同事一定是愉快的。
总结:大厂可以“镀金”,但今年有些发展迅速变成大厂的公司可能没有晚上的培养模式。如果在面试中感觉到面试官特别注重对某单一领域的考察(甚至这个领域和你的项目无关),请留心,可能他们只是招一个临时工打杂,完全有可能!
全部评论
(2) 回帖