第一部分,“先有商业项目经验仍是先有实践机会”的两难情况。java
最近我在帮助一个作Java初级开发的朋友找工做,这我的工做3年,平时作的是Spring MVC+Mytatis,而他想要去的公司在职位描述上黑纸白字地写清楚:须要招Java高级开发,并且须要有Redis和Hadoop等相关经验。web
个人朋友吐槽说道:为了提高能力,他才要换工做去作高级开发应该作的事情,但目标公司通常是须要(Redis和Hadoop等)这些比较高级技术的商业项目经验。实际上,在没有这些实际项目经验的前提下比较难经过面试,而他可能在平时学习这些技术,但在实际工做中没有机会实践这些技术,这就会致使一个比较尴尬的循环怪圈。面试
我想你们在跳槽的过程当中,也应该会遇到相似的尴尬状况,下面我再举些我见过的相似状况。算法
状况一,某同窗非计算机系毕业,好比是农业或生物,在工做1年后,想要作软件开发的工做。数据库
状况二,某同窗作了2年左右硬维或测试或实施(但就不是软件开发),如今想作开发的工做。架构
状况三,如刚才所说,某同窗作了3年Java初级开发的工做,干的活和Java高级开发的技能不大沾边,也就是说缺少相关实际操做经验,目前想跳槽作高级开发。并发
状况四,某人也作了6年左右Java,目前已经达到了高级开发的水准,目前想作架构。咱们知道,架构师的活通常和集群,中间件等有关,好比要经过一些组件搭建一个高并发的系统集群 ,从而能应付相似双十一的状况。咱们也知道,在作高级开发时,通常接触不到架构师所须要的技能。高并发
在上述状况里,你们一样能看到“要工做机会没商业项目经验”和“当前工做没法提供所需商业项目经验”的两难境地。oop
第二部分,招聘时候为何须要商业项目经验学习
先来看下哪些项目不叫商业项目。
1 若是你在平时学习过程当中,搭建了一个系统,好比你从网上搞到一个Spring MVC的电商系统,从中也学到很多知识,但这个项目叫学习项目。
2 你在作毕业设计时,导师模拟了一个电商场景,也提了些需求,你本身也实现了这个系统,先恭喜你经过了毕业设计,但这也叫学习项目。
3 你报了个培训班,在其中以课程设计或实训等名义实践了一个系统,从中你也学到了不少知识,一样先恭喜你,但抱歉,这也是叫学习项目。
给出一个定义,商业项目是用来挣钱的,也就是说有客户为这个项目买单。由于客户出钱,因此要求高,好比须要处理全部异常状况,也须要考虑上线后的诸如OOM等的问题。因此你们在公司里作的项目属于商业项目,或者你平时和一些朋友本身接私活,这也算商业项目。
和学习项目(或非商业项目)相比,商业项目更能锻炼人,而公司总但愿招进来的人能当即干活(或通过最长1个月的磨合期后能干活),毕竟公司不是学校,具体到刚才描述的场景,招聘所须要的相关技术的经验年限(好比Spring MVC或数据库优化)是以商业项目年限为准。
我本身一方面是公司里的面试官,另外一方面也作过兼职培训,因此自认为以下的描述还算客观:
我无心评价培训学校里的实训项目,但有两个候选人具备相同的工做年限,其它条件也差很少,但一位是商业项目,一位具有学习项目, 我(包括其它大多数候选人)必定会录用具备商业项目的候选人。
基于一样的道理,在确认候选人的相关项目技能年限时,我通常会排除掉学习项目的年限。事实上,在排除后,不少人真就没相关商业项目经验了。
也就是说,你尽可能别让面试官感受到你只有学习项目的经验,可能很多培训机构会用不少例子来反驳我这个观点。我这话一样无心冒犯培训学校,而是善意的:你能够尽可能在学习项目的经验的基础上外加些实际商业项目经验,这样你经过面试的可能性就更大了,或许能要到的工资也就更高了。
第三部分,做为面试官,我如何甄别非商业项目经验
可能我更了解培训学校,并且我也面了估计150+了,因此在我手里,很难用学习项目来冒充商业项目。
方法1:我会按期去看各大培训学校的招生广告,上面通常会有些实训项目的描述,好比xx学校会用个电商系统来实训,在广告上通常会提到用什么技术和大体的需求。我真就见过很多学员一字不动地在简历中照搬描述。
方法2:商业项目里通常会包含项目名,客户是谁,时间范围,多少人作,在什么公司里作等要素,并且用到的技术是比较合理的。相反,学习项目通常会露出破绽,好比就写个XX图书馆管理系统,或者是XX人事系统,也没写时间范围和人数等,或者用的技术太全面(正常项目里为了节省成本必定不会用到一些高级但没实际价值的技术),或写的时间范围和项目人数不符合常理(好比明明要8我的作的却只写了3我的,明明得用半年工期却只写了2个月)。总之,在很多人的简历中,我见过很多不打草稿的吹牛项目。
方法3:在简历中,这个项目的时间范围正好和在培训学校里的时间相重合。
方法4:这可能不少审核简历的人都有经验,每每在一个时间段里(一批学生从培训学校里毕业了),不少人的项目描述很相似,或基本雷同,这就不是巧合了,而是学习项目。
若是你的简历中不幸出现了上述状况,并且没有足够多的商业项目经验,那么你的简历也许根本没法经过筛选,也就是说,你没法获得面试机会。
可能有些人“技巧”更好些,确实能把学习项目写成商业项目,和上述状况相比,至少这些人能有面试机会,但在面试中,我会问些在这类项目里没法回避的问题点,只要你作过,你必定能知道,用这个方法我也排除掉很多学习项目。
我也见过有人“技巧更好”,不只能编造商业项目,并且还能经过面试(不是在我手里),那么我就不知道该推崇仍是反对这种作法了。
说推崇吧,这毕竟是弄虚做假,说反对吧,毕竟人家也作足了准备,并且人家也是努力上进。何况面试官都没看出,也不用我操什么闲心。
第四部分,如何在缺少商业项目经验的前提下成功经过面试
这是这篇博文的关键。
第一,你得在实事求是的基础上合理修改你的简历,让目标公司感受你以前(至少以前半年)的工做经历和这个职位很匹配。这种修改并无违背基本的事实,而是在简历中合理地偏重于某方面,以下给出些能被广泛接受的案例。
好比某项目的一些模块是用C#作的,而一些和客户交互的功能用到了Spring MVC,小张主要作的是C#模块,在简历上他也以此描述为主,但他也作过点Spring MVC,那么遇到上述状况,他就能够在简历中写上Spring MVC的经验。
又如,有些公司规模比较小,因此一我的可能要作多方面事情,好比小王是以“测试”人员的身份进入的项目组,但后来项目进度比较紧,小王也被要求去开发Spring MVC了,这种状况咱们也见了很多,这样当小王想往Java方向转时,也能够在简历上加上这段经历。
除此以外,咱们还见过这样的简历:候选人正式工做是作C#,但他在业余时间跟着他们的项目经理用Spring MVC干私活,这样他好歹在简历上也能写上Spring MVC等相关方面的经验。
第二,合理地把培训项目和毕业设计项目转换成商业项目。
好比小张在大三时帮计算机系的王老师所在的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信息管理系统的项目。那么若是小丁能很好地在简历中很好地说明这个状况,并且还能在面试中很好地回答相应的问题,那么咱们不得不相信小丁在这个三个月里确实作的是商业项目。
经过上述的合理修改简历,至少你能获得面试的机会,这就是一个大的进步了。这也是本文能帮到你的地方。
但接下来更关键:你须要在获得的面试机会里,成功地向面试官证实你的能力。
抱歉,在本文短短的篇幅里,我没法把这讲得十全十美,在我写的java web轻量级开发面试教程里,至少能在Web方面帮助到你们。(事实上已经有成功的案例了)。
尽管如此,本文给出以下的建议。就以Java初级开发升级到高级开发为例子,你们能够在面试前作以下的功课(前提是你简历得先过关)。
1 先收集10个不一样公司对高级开发职位的要求,而后具体地根据关键字到网上搜,好比不少公司都要求会Spring MVC,那么你就能够搜这方面的面试题。
2 在每次投简历前,根据目标公司的职位要求微调你的简历,而后根据具体的要求,找你项目里的契合点,好比某公司要求有数据库优化的经验,那么你就找以前项目里你作过的相似事情,把这个事情写到简历中,并且准备好说辞,这个点在面试中有可能会被问到。
3 根据高级开发职位的广泛要求点,好比Spring MVC等,你能够到网上先找个比较全面的案例,不求本身开发,先运行经过,对其中的关键步骤和关键配置要有了解,这样你就能在面试里说出一些“海底针”的技能(即只有作过才知道的技能),一样,在java web轻量级开发面试教程里,给出了很多相似的说明。
4 光说不练假把式,最好的方法可能就是实践了。具体而言,你必定得多投简历,若是简历大多石沉大海你就得修改简历,而后多参加面试。可能在刚开始的面试里,你会什么都不知道,但面着面着,你就会成精。只要你不是遇到像我这样的老狐狸,可能你就会成功跳槽了。
2018即将到来,祝你们能在新的一年里在事业上更进一步。