从面试官的角度,聊聊java面试流程

在这篇回答里,就讲以我常规的面试流程为例,说下java方面大致会问什么问题,以及如何确认候选人达到招聘要求。

先说面试前准备,可能有些面试官是拿到简历直接问,而且是在候选人自我介绍时再草草浏览简历,但我不是这样。

1 问招人的项目经理,这个岗位需要的技术什么,比如必须Spring boot,有数据库调优经验优先考虑,要有2到3年相关经验等等。问清楚了,我就好在面试中组织自己的问题。

2 浏览候选人的简历,找出不利点和加分项。

不利点包括,候选人的学历,非计算机相关专业,候选人的经历看上去像培训班经历,或者项目看上去像自学的,或者最近半年不是做Java,或有超过3个月的未在职时间,或者频繁跳槽。

加分项包括,有获奖经历,或者像我一样出过书,或者有大厂经历,或者最近的项目技术和招聘的很匹配等等。

这里说一下,哪怕在简历中发现再多的不利点,面试也会继续,但这些不利点会写在最后的面试结论中。

3 最重要的是,整理候选人Java相关项目经验和所用的技术。

比如候选人用了spring boot,redis,kafka等技术,那么就划下来,面试时会问。

面试前我大概会用5分钟做上面所说的准备,这是必须的,是对招聘项目组负责,也是对候选人负责,在这个时间点上,候选人大概率是已经到会议室了。



下面开始面试。

1 首先是寒暄,比如要不要喝水,过来时方便吗?这样做的目的是让候选人放松。

2 然后进入到自我介绍阶段,如果候选人没有主动说出以前的项目和公司状况,我会进一步提问。 

候选人一般会说自己的年龄,工作经历,之前所在的公司和掌握的技术。此时,如果候选人说的工作情况和简历上不符,那么我会重点问,以排查虚假简历。

3 随后进入到介绍项目的阶段,这可以说是正式面试的开始。

在这个过程中,我希望候选人用2,3分钟,大致介绍之前项目的情况,用到的技术,涉及到的亮点。但不少候选人会大谈特谈项目的需求,而忽视项目用的技术和两点钟,那么我就会打断,着重提问,这个项目中用到哪些技术?如果候选人简历上写了还用到分布式组件实现高并发,我就会着重问些情况。问题的格式是,我看你简历上写了用到xx技术,结合你的项目需求,说下使用这个技术的必要性。

也就是说,通过项目介绍,我开始询问候选人相应技术(当然是招聘所需技术)在项目中的使用情况,不会过多涉及到技术细节。

如果候选人这个项目真做过,一般能说得上为什么要使用这个技术,比如项目并发量达到5000tps,所以要用nginx做分布式部署,因为支付模块是异步的,所以用kafka做消息队列等。但如果候选人项目是编的,那么大概率是只会说技术,没法说为啥要用这个技术。由此能确认技术的项目经验。

4 然后大致问下项目的开发流程和上线流程,这块如果候选人不知道怎么说,我也会引导。

比如问,你们项目是github还是其它什么方式来管理代码?用Maven还是gradle来管理项目?用(jenkins)什么来部署发布?测试工具是什么(比如junit或其他自动化测试工具)。这方面我只是询问用什么,不会展开问怎么用。这样问的目的一方面是考核候选人的项目开发能力,另一方面也是排查虚假项目。

5 随后是结合候选人在简历上写的技术提问。这块会按如下层次来问,比如我看到候选人写了用Redis做缓存,我第一层会问,为什么要用?无非是数据库压力大所以要用。第二层问,怎么用?无非是用Jedis或RedisTemplate等组件,第三层问,结合一个需求告诉我怎么用?无非是,遇到xx缓存需求,设置键是什么,值是是什么。

如果只是招个初级开发,那么问到这个程度就可以了。如果是应聘高级开发,那么我还会深入提问,比如你用到的Redis数据结构是什么?如何做持久化。如果是招资深开发或架构,那么我再问神深点,比如redis集群怎么搭,redis集群失效了怎么办?redis怎么和数据就交互,有没有遇到缓存穿透问题?

候选人只要简历上写到的值钱技术,比如kakfa,mycat等,我都会逐一询问。这里请注意我的文法,不是简单地问语法,而是结合项目问怎么用。同时,我也会经常去网上看些redis面试题,但我不会直接问,也是会让候选人结合项目说下,相关技术(比如防穿透)怎么在你项目中实现。

6 结合简历上项目以及技术提问这个阶段,我心里会有期望,比如对初级开发的期望是会Spring boot增删改查,对高级开发的期望是要有基本的分布式组件使用经验等等。所以我不在乎候选人有多少问题没回答上,但我在乎候选人的基本盘稳不稳固。

比如面初级开发的时候,我结合项目提问,发现候选人能用Spring boot+JPA(外加其他组件其他注解)做增删改查,其实候选人技术方面已经成功一半了。后面的技术问题哪怕你没说好,只要别太差,一般能过。但如果候选人在基本盘技术方面可上可下,那么就得再通过后面的问题来确认能否过面试了。

