我最近在帮上海某培训学校里的毕业生做面试辅导,普遍发现很多候选人不是没能力,或者说能力没有差到没有面试机会的程度,但这些同学投出去的简历大多石沉大海,即使有回应,也大多是些外包外派公司或者小公司。
而且当我在公司里以技术面试官的身份筛选可面试的简历时,会发现不少简历根本没有面试资格。其实我知道,这部分简历的主人,其中不少人甚至应该是项目里的技术顶梁柱。但现实情况是,在面试前,面试官只能是通过简历来挑选面试者。也就是说,哪怕候选人能力再行,但如果简历编写不当,那么甚至连面试的机会都不会有。
其实哪怕候选人能力再差,只要有面试机会,也总能通过面试知道自己的薄弱点,事后也能不断改进,但如果面试机会都没有,那么事情就难办了。所以在这篇文章里,就将以资深面试官的视角,面向Java程序员,给出些写简历的技巧,这样不管怎样,至少能确保候选人能有面试机会,好了,正文开始。
1 从面试官筛选简历的流程分析,为什么你没面试机会?
说穿了就两大主要原因。
第一,面试官在你的简历上,看不到足量的商业项目年限,或你最近半年的项目经验和职位介绍的不符。
第二,你简历上有频繁跳槽或未工作时间过长等不利因素。
至于你学校一般,或者之前公司是外派外包,这些都不重要,下面将以如下的职位介绍,先给出筛选简历的大致步骤。
1 先看相关技术的总年限,看下是否达到2年要求。
比如某份简历上,Java相关经验前后累计有2年,那么至少这点过关,相反如果不足两年,基本上就没面试机会了。
2 再甄别这些项目是否是商业项目经验。
能挣钱的项目叫商业项目,比如你在公司里帮人家干的项目就算。但比如某项目是在培训学校里做的,不能用来产生价值,那么即使里面用到的技术能匹配上,那么也会排除。如果某项目看上去疑似学习项目,比如xx电商,xx财务系统,xx图书馆系统,而且项目技术写得很笼统,也会排除掉。排除掉以后再看总体项目年限是否达到2年,不足的,也过滤掉。
3 再看最近半年的项目描述
对比JD上要求,看下匹配程度。比如本岗位需要掌握Java,Javascript,XML,MySQL和Redis等技术,但某份简历上,最近半年项目描述里给出的是C#技术,那么就有可能fail了。如果最近半年做的根本不是软件项目(比如测试或运维),或者干脆未在职,可能也没面试机会。
4 再看最近一年到两年的工作情况
比如最近有频繁跳槽,或者每工作做不长,或者最近刚从培训班里出来,或者最近未在职时间超过2个月,那说明候选人可能有问题,这类简历哪怕能有面试机会,也会让面试官着重考核。
我最近所在的公司,有固定的简历渠道,一般一个岗位少说能收到十几份简历,多则能收到几十份。但如果按上述筛选简历的方法,能剩下的估计不到10份,然后按如下的方式进行排序,权重高的先面试,当优先面试的候选人满足要求时,之后的候选人也就没机会了。
权重1:在预算的范围内,对比相关经验的使用年限
比如本职位给出的工作年限虽然是2年,但如果有候选人有更多的工作经验 ,那么一定是优先面试的。但这里也有个度,比如当前岗位的预算是15k/月,某位候选人虽然是有5年开发经验,但要工资要求是20k,那么就不能选了。或者即使候选人简历上没有给出期望公司,但如果工作年限超过5年,一般也不会面试。
权重2:综合对比简历中的技术加分项
在上述职位要求里,明面上给出的加分项是要具有MySQL的优化经验,以及具备Redis缓存的使用经验。但如果候选人在简历中,还写了具有linux部署能力,或者OOM调优经验,或者有阅读底层代码的能力,或者有其它加分项,这也能优先面试。
戏法拆穿了一点不难,通过上文给出的筛选简历的流程,大家一定会看到,只要用心,得到面试机会一点也不难,好,在下文里,就将给出如何分析职位介绍,以及如何对应改善简历的技巧。
2 阅读分析职位介绍的技巧
说到“阅读分析”,这看上去像语文问题,而不是技术问题。其实真说对了,这还真是语文问题。那么怎么在职位介绍里挖掘关键点呢?
操作点1:找到对年限的要求
比如上述职位介绍里,给出对年限的要求是:“Java相关经验有两年要求”。
操作点2:找到其它硬性指标
比如这里是“大专以上学习,计算机相关专业”,这也是大多数简历上给出的措辞。其实大多数程序员应该都能满学历要求,而“计算机相关专业”,这个范围也比较大,比如大学课程里包含软件课程的通讯等专业,或者上过培训班的其它专业,其实只要项目年限达标,技术满足要求,大多数公司一般不会用这点卡人。
操作点3:列出要求的技术
这里就多了,有一个算一个,比如xml,MySQL,ajax等等,请注意,每份职位介绍上,要求的技术一定不同,所以对这块,大家需要仔细阅读,别遗漏了。
操作点4:列出要求的技术加分项
比如这里是MySQL优化经验和Redis缓存,在其它职位介绍里,如果大家看到“有xx技术优先考虑”之类的措辞,这也是加分项。
至于职位描述里的措辞,是告诉你成功入职后会干嘛,大家看看就行,无非就“开发测试和沟通”这些本职的工作。当大家按上述4点找到职位介绍上的关键点后,就可以针对性地写简历了。
3 让面试官感觉你有足量商业项目年限,且技术匹配
上文里提到了,在筛选简历时,商业项目年限是个硬指标,这必须要满足,同时面试官也会看重相关技术的匹配度。
对此,你需要在简历的开始位置,在给出姓名,年龄,毕业学校和联系方式等信息后,立即总纲性地说明你的项目年限,以及你掌握的技术,以此让面试官在一开始就感觉你的匹配度。针对上述职位介绍,如下给出总纲性文字的范例。
自我介绍(或技术归纳,或其它措辞,总之这里是概要性的归纳):
1 计算机专业(或计算机相关专业,如果其它的,专业别写,先以技术和工作年限打动面试官)
2 有2年(或更多)的Java开发经验,在项目里用过Spring Boot,Spring Cloud(或其它主流框架)框架, 这里赶紧给出你年限达标
3 在项目里用过LNMP Web框架(如果没用过,就写用过Spring Boot等类似的框架)。
4 掌握Javascript,xml,ajax,jquery等技术,熟悉mysql技术和优化技术,熟悉apache等服务器配置及优化
5 在项目里用过Redis缓存,有一定的调优能力
从上述文字里大家可以看到,在第3点到第5点里,你根据事先的阅读分析,列出了你掌握的技术,以此能证明你能满足要求。这里请注意,你不能瞎编,比如你没掌握LNMP Web框架,你就不能写,但你可以写上同类的替代技术。在真实的招聘场景里,候选人没用过要求的技术,这点很正常,只要能证明有相关的替代技术即可。
在写完技术匹配度后,得赶紧写出其它的技术亮点,哪怕这些要求没有出现在职位介绍里,你写上就是你的加分项,很有可能吸引面试官的眼球。如下列出些哪怕是初级开发也能写出的技术亮点。(序号接上文)
6 掌握数据库索引底层数据结构(看下不难),有用索引进行数据库调优的经验。有用执行计划进行数据库调优的经验。(这也不难)
7 熟悉Java内存结构,在项目里有JVM内存调优的经验,有解决过OOM问题的经验。此类网上文字很多,大家查下学下问题也不大。
8 有通过阅读日志分析和解决问题的能力。
9 肯加班,能承受大的工作压力。
10 其它非技术的加分项,比如拿过奖学金,英语过六级,竞赛得奖等。
大家可以换位思考下,当面试官第一眼看到上述信息后,一定能感觉到这份简历很匹配,如果后文的项目介绍再没什么大错的话,这份简历大概率能有面试机会。
4 通过挖掘,增多你的商业项目年限
对于候选人来说,具备更多的商业项目年限,那么一定会很占优势。而对于项目年限普遍不高的毕业生和初级开发人群而言,哪怕你就多半年开发经验,这或许就是碾压性的优势。
比如我在做校招时,大多数候选人是没有商业项目经验的,但有位同学写了,大三时帮老师做了半年挣钱的商业项目,结果这位同学就被录用了。而我在面试初级开发时,也发现大多数候选人的技术背景差不多,而项目年限一般也在3年以内,但如果有候选人比别人多半年经验,那么一定是优先面试优先录用的。
这里不提倡大家瞎编项目年限,站在面试官的角度,甚至反对这种弄虚作假的行为,但如果你有如下的商业项目经历,一定得加上,不写白不写。
1 如果你在大学阶段,利用假期在外面公司里干过开发兼职,比如半年,在统计商业项目年限时,可以加上这半年,后面在写项目描述时,也可以加上。
2 如果你在做毕业设计或课程设计时,你老师让你做的项目来源是外面公司,你做好以后,这个模块或系统能用来卖钱,那这也是商业项目。反之就只能算学习项目。
3 在校阶段,你和你的朋友合伙干了一个项目,比如校园网图书租借项目,如果这已经上线并盈利,那能算商业项目,反之也只能算学习项目。
但是,如果你不把上述项目当会事,不把这个时长统计到总体项目年限里,那么吃亏的是你自己。或者在写项目描述时没写好,那么面试官也会把它们当成学习项目,而非能真正帮到你的商业项目。
5 通过公司列表,证实你的项目年限
在之前,候选人仅仅是列出了总体项目年限,但口说无凭,所以在写好总纲性的介绍文字后,可以倒叙列出你工作过的公司经历,请注意这里无需写展开项目,用具体的公司来证明你的项目年限,样式如下。
2019年3月到2020年12月, xx公司 初级开发
2018年7月到2019年2月, xx公司 初级开发
2018年3月到2018年7月, xx公司 初级开发(读书阶段兼职)
其它公司,依次展开
这里请注意,在这些公司干的总时长,需要和你之前说的总体年限相匹配,而且,如果有项目是你在读书阶段做的兼职项目,需要额外说明。由于面试官最终是根据项目描述来核实候选人,所以除了写公司列表之外,还要在简历中详细地介绍每个项目情况。
6 面试官如何甄别虚假项目
在给出写项目介绍的步骤前,先讲下面试官如何甄别虚假项目,先请大家引以为戒,这样在后继讲写项目情况时,就能有的放矢了。
首先要说明,只要判断出诸多项目里有一个是非商业项目,这份简历就可能直接fail。而且面试官也知道,大多数候选人会非常认真地写最近的项目,所以会看最近的项目外,更会仔细看离现在最远的几个项目。
第一,如果项目的时间段和在培训班的年限重合,或者候选人此时还在读书,并且没额外说明,那么这段项目会被认为学习项目。
第二,如果项目太大,比如某某电商系统,某某erp系统,同时项目时间也就3个月,那么大多可能也是培训班项目或学习项目。
第三,项目明显看不出价值,也就是说很少有公司愿意出钱做这个项目,比如某社区超市项目,某学校的借书系统,这些都有现成产品,所以此类项目会被认为虚假项目。
7 重头戏来了,如果在简历中编写项目介绍
在之前众多的铺垫下,这里迎来本文的重点:在简历中如何编写项目介绍。还是根据之前给出的职位介绍,这里先给出一个范例。
时间范围:2019年5月到2020年7月 xx信息技术有限公司
项目名:xx连锁超市系统支付模块维护项目
注意:如果项目太大,可能会被怀疑,而此类维护项目反倒有一些可信度
用到技术,spring boot,mysql优化,javascript,ajax,jquery,数据库调优,apache,nginx,Redis等等,(请注意,最近半年的项目经验尽量和JD要求技术一致)
职责范围:开发订单和风控模块
技术和亮点:
1 用Spring Boot开发项目,其中用到JPA等组件(在项目介绍里,进一步落实jd要求的技术)
2 有数据库调优经验,用到索引和执行计划
3 用到前端javascript,ajax,jquery等组件,实现了全栈开发。
4 排查过慢sql和jvm性能问题。 (给出调优方面的亮点)
5 采用敏捷开发模式,用Maven git管理项目,用Sonar管理代码质量,有用junit做单元测试的经验,用jira管理bug和进度(给出项目管理方式和工具,证明是商业项目)
6 Redis缓存的使用经验。(有就写)
7 参与过排查线上问题
8 后期项目比较紧,我能和团队一起加班,保质保量地完成任务。
在上述的项目描述里,大家应当注意如下的细节:
- 把职位介绍要求的技术,具体细化到项目里,这样,Spring Boot和MySQL等技术,才真正算有实际项目的经验。再具体来看,这个项目做了14个月,如果你之前写的总体Java项目经验是3年,那么算上其它类似包含Java等技术的项目时长,应当满3年。
- 项目名称照实写,别过度夸张。比如这里是维护项目,有一定可信度,但如果夸张成超市管理系统,那么项目过大,反而不可信。
- 不需要详细写项目需求,即无需写你做过的业务要点,但需要尽可能地给出职位介绍里要求的技术。
- 你上文里列出的技术亮点,比如JVM调优或数据库调优,应当列出。
- 最为重要的是,假如你的项目是毕业设计项目或课程设计项目,这些有可能被认为是学习项目,但假如这还真的是帮外面公司做的商业项目,那么就需要给出项目管理工具和管理方式,以此证明是商业项目。
然后你就照上述范例写其它项目,把所有的工作时间段都填满。
8 编写项目经历时的注意要点
我在筛选简历时,经常会发现如下的问题,这里列出来供大家警示。
1 项目时间段和公司时间段还有毕业时间不匹配,比如明明在2019年3月到6月是在A公司上班,但这段时间没项目经验。遇到这种情况,我第一反应是,简历造假。
2 写出的项目经验过于突出需求,而忽略的技术。比如有些简历上,大书特书某某项目的需求要点,而没有写用到的技术。
3 相关项目年限无法达到JD上的要求。比如之前写了,有3年Spring Boot开发经验,但包含Spring Boot的项目总时长才2年半,而另外半年的项目用到的是C#.NET技术。
4 这也是比较关键一点,把非商业项目,比如培训班项目和自学的项目也当成商业项目经验写到简历上。由于在统计项目总时长时,会只看商业项目,即在公司里干的挣钱项目,对培训班项目等这类项目,可以说是写了白写。
大家在写好项目经验后,需要斟酌再三,因为如果一旦有漏洞,后果就是简历石沉大海,而且面试官也不会和你说,所以可能真的就一直这样错下去了。
9 有不在职时间段或不稳定等不利因素,需要给出解释
在筛选简历时,如果这份简历有面试价值,那么面试官有可能会逐一查看候选人在不同公司工作过的时间段,以及做项目的时间段。
- 比如候选人A上份工作是18年7月,但下份工作是18年10月,这样中间就有3个月未在职。
- 比如候选人B毕业时间是17年7月,但第一份工作是从18年3月开始,这样也会有半年左右的工作空档。
- 又如候选人C在简历上的工作时间和项目时间只有到3个月前,那么也有3个月的不在职时间。
- 又如有选人D最近1年换了3份工作,这样就属于频繁跳槽。
面试官如果看到候选人有不在职时间,尤其是最近处于不在岗状态,那么会质疑候选人的工作态度和工作能力,如果看到候选人频繁跳槽,就会认为候选人不稳定。这样,哪怕候选人有足量技术年限,也会失去面试机会。
对此如果在简历上确实有类似的情况,那么就需要在简历上给出说明。这样做的目的是,向面试官说明,出现此类情况的原因是客观因素,而不是主观因素。下面给出些我看到的合理的解释说明。
- 比如出现超过3个月的不在岗时间,那么比较合理的解释是:为了考研,或者准备出国,但最终没成,或者是和朋友一起创业,总之这段时间候选人是在积极上进,而不是消极地不去找工作不去上班。
- 如果出现工作频繁变动,比较合理的解释是:公司暴雷(不是我想换,是公司的因素),或者是工作场地没变但外包公司变了(其实并没有换),或者是换城市发展,所以一份工作只做了半年就跳槽,总之也不是个人主观原因想要换,而是有一些客观原因不得不让候选人换。
总之,当简历上出现上述频繁变动工作或长时间不在岗等不利因素时,千万别心存侥幸,因为面试官一定会看,但相反如果你给出了合理的解释,其实这并不是问题。
10 总结,这样做,你至少有面试机会
来总结下本文给出的实践要点。
- 候选人需要尽量仔细阅读每份职位介绍,从中分析“要求年限” ,“相关技术”和“技术亮点”等因素,以此对应地准备简历。
- 候选人需要尽可能多地挖掘商业项目经验,增长相关技术的项目时长。
- 在简历的开始位置,总纲性地列出你和该职位的匹配度。
- 候选人需要通过诸多项目,证明自己相关经验的总时长达标,并尽可能地在项目里,给出和职位介绍匹配的技术点和亮点。
- 需要在通过项目管理方式和项目管理工具等细节,证明这是商业项目经验。
- 遇到长时间不在岗和频繁换工作等的不利情况,需要给出解释。
这样的话,就能大概率确保你这份简历帮你争取到面试机会,否则的话,哪怕你能力再强,但无法通过简历让面试官感觉到这点,你可能就没有面试机会了。
当你得到面试机会后,该如何去准备面试?当你在面试时,又该如何全面地向面试官展示你的技能和亮点?或者说,你当前能力一般,如何在短时间内快速提升自己?对于此类面试相关问题,本人将在后继博文里为大家一一解答,敬请期待。