本人最近一直在帮零基础的java开发者提升能力和找工作,在这个过程中,发现零基础的java程序员,在自学和找工作时,普遍会出现一些问题,同时在实践过程中,也总结出了一些能帮零基础java开发尽快提升能力和尽快找工作的经验。在本文里,就将围绕零基础java开发自学和找工作这个过程,给出一些相关的建议。
先说下初级java开发在学习中普遍遇到的问题。
1 初学者往往会严格按照书本上的内容学,从java核心进阶到数据库再学spring boot。这本身没错,但书上很多技能,比如多线程和设计模式等,在找第一份工作的时候用不到,也就是说,会用宝贵的时间学没用的技能。
2 初学者在学习的时候过多关注语法,比如关注spring boot程序里诸多API的作用,恨不得每个参数的含义和取值都去搞明白。事实上,在开发过程中,往往会重用现有的方法和模块,然后通过修改,快速完成一个功能。也就是说,不用过多关注细节,而要关注流程。
3 初学者不知道学到什么程度可以去找工作,所以不少初学者会根据网上的提示,学spring boot,junit等各种组件,redis等各种中间件,还有linux命令等。网上的资料太多,学好了一定能干活,但事实上,初学者只要学到最基础的spring boot+JPA增删改查技能,就可以去干活,其他的可以在找到第一份工作后再学。
4 这是最重要的一点,初学者的面试技能严重脱节,其结果是,明明掌握了最基本的开发技能,但由于简历没写好,面试不知道如何准备,所以没法在面试中很好证明自己的实力,甚至没法用简历为自己争取到最基本的面试机会。也就是说,在学习技能的同时,更要准备面试,甚至准备面试的重要性要比学技能更重要。
然后说下java初级开发在学到什么程度以后可以去找工作。
1 能运行通一个spring boot的项目,请注意这里不是要求初学者能从零开始开发出一个项目,而是能根据提示,跑通一个现成的Spring boot项目。
这个项目的业务不限,甚至只包含很少的业务逻辑也不要紧。前端页面不限,毕竟是要找后端的工作。但是,初学者需要能够搭建数据库环境,配置全项目参数,并让代码跑起来,同时能根据其中的流程讲清楚spring boot访问操作数据库的流程。
2 项目里的各种语法,不要求能当场看懂,但对于不熟悉的语法或api,能通过查询资料很快地理解含义,这就是干活的基本标准。
3 spring boot项目运行启动后,能通过url请求拿到结果,在发出url请求后,这个请求经过了哪些模块,是怎么访问的数据库,然后怎么返回,处理中出现了异常怎么办,这套流程需要搞明白。
其实学到这种程度,就可以去找工作了。不少朋友可能会质疑我这个说法,他们可能会说,还要去学各种组件,比如redis等,或者是Spring cloud alibaba组件。其实他们说的没错,但其他技能属于java初学者找工作的加分项,而不是必选项。
一方面,可以在面试过程中精确地了解当前城市当前阶段面试官会问哪些(其他分布式组件等)问题,这样能精准准备,这要比脱离面试自己闷头继续学,效率不知道高多少,另一方面,大多数公司对初级开发的要求,还真是增删改查,让初学者做分布式组件的活,换谁都不放心。
也就是说,初学者在学到上文提到的程度,即会spring boot增删改查的技能后,不用再继续学,而应当通过面试,缺啥补啥精确地学。这样说下来,从小白学到会spring boot增删改查,估计三个月都嫌多,我的学生一般1到2个月就能学会,当然我会辅导他们,但如果单凭自学,2个月应该也够了。
学好基本的spring boot+jpa技能后,应当立即准备简历,准备面试。简历该怎么准备?
1 在简历上写明你熟悉spring boot增删改查技能,然后尽可能多地写上你熟悉的技术,比如logback,redis等。
2 写上你做过的,或者是你运行通过的项目,在项目里,写清楚这个项目里用过的技术。
这样,当面试官看到这份简历时,至少会给你面试的机会。但我见过有些简历,上面只写了熟悉的技术没有写项目,或者在写项目时只列了项目需求和业务点,没有写用到的技术,这些简历基本上一般不会有面试机会。
用简历争取到面试机会以后,后面是准备面试,对于初学者来说,需要准备如下的说辞。
1 结合项目,说明spring boot实现增删改查流程的相关技术,包括注解,api和配置文件等。
2 背题,被java等等题目。
在上述两个准备要点里,结合项目说明开发技能的重要性要远高于背题,基本上,只要能证明这个项目你做过(运行通的相当于做过),同时里面的技术,比如spring boot注解,jpa注解等,你能回答个大致,基本上就能找到一个java开发工作。
当然我在辅导我学生面试的时候,哪怕是初学者,我也会教他们若干亮点说辞,比如数据库性能调优,适合零基础的底层源码分析以及oom(或其他类型问题)问题的结局方法。
还有一点,刚开始面试时,一定会说不好项目,而且面试问题回答不好,这是很正常的,在这个阶段,一定好复盘,比如结合露馅的点优化项目技术说辞,哪个方面的问题没回答好,继续背题,但千万别什么都不准备,就去赶下一场面试。这也是我上文提到的,学到最基础的技能后就要通过面试来找方向,如果不去面试,自己想象的是学习方向和学习技能大多是不对的,这样就白学的。相反,在掌握基本的Spring boot+jpa增删改查的技能后,再去面试,一定能很快地找到自己的欠缺点,然后缺啥补啥。
经过2,3场面试后,初学者应该能掌握基本的面试技巧,后面的面试应该就可能成了。但是,初学者在找工作时,应当注意如下的要点。
1 先找小公司,如果你感觉你的能力一般,甚至可以先找外包公司。怎么找这类公司,直接去问猎头,怎么找到猎头?到招聘网站更新简历,猎头会找你。
2 直接说找工作,别说找实习,因为实习是暂时的,一般公司都希望找稳定的。
3 通过多场面试的练习,再结合背题,可以确保在后面的面试中,能回答出大部分的问题,也就是说,面试有希望通过。在这种前提下,管公司要个不低于平均水准的工资,比如当下零基础的初级开发,一般能给到7k,你就要7k,别少要,否则人家反而会怀疑你的能力。
至于入职后,哪怕公司规模再小,或者哪怕项目是外派的,只要有了实践的机会,技术就能飞快地提升,相比于通过自学提升技术,提升的速度何止是一日千里。
总之,哪怕是零基础通过自学找工作,也有成功的经历,经我手辅导成功的案例就不少,但方法一定要得当,所谓会者不难。所谓方法得当就如上文所说,学到最基础的spring boot增删改查程度后立即通过面试精确提升。否则的话,估计学的时间再长也未必能找到工作。
最后祝广大java程序员都能找到心目中的工作,而且早日实现薪资和技术的双丰收。
这是我的公众号,其中包含了大量面试文章,同时我自己出了多本Python和Java方面的书籍,会定期在公众号里发书的电子版。请大家关注下我的公众号,谢谢了。