7 后面是我(面试官)自由发问,我一般会从Java核心,数据库,(Spring Boot)框架,分布式组件方面问问题。这些问题网上都有,我就不一一展开说明了。

我会把这些问题分为基础,调优和高深三类。初级开发只要求回答出基础问题。高级开发要求回答到调优程度,再高级些岗位需要知道高深类问题。毕竟不同级别的开发在工作中对应的职责不同。

比如Java核心方面,final用法,treeset和hashSet差别等,这些能直接背到答案的,属于基础。Spring boot方面,常用的jpa注解或Spring boot方面注解以及Spring boot开发流程相关问题也属于基础问题。

调优方面的问题好理解,比如你是怎么排查OOM问题的,你是怎么排查数据库性能问题,再展开下数据库索引,缓存等用法。

高深方面包括底层源码,比如ArrayList底层源码。还包括解决实际问题的经验,比如你是如何排查Redis超时问题的,是怎么排查kafka重发导致不幂等问题的。



这里多啰嗦几句。根据我面试的结果,大多数初级开发只能回答出基础类问题,这虽然能达到要求,但通过背题或准备,初级开发也能回答出更高层次的问题,如果回答出了,这就是初级开发的加分项。

但是不少高级开发甚至工作经验在7年以上的资深开发,我看他们简历上项目经验比较丰富,但依然说不好调优或比较高深的问题,这样就很吃亏。毕竟面试官是通过面试来确认候选人的能力,你平时项目做得再好,面试说不好,你的能力一定会被低估。低估的后果就是过不了面试,或者是薪资被打折。



同时,虽然我自认为我面试能力还行,但偶尔也会漏过一些会说但实际能力不达标的候选人,比如某个岗位是按4年经验给工资的,某候选人经我面试时,能表现出这种能力,但进项目组以后,被发现只具备2年开发的能力。遇到这种情况,项目经理会私下和我说,但我不会有事,毕竟我面过以后,项目经理会再面一轮,招进来能力不符的,他也有责任。

这里只展开面试官的角度记录下我见到的情况,至于怎么提升面试经验,大家可以看我相关文章,我有空也会多写此类文章。



面到这里其实我该问的问题都问好了。我已经结合了项目确认了候选人的技术,也从java核心,数据库,框架和分布式组件等角度综合确认了候选人的能力。但我自认为我还算比较为候选人考虑,所以我后面会给候选人一个自由发挥的机会。

我会问两个问题:

1 你有哪些能帮助你应聘成功的亮点?

2 你还有哪些技术亮点刚才没有机会说明?同时再给几个方向,比如比如oom调优,数据库调优,分布式组件使用,底层源码分析等。



如果候选人能说出有具体的亮点或优势,我会记录在案。   

如果是外企面试,我会考核英语能力,无非是,用英语自我介绍,介绍最熟悉的技术和最熟悉的项目。



最后问些非技术的问题,比如期望工资,到岗时间。如果候选人在简历中有不利因素,比如频繁跳槽,我会问下原因。这时我只是记,不会发表任何意见。

当然还有例行公事的一问,我的问题问完了,你有什么问题?完事以后技术面试就结束了。



此时一般会让候选人等会,我会根据面试提问形成面试报告,面试报告一般分三部分。

1 结合岗位需求,说明候选人在java核心,数据库,框架和分布式组件等等方面的情况,是达标,勉强达标还是不达标。为了量化,一般还会给出例子,比如会写这位候选人的能力和组里xx的能力很相似。

2 列出加分项和不利点。前文也已经说过,加分项包括,能加班,年轻,有大厂经历,有海外经历,拿过奖,出过书或博客等能帮助候选人应聘成功的要点,不利点包括,最近频繁跳槽,最近半年的项目背景技术和所需的不匹配,有长时间不在职等。

需要强调的是,候选人如果在面试中表现出的一些不利因素也会记录下来,比如说话太冲,回答问题条理性不强或性格方面不适合团队协作等。

3 第三部分就是结论,结论无非是,通过,不通过,可上可下有继续面试价值,或者是,虽然本组不适合,但可以推荐给其他组面试。

毕竟人家到现场来一次也不容易,所以如果通过,或者可上可下,或者哪怕有继续面试的价值,项目经理一般都会再去面下。如果是可让其他组面试,也会有其他面试官过去沟通。也就是说,如果你是到现场面试,在技术面试结束后,没有继续被面,那么面试结果可能就未必好。至于后面项目经理怎么面,就和技术面试无关了,就不再继续展开了。



也写了这么多了,最后做个总结。

1 本文以我做技术面试官为例,讲述了一次面试的大概流程。其中没有展开写具体问哪些问题,因为这很容易查到,但写了结合项目综合考核候选人能力的问法。

2 从文本里大家可以看到,其实面试能力和实际技术开发能力不是一回事,技术能力一般但面试能力强,照样能过面试,反之亦然。

3 本人既然知道如何考核候选人能力,那同样也知道候选人高效准备面试的技巧,不过这和问题无关,所以就不再展开。感兴趣的朋友可以看我其他文章。或者这个文章如果点击量大,我也会再来更新一波。

最后祝广大朋友都顺利通过面试,早日实现技能和薪资双丰收。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容