查看原文
其他

别人凭借这样的简历拿到了大厂Offer,你呢?

程序人生 2019-12-18

以下文章来源于泰斗贤若如 ,作者泰斗贤若如

新书上市,互联网寒冬里Java程序员的安身之宝


作者 | hsm_computer
出品 | CSDN博客

在大多的JD(职位介绍)里,会写明该职位需要xx时间的相关经验,换句话说就是需要在简历中看到一定年限的相关商业项目经验,否则估计连面试的机会都没。

在本文里,不讨论这种门槛是否合理,而会以Java相关经验为例,说说面试官甄别真实商业项目的方式,并以此为基础讲述在简历中描述项目的要点,并进一步给出在面试中介绍项目的相关技巧。 


和学习项目相比,商业项目为什么值钱?

为什么在筛选简历和面试过程中要甄别学习项目还是商业项目?
1、学习项目里,只要跑通正常流程,无需考虑异常处理机制,也无需经过高并发情况下的压测。
2、学习项目里,数据库方面,只需增删改查,而商业项目里会涉及到优化甚至集群。
3、学习项目里,模块间功能调用基本就靠写类写接口,而商业项目里,需要考虑微服务高并发场景,甚至需要考虑服务失效。
4、学习项目里,最多搭建个web服务器,把代码一扔,直接跑就能看出效果,而商业项目需要专门部署,还需要写日志,以及根据日志调试问题。
总之,商业项目有很多事情,比如黑盒白盒单元化回归测试、运维部署和需求方扯皮,和其它Team讨论接口等等,这类事情在学习项目里甚至都想不到。
而一些培训班让学员做的项目,在帮助学员提升相关技能方面,或者有些作用,但仅此而已。如果直接在简历中当商业项目写,甚至还会起到反作用。而不少培训班所谓的就业培训老师,让他们自己去面试Java之类的开发岗,还未必能成,可想而知他们煞有介事的“包装简历”和“模拟面试”的效果了。
本人内心自认为尚不算阴暗,不会因为看穿此类项目经验而窃窃自喜,相反更会内心沉重:候选人也算上进,但他们费钱费时间费经历准备的简历和面试技巧毫无用处,而我职责使然又没法让他们过。正因如此,在后文里将给出相关的甄别技巧,说难听点,至少吹牛也得打草稿吧。 


一些编造项目经验的方法其实是掩耳盗铃


我听说有些培训班所谓的就业辅导,是给学员zh若干项目模板和问题,让学员练习,并通过模拟面试让学员说起来像模像样。甚至有些培训班自己还有公司,所以提供的项目也算有据可查。培训完以后,就由老师带队到北上广去应聘。

有时候甚至不用面试,一些有经验的面试官直接能从简历上甄别出这些虚假项目。比如项目名是xx金融管理系统,xx财务系统,xx学籍管理系统等,时间不会超过半年,技术方面就很敷衍地写一些常规技术,比如Spring MVC、Redis、JDBC等。

或者为了慎重,在面试里可以通过如下问题来确认。

1、你项目是如何部署在什么环境上?发布流程是什么?如果出现线上问题,如何排查?很多培训班项目或学习项目也就随便找台机器运行通就了解,所以候选人接触不到基于Linux部署以及基于Maven和Jenkins的打包部署流程,这个问题可以问出很多编造的项目。

2、在项目里,代码review和单元测试,是怎么做的?同理,很多培训班项目只考虑功能,不考虑这块。

3、这个项目现在是否上线?大多数培训班项目一般都不会上线,同时会有很多不上线的理由。

4、抽出项目里用到的一个高大上的技术,比如dubbo,问负载均衡和失效转移的问题。在不少培训班项目里,对这些分布式组件,仅仅是调用而已,不大会考虑分布式部署的问题,当然估计也没资深的老师能把这块讲透。

很多创业公司,或规模很小的公司,有时候会招不到人,所以是没资格挑挑拣拣的。这时遇到项目经验造假的人,只要技能尚可,或者甚至只要动手能力强,就会录用,至少我在身边看到的一些小公司是这样的。但录用管录用,面试官其实是知道候选人项目底细的。 


商业项目如果写得很敷衍,就会被当成学习项目


针对之前讲述的甄别方式,这里会给出若干在简历中写商业项目的技巧,一方面,如果很敷衍地写,你的项目经验就会被当成学习项目,另一方面,如果在简历上包含足够多面试官感兴趣的要素,你的简历通过筛选的可能性就越大,也就是说,能得到更多的面试机会。 

1、讲清楚必要的要素,比如项目周期、人数、项目名、客户是谁、用到什么技术,但就凭这点,无法证明是商业项目。

2、讲清楚部署和上线的方式,比如在云端,或Linux上如何部署,用到哪些命令?上线前测试怎么做的?是否用到灰度测试,把这块讲清楚了,会让人感受到你不仅会开发,更有运维方面的技能。

3、讲清楚管理项目质量的方式,比如单元测试工具,通过sonar等工具提升代码质量的方式。

4、写明目前项目已经上线,再可以提一下,如果平时遇到产线问题,是通过什么工具排查和解决的。

