Java初学者找工作,比如是在校生找实习,应届生秋招春招,或者是毕业后零项目经验找工作,或者是Java培训班学员找Java工作,总之是在零项目经验的前提下找工作的话,可以用含增删改查业务的xx管理系统,不建议用纯粹的中间件项目。
什么叫纯中间件项目?
1 比如单纯是用Dubbo实现了一套远程调用系统,具体还用线程池+netty实现底层调度,用kafka实现异步消息推送。
2 用基于tcp协议实现了一个消息通讯模块,其中用zookeeper做注册中心,底层用线程池实现通讯的调度。
3 用Spring cloud alibaba实现了一套网关,其中用nacos做注册中心,用redis缓存请求,用Gateway组件。
4 实现了一套分布式锁或分布式事务系统,中间用到了基于redis+lua的分布式锁。
5 或者干脆仿写了Dubbo或Kafka等现成组件,实现了远程调用或消息中间件的功能。
这种项目看上去包含的技术很值钱,甚至还可以包含一些底层实现细节和原理,但这恰恰是“障眼法”。
如果是有真实商业项目经验的求职者,用此去挑战架构师的岗位,如果说好了这是很好的加分项,但对于零项目经验的求职者来说,属于是漏洞百出,有经验的面试官可能真不会相信,所以可能根本没面试机会。
漏洞1,你简历上没有公司背景,哪怕这套组件是谁用的?或者是,你简历上的公司不是大公司,小公司一般是以做业务为主,没有精力或成本去开发此类中间件组件或项目。
漏洞2,比如找了一个现成的项目,哪怕初学者号称理解了里面的一些底层,这本身就不可信,或者姑且就说真理解了,也很难说清楚,这些中间件如何同业务整合。这方面的说辞,如果真做过,能说好,零项目经验的初学者,基本上会说多少错多少。
漏洞3,比如求职者千方百计想好了业务里如何整合,但面试官可能就一句话,远程调用等,一般有现成组件,你们为什么不用?而要自己写?这句话就能打消很多初级开发的幻想。
漏洞4,真正实现远程调用等功能的中间件,除了考虑正常业务,一定会考虑异常情况下的处理流程,但这些所谓的自研中间件组件,大概率是不会考虑的。有经验的面试官只要问及这方面,求职者大概率就会哑口无言。
同时,考虑一些中小公司的求职动机,对于Java初级开发来说,一般是想用较低的薪资,招些能干基本活的人。至于中间件甚至devops或云开发等高级技术,不少中小公司或者用不到,有用到的也没指望初级开发能做。
本人在做Java技术面试官的时候,其实也见到过不少此类情景,即求职者零项目经验,或者项目经验在2年以内,包含纯中间件项目,有些还是最近有长时间不在职(有培训班入行的可能)。
面试下来,在说这些中间件项目时,顶了天也只能是说一些八股文,比如dubbo底层原理,也就是说,虽然是写了这个中间件项目,但面试中一点效果也发挥不出来。
这就会让面试官有足够的理由相信,这个项目是虚假的,这段经历是包装的,进而还能让面试官怀疑,这位求职者之前没任何真实项目。这样,面试官之后真可能会重点甄别项目的真实性。
相反,如果这个时间段,就老老实实写个xx管理系统,就老老实实证明spring boot做增删改查的能力,去面试一些中小公司,或者是外包公司,甚至是一些大公司的外包职位,真有可能面成,这点本人在Java面试辅导过程中,是有切身体会和成功案例的。
至于有些Java初级开发写纯中间件项目的动机,看上去是想展示自己的技能,但属于是缘木求鱼。比如考试,总是优先去准备基础题,在此基础上再去挑战些难题,如果基础差,还存在着“放弃基础去挑战难题”的想法,大概率不会及格。
Java初级开发的面试场景,基础题是证明自己的真实开发能力和真实项目经验,这些基础分拿到了,再去挑战些中间件,这样哪怕难题说差了,其实也有一定成功可能。
但反过来讲,如果all in资深技术点,比如中间件或大数据或云开发,基础点一点不准备,或者准备方式不当,一旦难点没挑战成,(这是大概率的事情),面试成功的希望极小。
所以对于Java初级开发,哪怕之前零项目经验,哪怕感觉自己Java能力掌握一般,努力方向一定是优先证明自己的商业项目经验,证明自己在商业项目里有足量的spring boot开发技能,在此基础上再量力而行准备些亮点,比如调优或中间件的使用技巧。
还别说,这还真是零项目经验,甚至是条件不好(比如大龄,低学历或非计算机专业)+ 零项目经验的Java初级开发的入行方式。
相反,如果单纯用中间件项目,看似准备的技能比别人值钱,看似自己的项目有新意,但在有经验的面试官眼里,这种情况属于“送人头”,基本无法拿面试机会,或者会被安排一场成本很低的电话面试,然后草草了事。
大家也可以通过评论,说下大家想知道的Java方面的求职技巧或方向,如果可以,本人尽量满足大家。也请大家多多点赞本文。
更多精彩文章,请大家关注我的“老胡聊Java”公众号。