【干货】BAT面试经验分享会实录

2019 Java 开发者跳槽指南.pdf (吐血整理)….>>>

本文是2018年3月24日20:30举办的“面试经验分享会”的实录。
感谢携程国际机票事业部的高级技术专家Richard参与了本次分享。

更多技术分享会请关注“大闲人柴毛毛”公众号,定期举办免费分享活动。

请多多分享!

1. 互联网公司的秋招/春招校招什么时候开始?【回答者:柴毛毛】

秋招一般9月份开始,一直持续到11/12月。但一些互联网大厂为了提前将大神收入囊中,可能会提前到7/8月份。所以如果你的目标是BAT这样的一线互联网大厂的话,需要提前做好准备。这些公司一般7/8月份就开始内推。我建议大家都提前准备,7/8月份的时候投一波互联网大厂,这些公司的面试官往往水平较高,能够发现你简历中的问题,你可以借此机会一方面知道自己基础知识有哪些不足之处,也可以知道项目经验还有哪些需要完善的地方。当然,如果你面上了,在九月初就能拿到offer,不用再经历后面漫长、心累的漫漫求职之路了。

春招一般招两批人,一批是下一届的实习生,一批是这一届秋招补招。
先来说说补招,一般秋招结束后,有些offer收割机可能同时拿到了好几个offer,那么他肯定要拒掉一些offer,手上只保留一个最中意的offer。从而被他们拒掉的公司就又有名额空出来了,所以他们会在来年3月份开始补招。秋招不是很理想的同学可以在过年期间继续复习,等到春招补招的时候再搏一搏。但毕竟是补招,职位并不像秋招时候一样多。

春招实习招聘一般也是过年之后的3/4月份开始。BAT一般也开始的比较早,一过完年就开始内推,而其他公司一般4/5月才开始。所以如果你有实习的打算的话,过年之前就要开始准备。

2. 面试官喜欢什么样的简历?【回答者:柴毛毛】

最近阿里的2019届实习生招聘正在进行,我看到有一些编码能力比较强的同学因为简历写的粗糙,直接被Pass了,面试的机会也没有。所以说,简历很重要,是你实力最直接的证明。

下面我就重点说说如何写好一份简历,以及简历书写中的禁忌和套路。

技巧1:措辞一定要慎重!【针对互联网大厂而言】

很多同学都很困惑,对于各种技能,究竟啥时候写精通,啥时候写熟悉,啥时候写理解?

对于这个问题,我建议,你面互联网大厂的时候一定要谦虚谨慎。你认为自己精通的,那你在简历上写熟悉;你认为自己熟悉的,那你在简历上写“了解”。

为什么这样做呢?这是一个心理预期的问题。首先你要清楚,互联网大厂中的面试管技术水平高如天际,你眼里的精通和他们所认为的精通根本不是一个级别。所以如果你写精通,他的预期值很高,但一问,发现只能算是他认为的熟悉,甚至只是了解,那之前的高期望换来的就是高失望。

反之,如果你写的是熟悉,但面试官一问,发现你的水平不只是熟悉,这时候对你的好感度大增。

所以,不要一开始就给面试官高期望,除非你真的是大神,精通源码,思维缜密。

但对于小公司,我建议你稍微浮夸一点点。因为小公司希望找到的人能够直接上手工作,他们没有资本、没有时间培养你。所以他们希望看到的简历是具备解决实际问题,一来就可以马上上手工作的人。

技巧2:项目经验的介绍要详细

我看到很多同学项目经验的介绍过于笼统,也有一部分同学篇幅较长,但都是介绍项目背景,这就大错特错了。

面试官希望通过你写的项目经验,一方面了解你做项目的深度,一方面了解你所掌握的技术体系。如果你的项目经验写的过于笼统,或介绍了很多项目背景,并没有突出这个项目中你所使用的技术、你所解决的问题,那么导致的结果就是面试官会占据主动权,他会根据自己的知识体系来问你关于这个项目的细节,这样你就会失去主动权。一般而言,面试官的知识体系肯定比你丰富不少,他通过这种方式问你一连串问题后,你肯定有很多会回答不上来,这样就会导致面试官对你的印象不好。

所以,项目经验中应该直接指出你所使用的关键技术,并把这些技术点明确、清晰地标明。面试官在给你面试前往往会采用关键词搜索的方式快速浏览你的简历,如果你的关键技术都有明确的标识,那么面试官会立马get到这些技术点,那么面试的时候就会着重考量。

这些写在简历上的技术点必须要有深入的准备。何为深入?即要把这些知识点的原理都搞清楚。你不仅要会使用这些技术,更要理解其背后的运作原理。这当然是要花较多的时间和精力的。所以大家需要根据自己的能力,至少提前一个月做好面试的准备。

技巧3:项目经验的书写格式

根据我的经验,项目经验一般用如下方式书写比较好:

采用了什么技术+解决了什么问题+达到了什么效果
举个例子:
首页数据获取的过程采用了基于ThreadPoolExecutor的线程池技术,大幅降低了首页的渲染时间,从原先的500ms降低到120ms。

这个例子中,第一句介绍了“采用什么技术”,这句话主要用于引导面试官,相当于告诉他,你会ThreadPoolExecutor;第二句告诉了面试官你用这项技术解决了什么问题;第三句告诉面试官,你的方法是确实可行的,因为你做了实验,有具体量化的指标,这样显得你的方案有理有据,更有说服力。