自然,如果在项目里用到了其它好的技术,比如用elk收集日志,用zabbix进行压测,这种就属于不写白不写的。

我之前在面试时,发现很多候选人其实做了很多事情,各种技能掌握得也非常到位,但在简历中丝毫没体现出来,这就很吃亏,因为这可能就错过了不少面试机会。 


在校生和毕业生,该如何准备项目经验


不少毕业生在找工作时,苦于没实际项目经验,一方面确实可以在大三大四时干些实际项目,但如果确实在找工作时没项目,那该怎么办呢?

1、这时候没办法了,得加班加点,用最多一个月的时间,运行通一个全栈的项目,比如VueJS+Spring Boot+Mybatis,这个过程中有问题,赶紧通过看视频看资料等各种手段弥补,项目未必要大而全,甚至只包含简单几个增删改查功能也行,但第一要了解全栈流程,第二要了解必要的技术语法。这个过程一定不能省。

2、挖掘毕业设计和之前的课程设计,看下其中哪些需求点和商业项目很类似,这些需求点能否用基于java的技术实现?如果可以,这好歹也算是项目经验。

3、我知道不少网站能提供项目,不要多,就运行通一两个即可,但其中需要包含Java全栈技能,因为这些项目有足够多的指导文档,调试通过应该不难,这绝对可以算学习项目。

4、对毕业生而言,招聘要求不会太高,一般没商业项目,只有学习项目也会让过。

在通过上述方式掌握若干学习项目以后,按如下思路准备简历上的项目。

  • 介绍项目技术时,如果可以,尽可能多地写些打包部署调试等技能,这块应该不难,比如在自己机器上装个Jenkins或ANT或Sonar,然后实践一下。

  • 多写些解决的实际问题,比如Mytabis里事务是怎么调通的,总之,别浮于技术,再深入写些技术的实现细节。

  • 从异常处理、数据库批处理优化、数据库索引、设计模式甚至虚拟机调优角度,写下项目的实现细节,这块属于基本的jdk和数据库知识点,也应该不难实现。

这样一写,虽然还是没法让学习项目变成商业项目,但由于深入细节,好歹能超过大多数学习项目,相比于其它同学,你就会有更多的面试机会。

当然,如果有机会,最好还是得找些实际商业项目做下,很多点只有做了才知道,很多技能只有做了才能掌握。 


工作若干年转行时,没商业项目经验该怎么办?


对于工作后想转行做Java的同学,这里给出如下的建议。

1、如果工作忙,如果平时自己感觉没时间学Java,可以报个比较好的培训班,毕竟培训班里有成套的知识体系,这比自己学要省事省时间。

2、看下你之前的工作经验,能否和Java沾边,比如之前做测试或者运维,多少能碰点Java,在写项目经验时,就可以着重偏向Java。

3、我知道有些同学,比如之前3年是在做C#,通过培训掌握些Java技能,然后就把之前的经验全写成基于Java的,虽然如果面试过关,这无法用任何方式甄别出,但这块涉及诚信,请大家自己斟酌考虑。

4、对于转行的同学,第一份工作得看重实际机会,比如找个外派活,找个小公司,这些公司的招聘要求稍微低些,或许能帮助相关同学成功转行。

不过话说回来,工作3年转行还行,如果工作5年以后再转行,那就需要非常慎重了。


总结:不自暴自弃


固然说,努力要乘早,在校阶段就应该尽可能找实习机会,但任何时候努力都不会嫌晚,用文本提到的方法,初学者最多用1个月的努力时间,就能在简历中归纳出一个学习项目。而对于比较初级的职位,或者一些小公司,有时候候选人只要靠刷题就能进去,更何况掌握了若干学习乃至商业项目。所以,哪怕在当前阶段感觉自己什么都不懂,也绝不能自暴自弃,比如颓废无节制地用无聊的视频来打发时间,而应该立即找书找资料找项目提升自己。

通过本文给出了若干甄别商业项目的方法,大家可以对照比对你简历上的商业项目是否会被误杀,而本文给出的在简历上描述项目的技巧,更经过了不少毕业生的实践检验,应该具备足够的可操作性,最后希望此文能帮助到大家。

作者简介:hsm_computer,8年Java面试官经验,5年的Java培训讲师经验,帮助众多初学者成功拿到心仪的Offer。

原文:https://blog.csdn.net/sxeric/article/details/103346576

声明:本文经作者授权转载,转载请联系原作者。

还想听更多作者的干货分析Java面试秘诀?今晚8点,作者亲自授课!立即扫码免费报名:https://edu.csdn.net/huiyiCourse/detail/1125



 热 文 推 荐 
HDC.Cloud | 开赛了!和队友一起“跑”赢这趟编程马拉松!
被互联网大厂空运到印度的年轻人
面试不谈钱,难道要我跟你谈恋爱?扯淡!
☞ 国产数据库年终大盘点!

华为诺亚方舟开源预训练模型“哪吒”,4项任务均达到SOTA

云计算管理工具:根植热土

想开发智能合约?先 get 下这个适合所有人的模型驱动法!(文末有福利)

你点的每个“在看”,我都认真当成了喜欢

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存