java 开发工程师—如何让你的简历脱颖而出?
所以大家在准备简历应当注意“直接”两字:能让筛选人能直接地看出本人的教育背景、工作经历和项目经理,并让他们“直接”感到这份简历能纳入考虑范围。根据这个原则,大家可以按次序在简历中列出如下表所给出的要素。
##2 该如何描述公司的工作情况
这部分一般是按时间倒叙描述,比如可以按如下的格式写:
2018 年 11 月到 2021 年 3 月,在 xx 公司,职务是 Java 高级开发。离职理由是想进一步发展。
2015 年 2 月到 2018 年 11 月,在 xx 公司,职务是 Java 初级开发。离职理由是想进一步发展。
按此格式写之前的公司情况
这部分的内容应当尽量靠前,在罗列公司情况时,请大家注意如下的四个要点。
第一,工作情况可以和项目经验分开写,一般会在后继的项目经验里写具体用到的技术框架以及所做过项目的细节,在这里的工作情况描述里,可以不用过于复杂,让招聘方看到你之前的公司情况即可。
第二,尽量别出现长时间的“空白期”,比如上份工作是 2 月份结束的,而下份工作是 6 月开始的。如果出现持续三个月以上的“不在职状态”,需要在简历中说明情况,比如这段时间你是换城市发展了,或辞职复习考研或复习考公务员,总之得找个能说得过去的理由。
第三,在简历上,尽量别让人感觉你每份工作都做不长,但不能以此作假。比如我见过有候选人会合并公司,比如 2016 年 11 月到 2017 年 3 月在 A 公司,2017 年 4 月到 10 月在 B 公司,他为了不让招聘方感觉他换工作太频繁,在简历上就写 2016 年 11 月到 2017 年 10 月在 B 公司工作,而故意合并了 A 公司的经历。这样的话,如果遇到背景调查,会露馅,即使有些公司不做调查,在劳动手册等材料上也能反应出真实的工作情况,所以这种做法有一定的风险性。
这里推荐的做法是,不要合并公司,但可以写明理由,比如当时小王是被外派公司 A 以人力派遣的形式外派到 B 公司,但没过多久 A 公司因某种原因不再具备人力派遣的资质了,这时小王就不得不终止与 A 公司的合同转而和 B 公司签约,这样虽然看上去小王是换了公司,但实际上没有。通过类似的合理解释,招聘方就不再会质疑小王的工作能力和稳定性了。
第四,可以写上合适的离职理由,尤其当你短时间里换工作比较多,可能引起招聘方的质疑的情况里,更该考虑些合适的理由。
合理的离职理由可以是,想为自己提供一个更大的发展空间,或想通过升级来独当一面,以此进一步提升自己的能力,或公司因资金等方面的原因倒闭了。总之,这不是我主观上不稳定,而是由于客观原因导致我不得不换工作。
而可能会导致没面试机会的离职原因是,待遇问题(虽然大家心知肚明,但不能这样写),或无法承受大压力,或同事领导排挤。这类理由往往会暴露出候选人的缺点,所以不建议大家采用。从这意义上来讲,“合同期满”也不是一个好的离职原因,因为如果候选人能力强,那么为什么原公司不和你续约呢?
总之,在描述公司情况时,一旦出现会让招聘方感觉你能力不强或不稳定时,一定得醒目地写上足以信服的理由,这样你的简历才会有机会被继续被读下去,进而你才会有技术面试的机会。
##3 描述项目经验的技巧
之前已经提到过,招聘方非常注重候选人简历上相关技术项目经验,因为这至少能有效地证明候选人实践过相关技术,而不是只具有理论知识。
具体而言,招聘方首先会看候选人最近半年的项目里用的是否是和本岗位相关的技术或框架,如果是,那么说明候选人能在入职后能直接上手干活。其次,会看候选人所有项目经历中和本岗位所用技能(或框架)一致时间年限,一般招聘方会对这个年限有个最低的标砖,当然越长越好。
如果大家自己感觉项目经历明明很匹配但最终却连面试的机会都没,那么问题大多就出在这个环节,下面我们来具体分析下描述项目经验的技巧。
3.1 尽量把学习培训项目和毕业设计项目往商业项目上靠
商业项目是指能挣钱的项目,和它对应的就是些不以挣钱为目的的学习项目或毕业设计项目。正因为客户付了钱,所以商业项目的要求要远远高于学习或毕业设计项目,这也是为什么招聘公司会看重商业项目而会主动过滤学习项目的原因。
职位描述上的相关技能年限一般只是指商业项目经验,而一般不会包括学习项目经验。所以对于一些介于商业项目和学习项目之间的项目,尽量当成商业项目来写。
比如小张在大三时帮计算机系的王老师所在的 ABC 软件公司干了半年的活,如果小张在简历上写:“在校期间,从 x 年 x 月到 x 年 x 月完成了 xx 系统,用到了 xx 技术”,那么这多半会被当成类似于课程设计的学习经验,但如果再加上如下关键性的描述:“这个系统是属于 xx 公司的 xx 商业项目里的一部分,我和另外三位开发人员做了半年,最终这个系统成功上线并在客户 xx 公司的环境里投入运营”,那这样小张的商业项目总年限里就能加上这半年时间了。
又如小李在做毕业设计时,花了 7 个月的时间参与了导师的一个电商商业项目,他主要的工作是设计一个调度算法,但也参与了一些诸如订单管理模块的工作。如果他就平淡地写一句,毕业设计是 xx,毕业论文是 xx,那么招聘方看过就算了,也不会认为小李在做毕业设计时还有过商业项目经验,这样小李未免有些吃亏。
但如果这样写:“在 x 年 x 月到 x 年 x 月的 7 个月里,在毕业设计中,我参与了 xx 公司的 xx 电商项目,客户方是 x,我参与了订单管理和 xx 模块,并设计了其中的调度算法,在我的毕业论文里,详细介绍了这种做法”。文字没修改太多,但足以让小李增加 7 个月的商业项目经验。
在招聘过程中,我们经常会看到有些候选人参加了培训学校,在里面也做了一些实训项目。如果这些项目是用来让学生练手的,而没有产生商业价值,那么虽然这些项目可能来自真实项目,名字也叫 xx 实训项目,但非常可惜,我们没法把它当成商业项目。不过我们看到过一份印象比较深刻的简历,某候选人小丁在某三个月的时间内,一边参加培训,一边还在朋友的公司里兼职做着 xx 信息管理系统的项目。那么如果小丁能很好地在简历中很好地说明这个情况,而且还能在面试中很好地回答相应的问题,那么我们不得不相信小丁在这个三个月里确实做的是商业项目。
对于高级程序员而言,他们的项目年限一般会超过 3 年,所以多挖掘出来的商业项目年限就属于锦上添花了。不过不少公司在招聘时往往会设个最低年限标准(一般是 1 年半到两年),这对刚毕业的或工作经验小于 2 年的初级程序员而言无疑是道坎,所以如果大家处于这青黄不接的时间段里,就更得挖掘这些“严格意义上还算商业项目”的项目经历并写到简历中,这至少能帮大家争取到更多的技术面试机会。
不仅如此,我们发现大多数初级程序员的水平其实也差不多,这时就得看谁的商业项目经验丰富了。比如有次我们无法从两位候选人中权衡,因为他们的综合条件和面试情况都差不多,但其中有一位在大三阶段有段为期 6 个月的商业项目实习经验,另一位没有(也有可能他也有但没当成商业项目来写),这种情况下我们就录用了有实习经验的候选人了。
3.2 通过具体案例来看项目经验该怎么描述
假设某公司需要招一个 Java 高级开发,如下是职位描述。1、计算机及相关专业毕业,3 年以上 Java Web 项目开发经验;熟悉 Linux 平台。 2、精通 JAVA?编程,熟悉 Spring、Spring MVC、Mybatis/Hibernate 等开源框架,熟悉常用 cache 机制,Jsp/Servlet 等技术。 3、熟悉 Tomcat、Nginx 等应用服务器的配置和优化。4、熟悉数据结构和算法,熟悉 Java 多线程开发。熟悉 MySQL、Redis,熟悉数据库索引。5、了解 Web 前端技术,包括 HTML5/CSS/Javascript 等。6、拥有良好的沟通能力和文档能力。7、勤奋而善于思考,愿意不断挑战和提升自己。
这里先说个技巧,如果候选人能通过简历让招聘方确信,在最近的项目里他用到了不少和招聘岗位相关的技术,那么他得到面试机会的可能性就会大大提升,因为招聘公司会认为候选人能入职后很快上手,而不会有太长的熟悉期。所以,我们可以按如下思路改写最近做的一个项目。
那么我们就可以根据职位需求,从如下几个方面来描述项目经验。
第一,简要描述项目的背景,比如时间范围,客户是谁,项目规模有多大。
从 x 年 x 月到现在(这个时间范围至少是最近半年),我参与某外汇交易系统,客户是 xx 银行,这个项目组的构成是,1 位项目经理外加 10 位开发,总共的规模大概在 80 个人月左右。
第二,大致描述项目的需求和包含哪些模块,然后简要说下你做了哪些模块,同时说下在这个项目用到的开发工具和主要技术点,这部分的描述如下所述。
这个外汇交易系统包括挂盘撮合成交、实盘成交、反洗钱和数据批处理等模块,我主要负责了挂盘撮合成交模块,其中用到了 Spring MVC 架构,数据库是 Oracle,用 Mybatis 实现的 ORM,该系统是运行发布在 Weblogic 服务器上,我们还用了 Nginx 来实现负载均衡,用 Redis 来缓存数据。在这个项目里,我还用到了 JS 实现了一些前台页面。
这里请大家注意如下的要点。
1 招聘方在看简历时,更关注的是用的技术,所以这里无需过度展开该项目里的业务细节,比如无需用大篇幅来写挂盘撮合成交模块里干了什么事情。
2 如果在这个项目里用到了职位介绍里给出的技术,应尽量写在项目描述里,但也要不能不顾事实地一股脑全写上。
第三,这里可以在刚才的基础上展开写这些技术在项目里是如何用的,以此来进一步证明你和所应聘职务的匹配度。同样这里也应围绕技术,而别多写业务细节,大家可以参考如下的范例。
具体而言,在这项目的挂盘撮合成交模块里,我们用到 Spring MVC 框架,用到了其中的拦截器来拦截非法的挂盘订单请求,在数据库层面,我们还把一些常用数据放入 Redis 里,在 Redis 里我们用到了 list 和 set 这两种数据类型,而且还用到了 master-slave 模式。在使用 Nginx 时,我们是通过配置来避免出现 Session 粘滞的问题。
如果大家只写用到过 Spring MVC 和 Nginx,那么筛选简历的人看一眼就过了,最多认为大家用过。但如果大家再写一些只有用过才能知道的细节点,比如 Nginx 的 master-slave 模式,那么就会给招聘方留下比较深刻的印象,大家给他们的感觉就会是“不仅用过,而且熟悉(或精通)”。
##3.3 这些亮点你大多做过,不加在简历中有些可惜
我们见过不少简历,在描述项目时,也能像上文一样,能根据招聘职位的具体要求展示出自己的匹配点,这种简历属于“达标”,即可以纳入考虑范围。在这个基础上,如果大家在项目里有下表列出的亮点,一定请写上,这就是大家优于别人的地方。
上述的一些技能要求未必会出现在职位描述里,但确实都属于亮点,而且在大家的项目里,多少会用到些,所以不加有些可惜。当然,如果大家有其它的亮点,也可以加上,毕竟这能提升大家简历的价值
##3.4 多写些和项目管理相关的技能我们见过不少简历,在其中更偏重技术或诸如沟通和协作方面的能力,但事实上,项目管理方面的技能同样重要。这里可能会有个误区,不少人认为初级程序员的简历无需写项目经验,但事实上,项目管理技能也是靠积累的,哪怕刚工作 1 个月,也能积累这方面的能力。
在这方面,项目经理更偏重于如何根据项目需求合理地分配任务和协调进度,对于程序员而言,则可以在简历中写项目管理的方式以及如何使用常见的管理软件来提升项目管理的效率。
这里我们就以“敏捷开发”为例,向大家展示下如何介绍自己项目管理的方式。
我们这个项目采用了敏捷开发的模式,具体而言,我们会根据项目总体需求,设置若干个发布点,在时间上,每隔 1 个月就会设置一个。根据任务的优先级,我们先会大致定下每个发布时间范围内的大致任务,而在每个发布时间范围内,会根据当前情况适当微调。
而且,我们项目组还引入了“每天站立会议(Stand up Meeting)“的形式,每天我们项目组会用大致 20 分钟的时间一起讨论下每人已经完成的任务、要做的任务和遇到的问题,这样即使遇到阻碍性的问题,也不会耽搁整个项目很久的时间。
相关的内容无需多,大家只需列些“敏捷开发的必做点”,以此来证明自己实践过这种开发方式即可。如果招聘公司也是采用类似的项目管理方式,那么这点一定是个很好的加分项,即使招聘公司采用其它方式,比如瀑布模型,那么你写上这话,招聘方的评价就不会仅仅是“熟悉项目开发的技术”,而且还是“了解并实践过 XX 项目管理方式,对项目管理有一定的了解”,这样这份简历获得面试机会的可能性就大大增加了。如果大家在项目里用到的不是敏捷管理模式,而是其它的管理方式,也可以照着这个思路写。
大家在简历中写这部分的内容时请注意如下的两个要点:
1 在项目管理方面一般都会用到些工具,也就是说,大家可以写上在自己项目里用到的工具以及这些工具应用在哪些方面,但别什么都不写。
2 面试官在看到相关描述后,一般会在面试中询问些细节,比如 Jenkin 的配置方式等,也就是说,大家不仅要写,还得适当地了解下这些工具的使用细节,以备面试时的提问。
4 投送简历时的注意要点
简历准备得再好,如果用不恰当的方式投递出去,同样无法得到面试机会,所以大家在发送简历时,应当注意如下的要点。
4.1 不要发送“万能“简历,根据具体的职位要求进行微调
这可能是不少求职者的“通病”,他们往往就准备一份简历,然后看到一个合适的工作机会就发一份,也不关注这个公司的行业背景,也不看这个职位的具体要求。
其实大家的简历是“闭门造车”的形式写出来的,只能“尽可能”地描述自己掌握的技能(无法完全描述出你项目里用到的所有技能要点),而每个公司的职务要求一定不会完全相同,所以大家在发送简历前一定得根据具体的职位需求改写相关的项目经验描述,以求达到“匹配度”最高的效果。
评论