由于面试时间有限,一般面试官只会着重问你一两个项目。所以你需要在简历上至少准备两个项目,并且这两个项目需要详细介绍,提取可以让面试官深挖的关键技术,然后用上面的句式写在简历上。

技巧4:技能清单的书写技巧

大家的简历中,除了写项目经验外,我建议大家再把自己擅长的技术写成一份技能清单放在简历中。

面试一共考察大家的两项能力:软实力和硬实力。

面试官通过项目经验来考察你的软实力:实际动手能力、解决问题的思维方式、学习能力、团队协作能力、语言表达能力等。而硬实力通过考察你的计算机基本功来判断。目前的互联网大厂都相当重视程序员的基本功,基本功越扎实则可塑性越高,学习新技术的速度也越快。而计算机基础涵盖的范围较广,如:操作系统、数据库、数据结构、算法、Java、Linux等等。其中每一门科目都可以问出无数个知识点。

所以,大家需要把你擅长的技能写在简历上,这样缩小面试官的提问范围。如果你不写,那么面试官会随意问,如果你运气很差,连续几个问题你都不会,那么本轮面试基本可以结束了。但如果你给出了明确的技能清单,并且每项技能都标注了掌握程度(精通、理解、熟悉、了解),那么面试官就有目的、有选择的问你这些知识点,你的胜算就大了。

当然,写在简历上的技能一定要都有所准备,不能仅仅觉得某些技术流行但你一无所知,就傻乎乎地写上去。比如:很多同学把分布式事务、分布式缓存、消息队列这些高大上词盲目地写到简历中,结果被面试官吊打。

所以奉劝各位,写在简历上的技术一定要有所研究,你可以根据你的实际情况标注掌握程度,但切记盲目跟风,盲目将流行词写在上面。

3. 如何准备面试中的自我介绍?【回答者:柴毛毛】

一般面试开始前,面试官都会要求你做一段简短的自我介绍。

自我介绍一共有两个目的:

  1. 了解你擅长的技能,这样好围绕你擅长的技术进一步深挖

  2. 了解你的表达能力

所以,自我介绍一定要事先准备,临场发挥往往由于紧张,语言组织地支离破碎,给面试官的第一印象就很差。

自我介绍不宜太长,说太多面试官会感觉你抓不住重点。那么,自我介绍究竟要说些啥?

  1. 简单介绍你的学历
    如果你学历较高、或者学校较好,那么就简单介绍下。反之,这点跳过。

  2. 介绍你最擅长的技术
    将你最擅长的技术用一句话概括,好让面试官根据这些技术进一步深入询问。

  3. 介绍你准备最最最充分的项目
    简单介绍一下你最擅长项目的背景(这个项目是干嘛的),然后介绍你在其中扮演了什么角色,解决了哪些问题。

自我介绍的核心要点就是——突出你擅长的东西,引导面试官围绕你擅长的东西继续发问。

4. 如何介绍自己的项目经验?【回答者:Richard】

面试官喜欢有亮点的项目,如果说自己实现了某某页面实现了某某业务功能,这些千篇一律的回答无法吸引住面试官的注意力。在项目里面应用哪些创新技术,自己实现了类似某某框架的功能,自己的项目相比其他项目在技术上的优势都是可说的亮点。

对项目要全局把控,即使只是参与项目的一部分开发也要做到对整个项目方方面面的了解。项目的架构设计,实现的技术细节,使用的第三方库原理,都要全面了解,做到知其然知其所以然。

项目中技术难点,每一个技术细节的实现,都要有自己更深入的看法,这样实现的好处是什么?有没有其他替代实现方式?具体算法是怎样的?可能会存在的问题等等,从设计到底层实现要能引申出很多东西。

5. Java程序员所需掌握哪些知识点?【回答者:Richard】

互联网大厂都相当重视程序员的基本功,也就是计算机基础知识。一个程序员能走多远、爬多高,很大程度上取决于基本功是否扎实。对于应届生而言,大都比较缺乏实战项目经验,虽然会有一定的项目经验,但这些课程设计、实验室项目的质量与公司实际的项目有着巨大的差距。因此,基础知识便成为面试考量的一大重点,而且基础扎实的程序员可塑性比较高,做什么都能比较容易快速上手。

具体的内容请参考:【干货】Java程序员面试考点大合集

6. 和面试官交流有哪些技巧?【回答者:Richard】

  1. 要学会引导面试官
    在回答问题的时候要抛出一些关键词让面试官往自己擅长的技术上问,自己一知半解的东西就不要说出来,很容易被问死。

  2. 面试者要尽可能的说出自己的优势
    被问到的问题一时想不出来正确的答案也可以引申的讲一些相关的东西。要让面试官知道自己对相关知识是有所涉猎还是深入掌握。

  3. 一定要真诚
    不知道就是不知道不要不懂装懂

面试官也不是万能的,很多问题他也做不到全面的回答,面试官的职责是尽可能的引导挖掘出被面试者方方面面的能力,从而评估是否和岗位需求合适。

面试官通过面试来评估面试者的技术水平:

  • 是否对专业技术知识有全面了解?

  • 是否对所掌握知识有更深入了解?

  • 对项目经验是否全面了解?

  • 所用框架原理是否有了解?

  • 算法等基础知识是否了解?

如果对你有帮助,请分享本文!

【干货】BAT面试经验分享会实录



原文始发于微信公众号(大闲人柴毛毛):【干货】BAT面试经验分享会实录