(尊重劳动成果,转载请注明出处:https://yangwenqiang.blog.csdn.net/article/details/106033403
冷血之心的博客)
按照惯例,我先来个自我介绍吧。楼主北邮本硕毕业,18年4月份入职小米。目前任职快手高级Java工程师,CSDN认证博客专家(访问量190W+),CSDN学院讲师,GitChat分享者。
在2020.3月,参加社招面试,拿下了阿里,头条,快手,百度以及美团的社招Offer。当然了,用于练手(失败)的公司包括陌陌,猿辅导以及滴滴。
之前发布过一篇单纯的面经,感觉对大家的参考意义有限。并且跳槽之后可以用于学习总结的时间有所缩短,所以我将以上八家公司的面试进行了一个总结来给大家分享。
本篇博文所述的重点包括如下内容:
我们先来说下校招面试。校招面试主要考察的是大家对于基础知识的理解与掌握,数据结构和算法的熟练度。对于项目架构,业务逻辑方面的考察较少。这也就要求我们熟练掌握各个模块的基础知识点。
那么社招面试呢?
社招面试考察的部分包括:基础知识点的掌握,对业务逻辑(项目)的理解以及对未来的职业规划等。
社招面试中对于所做项目的考察,以及根据项目衍生出去的知识点是相当看重的,可能直接决定面试的成败。
我个人总结了下校招和社招的区别:
为什么说社招面试中的XXX为什么这么实现比较难?
因为,我们在网上搜集到的资料中,绝大多数都是**在介绍XXX是什么?XXX是怎么实现的?**唯独没有介绍为什么这么实现,甚至于面试官会问还有没有别的实现方式?或者更好的实现方式?
这就导致同一个知识点,社招面试的难度可能会直线上升。并且我们日常也缺乏思考,喜欢背题,所以导致社招面试表现不佳。
接下来,我们按照社招面试一二三轮所考察的知识点来给大家进行一个介绍。
不知道大家有没有这种感觉?面试中的第一轮才是真正的生死面,至少从我个人经验来说,确实是这样的。即使是社招面试,第一轮依然逃不脱我们前面所学的基础知识点。
如果校招面试考察的是这个知识点是什么?怎么实现的?那么社招面试在大多数情况下都会继续考察为什么要这么实现?
也就是说,我们在牛客刷面经的时候会觉得,你看这个社招面经的水平好低呀,简直就是校招水平,都是一些简单的基础知识点。我们某些同学甚至会膨胀,觉得自己对这些知识点已经熟练掌握啦。
殊不知,社招面试考察的是**为什么这么实现?**这个问题可不简单,好多知识点已经烂大街了,网上随便一搜,看看就懂了。但是,真正分析其为什么这么实现的深度好文少之又少。社招主要在考察我们是否对一些知识点进行过深入的思考与理解。
接下来,我们来看下一面的具体考察形式和知识点吧。
因为是社招面试,一轮面试官会让我们选择一个自己认为最可以体现自己技术能力的项目进行介绍。在你介绍完项目大概的业务逻辑之后,面试官会会让我们说出该项目中的技术难点和技术卡点。(这块其实很难很难,后续介绍)这块项目的介绍与提问大概要花费15-20min左右。
然后就是基础知识点三连问,**是什么?怎么实现的?为什么要这么实现?**下边列出这段时间笔者遇到的高频基础知识点。(注意啦!!!注意啦!!!别眼高手低,看着简单,但是你能扛得住三连问吗???)
好了,一面的基础知识考察主要是上边这些。这个过程大概20min左右,其实也问不了几个问题,前提是你回答得还不错。
接下来的环节属于**“手撕”算法**环节,比较幸运的是,视频面试期间,各大公司基本采用了牛客的在线视频面试方式。所以,我们可以在面试间直接写入可以运行的代码。社招对于算法的考察比较基础吧,笔者在多家公司的面试中都未曾遇到特别难的算法题目,这里还是简单罗列下遇到的算法题目:
还行,对于有准备的各位来说,这些算法都不太困难。待会在资源分享段落,楼主将会分享自己私藏多年的算法学习节奏,助你备战面试!!!
社招一面(生死面)容易挂的第一个点,就是刚开始的项目讲解的一般,没有亮点。项目中的技术难点和技术卡点无法表述出来,很容易给面试官一种“这人不行”的感觉。至于基础知识还是得靠我们平时多想想是什么?怎么实现?为什么这么实现?
简单总结一句:讲解一个优秀得项目,面试就通过了一半。
一轮面试如果通过得话,恭喜你,你的面试其实已经通过了一半。因为一面面试官已经在基础知识方面对你进行肯定,二面面试官得提问方向就相对比较多了。二面面试官得重头戏还是你对项目的理解。
本轮面试会让你继续讲解一个或者多个项目,因为没有了基础知识点的考察“压力”。面试官会对项目进行深入了解,包括其业务架构,技术架构与技术原理等。大概包括如下的技术点:
当然了,在这些比较开放的问题之外,部分面试官依然会考察一些基础知识点,这个看各个面试官的风格了。但是,二轮面试看重的还是项目技术架构以及你所做的贡献有哪些。(PS.手撕算法我们都统一在前面介绍了,二轮面试也是需要手撕算法哦)
二轮面试考察的不仅仅是基础知识点的掌握,更重要的是实际的业务逻辑能力。如果你可以在回答中表现出自己良好的解决实际线上故障的能力与水平,并且在实际的工作中对一些方向有进行过深入的了解,那么你的面试之路将会顺利许多。
为什么将第三轮/第四轮面试放一起呢?是因为有的公司只有三轮技术面试,而个别公司会有四轮技术面试,大同小异吧,我们这里统一进行介绍说明。进行了最后一轮技术面试,意味着前面面试官对你基础知识的肯定,你的业务逻辑与处理问题的能力也得到了肯定。
本轮面试基本上就是业务部门老大在面试,主要考察的方向也比较固定吧。主要考察的方向包括:
怎么样呢?是不是感觉比较轻松?所以说,不要害怕Boss面,大老板一般都是很随和的,不会刻意去为难大家的,尤其是在前面轮次已经进行了详细的考察之后。能走到最后,你的各种能力基本得到了肯定,大Boss喜欢你还来不及呢,怎么会为难你的?当然了,一些面向对象的系统设计,包括各个模块的划分,数据库表结构的设计我们还是得全面考虑,设计出来才行哦,关键得是思路与设计能力。
恭喜你,如果你已经进入HRBP轮次得面试,那么你离正式通过面试就差一小步啦!HRBP面试主要考察候选人得价值观和上进心吧。主要涉及问题如下:
对,你没有看错,大概就是这些问题,只要我们稍加准备即可应对HRBP面试。笔者这边是没有遇到HRBP面试淘汰候选人的现象。如果真的遇到了这种情况,那可能是大家前面的技术面试表现不够出色,勉强达到了可要可不要的分数。这个时候,如果出现了更加优秀的候选人,那么即使HRBP面试完成,依然会进行淘汰。所以,我们重点还是要提高技术能力。
那么社招面试都有哪些技巧呢?我认为技巧始终应该建立在实力的基础上。那么如何拥有实力呢?分模块进行梳理总结知识点,在日常的学习工作中,对各个知识点进行不断的丰富与补充。
什么?你没有时间进行总结?没关系,待会我会有干货资源分享,大家只需要在此基础上进行差缺补漏即可。
在拥有了一定的实力之后,我们该如何真正应对面试?这里说几个小技巧(建议)吧。
(1)在面试之前,你需要系统的复习准备相关基础知识点(毕竟一轮面试才是生死面)。
(2)在面试之前,你还需要准备一套自我介绍说辞,深度挖掘项目中的技术难点和卡点。
(3)面试过程中,如果之前没有接触或者研究过,可以直接说,“抱歉,我没有研究这块”,切忌不懂装懂,胡说八道,影响面试表现。
(4)每轮面试的反问环节,我们可以让面试官对该部门的业务逻辑进行介绍。
(5)面试结束后,及时写下面经,尤其是面试中回答错误或者一些知识盲点。查缺补漏,每一轮面试都会有所收获。
PS.再说一个特别特别重要的地方!!!做一份高质量的简历。容我说句脏话吧,有些同学呀,本身学历背景就差,还特么的做了一份垃圾简历,你觉得大厂会给你面试机会吗?大厂也是有尊严的好不好???简历都做不好,你还面啥试?请不要浪费内推人和HR小姐姐的时间了好不好???
这里再说个点,在反问环节中,如果面试官很有耐心的给你介绍部门情况和业务逻辑方向,恭喜你,这轮面试大概率是通过啦,好好准备下一轮次面试吧。反之,一句话介绍业务情况,那么你大概率是凉凉了,好好复盘面试,准备其他公司面试吧。
好像到了大家最期待的分享干货时间了。分享点啥呢?挨个在说吧。(一家之言,仅供参考)
如何学习?学习一门新的技术,我们首先需要在查询一些入门级别的博客教程来学习,有了初步的了解之后。买一本相关的技术图书(实体书!!!),看的差不多了,我们再去找一些面试题目去查缺补漏(顺便可以知道重点内容),如果时间来不及或者总结能力稍差的同学,可以买一些专刊来学习,比如说牛客专刊。
在学生时代,楼主没好好学习,算法学的呀说一塌糊涂。这次社招跳槽,楼主在年前用了两个月时间,重新学习准备了常见的高频算法题目。首先力推几个博客:
说到了算法题目,怎么能不说说知名的LeetCode网站呢?是的,必须在上边刷算法!!但是真的有必要对着题库使用题海战术吗?
NO,不需要,至少社招面试肯定是不需要的。校招面试也建议将题海战术放在第二优先级!!第一优先级是这里:
最后,楼主在牛客网上也将剑指Offer上边的常见算法题目重新过了一遍!妥,这时候的水平,参加个社招面试已经很稳妥了,常见的算法题目都可以掰扯掰扯,因为我们已经有了算法思想了。再次推荐:
哈哈,容许我自恋下,我猜下边会有人问:“楼主,你这么厉害,平时都咋学习的?”咋学习?抄作业呗,这里分享下我珍藏多年的干货博客网站吧。
好了,不接着推荐了,再多就学不动啦~
牛客网上边资源很多,这里简单给大家推荐下:
这次的社招面试,笔者也算身经百战,真正拥有了社招面试经历,并且取得了不错的战果,以此可以给大家进行更好的分享,这篇文章大概就说完了,不知道大家有没有一点收获呢?好了,话不多说,让我们一起学习起来吧。希望与大家建立亦师亦友的关系,共同学习,交流与进步。
PS.大家有什么问题可以在下边评论出来哦?楼主看到会和大家一起交流的哈~
欢迎大家关注我的博客:https://yangwenqiang.blog.csdn.net/
对了,说了这么多。怎么能忘记内推呢?快手内推!!!
欢迎大家关注我的牛客专栏:《Java开发岗面试题全解析》 ,点击图片查看详情。
Java开发岗高频面试题全解析,专栏共计32节,已经全部更新完毕。
专栏分9个模块来对Java岗位面试中的知识点进行解析,包括通用面试技能,Java基础,Java进阶,网络协议,常见框架以及算法,设计模式等。
专栏串点成面的解析每个面试题背后的技术原理,由浅入深,循序渐进,力争让大家掌握面试题目的背后的技术原理,摒弃背题模式的陋习。
如果对你有帮助,记得点赞哈,欢迎大家关注我的博客,关注公众号(文强的技术小屋),学习更多技术知识,一起遨游知识海洋~