从面试官的角度分析,你简历能帮你争取到面试机会吗?(2)

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这些亮点你大多做过,不加在简历中有些可惜


我们见过不少简历,在描述项目时,也能像上文一样,能根据招聘职位的具体要求展示出自己的匹配点,这种简历属于“达标”,即可以纳入考虑范围。在这个基础上,如果大家在项目里有下表列出的亮点,一定请写上,这就是大家优于别人的地方。

可以加入的亮点

怎么加

JVM调优方面

请参考第九章,里面有专门的描述

设计模式方面

请参考第八章,里面有专门的描述

数据库调优方面

1可以说在项目里用过批处理预处理事务等高级知识点。

2 能通过监控查看哪些SQL语句需要调优

3 能通过索引执行计划等方式对SQL语句进行优化

4 进一步的话,能通过数据库集群等方式分散对单个数据库的压力

5 如果做过,也可以写一些关于NoSQL和大数据方面的经验

Spring MVC等架构方面

1 用过其中诸如拦截器、AOP和事务等高级技能点。

2 在搭建框架时,能一起参与并熟悉如何通过框架来提升代码的可维护性。

学习和解决问题的能力特别强

比如可以写,在项目里,自己被分担一块大家都不大熟悉的技能,但你在短时间里就完成了技术调研并把它用到项目里。

能承担大的工作压力

1 由于客户方催进度的原因,这个项目需要加班(总之加班原因不是你造成的)

2 在这种情况下,你能和你的团队一起连续奋斗,最终成功地完成进度。

上述的一些技能要求未必会出现在职位描述里,但确实都属于亮点,而且在大家的项目里,多少会用到些,所以不加有些可惜。当然,如果大家有其它的亮点,也可以加上,毕竟这能提升大家简历的价值。

3.4多写些和项目管理相关的技能


我们见过不少简历,在其中更偏重技术或诸如沟通和协作方面的能力,但事实上,项目管理方面的技能同样重要。这里可能会有个误区,不少人认为初级程序员的简历无需写项目经验,但事实上,项目管理技能也是靠积累的,哪怕刚工作1个月,也能积累这方面的能力。

在这方面,项目经理更偏重于如何根据项目需求合理地分配任务和协调进度,对于程序员而言,则可以在简历中写项目管理的方式以及如何使用常见的管理软件来提升项目管理的效率。

这里我们就以“敏捷开发”为例,向大家展示下如何介绍自己项目管理的方式。

我们这个项目采用了敏捷开发的模式,具体而言,我们会根据项目总体需求,设置若干个发布点,在时间上,每隔1__个月就会设置一个。根据任务的优先级,我们先会大致定下每个发布时间范围内的大致任务,而在每个发布时间范围内,会根据当前情况适当微调。

而且,我们项目组还引入了“每天站立会议(Stand up Meeting_)“的形式,每天我们项目组会用大致20__分钟的时间一起讨论下每人已经完成的任务、要做的任务和遇到的问题,这样即使遇到阻碍性的问题,也不会耽搁整个项目很久的时间。_

相关的内容无需多,大家只需列些“敏捷开发的必做点”,以此来证明自己实践过这种开发方式即可。如果招聘公司也是采用类似的项目管理方式,那么这点一定是个很好的加分项,即使招聘公司采用其它方式,比如瀑布模型,那么你写上这话,招聘方的评价就不会仅仅是“熟悉项目开发的技术”,而且还是“了解并实践过XX项目管理方式,对项目管理有一定的了解”,这样这份简历获得面试机会的可能性就大大增加了。如果大家在项目里用到的不是敏捷管理模式,而是其它的管理方式,也可以照着这个思路写。

此外,正规的项目多少或用些项目管理的工具,大家也可以在简历中列一些自己用过的,以此来进一步证明项目管理方面的经验。在下表里,我们总结了一些常见的开发人员能用得上的项目管理工具。

工具或软件

项目管理方向

能起到什么样的作用

JUnit

单元测试

开发人员在开发完成后,可以用Junit来编写自己代码的单元测试代码,运行单元测试代码后,能测试自己开发的模块。

Maven

构建项目

通过Maven,我们能给项目引入必备的jar文件,也能方便地编译(build)和发布项目代码。

Jenkins(一般会和Ant一起用)

持续集成工具

我们一般会用重复的工作来发布不同版本的项目,比如运行ant脚本,把生成的jar放入指定的Linux目录并设置一些script文件的可运行权限。我们可以通过设置Jenkins脚本来配置这些重复的工作。

Jira

缺陷或任务管理

每当遇到一个Bug或一个新任务,我们可以建一个jira,此时该Jira状态是Open,程序员开始开发时,会设置成In Progress,完成开发后能设置成In QA,这样测试人员就能介入测试,测试完成后,测试人员能把它设置成In UAT,一旦把该任务部署到生产环境,就能Close这个Jira。也就是说,通过Jira,我们能在项目里很好地跟踪和监控具体问题和任务的当前状态。

Git

版本管理

通过Git或SVN等版本管理工具,在项目里我们能方便地建立提交或回退各人的修改,还能分支版本。Git还有个好处:可以设置成“评审后才能提交”的模式,这样某人要往主版本提交的代码必须要经过一人或多人的评审,这样就能很好地控制代码的质量。

Autosys或Crontab

用于定时跑脚本任务

比如我们要定时跑一个脚本,我们就能通过Autosys或Crontab来设置,通过Autosys,我们更能方便地设置任务间的依赖关系,比如A任务跑好后B任务才能跑,而且还能查看任务运行的状态是成功还是失败。

Sonar

代码质量管理

通过Sonar,我们不仅能检查代码是否还有bug,还能查看代码的质量,比如代码的注释率是多少,单元测试覆盖率是多少。Sonar还能给出一些代码方面的建议。总之,通过Sonar,我们能提升代码质量。

具体而言,大家可以在简历加上如下的内容:在这个银行(或其它)项目里,我们用__Maven__来管理项目,用Git__做版本管理,用Junit__来做单元测试,用Jira__来做bug__管理,在代码上线前,我们还会用Sonar__来扫描代码,如果发现一些可改进点,比如Junit__覆盖率不高,我们会及时改正。

大家在简历中写这部分的内容时请注意如下的两个要点:

1 在项目管理方面一般都会用到些工具,也就是说,大家可以写上在自己项目里用到的工具以及这些工具应用在哪些方面,但别什么都不写。

2 面试官在看到相关描述后,一般会在面试中询问些细节,比如Jenkin的配置方式等,也就是说,大家不仅要写,还得适当地了解下这些工具的使用细节,以备面试时的提问。

4投送简历时的注意要点

===========

简历准备得再好,如果用不恰当的方式投递出去,同样无法得到面试机会,所以大家在发送简历时,应当注意如下的要点。

4.1不要发送“万能“简历,根据具体的职位要求进行微调


这可能是不少求职者的“通病”,他们往往就准备一份简历,然后看到一个合适的工作机会就发一份,也不关注这个公司的行业背景,也不看这个职位的具体要求。

其实大家的简历是“闭门造车”的形式写出来的,只能“尽可能”地描述自己掌握的技能(无法完全描述出你项目里用到的所有技能要点),而每个公司的职务要求一定不会完全相同,所以大家在发送简历前一定得根据具体的职位需求改写相关的项目经验描述,以求达到“匹配度”最高的效果。

相反,如果大家针对不同的公司发的是同一份简历,那么就得撞大运了,这样一定会失去不少“匹配度不高“的面试机会,其实修改简历所用的时间不会太多,但效果一定是大相庭径。

4.2在招聘会上,尽量要口头说出你和这个职位的匹配点


在招聘会上,大家只能是发送同一份简历,在这种情况下,大家一定得尽可能地和招聘方交流几句,同坦诚的措辞,口头说下你和这个职位的匹配度,同时让招聘方感受到你热切想得到这份工作,这样比“递交简历无其它互动“的效果要好很多,至少能给招聘方留下些许印象。

4.3简历以正文形式发送,别让招聘方觉出敷衍


在很多场合下,大家是通过邮件的方式发送简历,在这种方式下,由于只是通过文字,无法面对面直接交流,所以大家应当尽量让招聘方感受到自己求职的诚意,至少别让他们感觉出“敷衍”。

这里来举些可能会让招聘方感受到“敷衍”的例子。

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

举些可能会让招聘方感受到“敷衍”的例子。

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

[外链图片转存中…(img-ok6NvCR7-1714570049478)]

[外链图片转存中…(img-qqUF6cHV-1714570049479)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值