先说结论:
1 大多数公司,对于Java初级开发的要求是,会用Spring Boot+JPA做增删改查
2 所以零基础的Java小白,无需学太多的内容,只要掌握Spring Boot+JPA做增删改查的技能。
3 但是,Java小白如果要找到第一份工作,一定要写好简历同时准备好面试,否则学得再多也无法找到工作
先详细说下大多数公司对Java零基础开发的一般要求,也就是说,只要学到这种程度就可以去找工作,其他技能,多学了就浪费。
1 能使用基本的开发环境,比如会用IDEA集成开发环境开发、调试和运行Java,会用mysql等客户端连接到数据库。
2 知道基本的语法,会照着现在的代码改一下,开发新的功能。如果有问题,能自己通过查资料很快解决。
以上是最基本的需求,公司当然希望程序员能力越强越好,能自己调试并解决问题,jpa,logback,junit等功能组件当然是会得越多越好。但最低的标准是,开发时遇到问题,知道会问,能通过请教别人很快解决掉问题。
根据上述要求,再细化下大多数公司对java开发的最低技术要求点。
1 熟悉各种开发工具的用法。
2 熟悉Java核心技术点,包括面向对象,集合,异常处理,多线程和IO等技能,哪怕具体语法不知道,遇到需求能很快通过查资料或问人解决。
3 熟悉Spring boot(或其他web框架,比如ssm等)框架开发业务的做法,最低标准是,开发时能参考现有的代码改写。比如现有订单查询模块,能据此开发一个员工查询的模块。
4 至于redis,dubbo等分布式组件,这些属于加分项,会了更好,但如果不会,仅仅会spring Boot增删改查,也能找到工作。
可能大家在网上看到很多面试题,这些面试题里给出的技术要远难于上文提到的。其实网上给出的技术面试题也没错,但不是针对零基础初级开发的,如果大家去面一些小公司,上述技术掌握了就可以了,后面就是准备简历和准备面试的工作。
然后再说下,零基础的Java小白该如何高效地把相关技能学习到能工作的地步
1 搭建环境,包括jdk,IDEA集成开发环境,mysql数据库,因为MySQL数据库好搭,所以不建议初学者搭oracle,然后搭个数据库客户端工具,比如navicat。
2 找个视频,或买本书,入门java核心的语法。这里建议大家还是买本书,毕竟书是经过出版社检验,里面知识点成系统,而且代码也能跑通,入门Java的书可以选这个。
请注意,入门Java语法的时间一般是三个星期到一个月,需要边运行代码边了解技能。了解技能时,不要过多关注语法,需要先知道什么类能做什么事情即可。
同时,学java语法时,不建议在开始阶段学设计模式,面向界面编程(比如swing和awt),也建议学socket编程,因为实际开发用不到。在学java语法时,面向对象,集合,异常处理和jdbc是关键,io和多线程可以了解概念即可。
3 数据库方面,可以不用买专门的书入门,数据库方面,需要知道如何通过java里的jdbc连接数据库和通过jdbc做数据库的增删改查操作即可。入门数据库时,也可以用上文提到的疯狂Java讲义。
4 这部分是重点,全面了解Spring boot+JPA做增删改查的技能,java小白入职后干的就是这个。
这方面可以用我出的书来学,我这本书里,不仅包含了Spring boot框架的常用组件,比如junit,swagger等,还包含了spring boot整合分布式组件的用法,这些技能对初学者来说,一定是找工作时的加分项。
5 一般可以用1到2个月时间学好Spring boot,然后可以运行若干个项目来把学到的技能串起来。我的书里,包含了一个全栈库存管理系统和秒杀系统,此外大家还可以运行其他的案例来综合巩固学到的技能
其实学到这个程度,零基础的java小白就可以去找工作了。可以有些同学会心虚,因为网上有不少文章,说Java要学到能工作的地步,还得学其他技能。
但是我还是这个观点,学好spring boot+jpa做增删改查的地步,就可以去找工作了。这里先来解释下理由。
1 网上很多面试题,是针对有工作经验的,或者虽然是针对零基础,但面试要求是针对大厂的,而上文的面试要求,是小公司针对零基础Java开发的。
2 Java零基础的小白,固然可以继续学更多更广的技能,或者说再多运行通些项目,再去找工作。但本文提到的,掌握到spring boot+jpa做增删改查的地步,再出去面试,更可以通过面试来调整自己的学习路径。
3 很多技能,比如logback或分布式组件等,其实只有在项目里才能学得好,如果自己,非常有可能学到的技能不是项目中所要的,这样还不如直接学到最低标准,然后通过面试进公司后再学,这样能以更高的效率学习相关技术。
总之,按上述步骤学到最低标准后,就可以准备简历和准备面试了。先说下零基础的java小白如何准备简历呢?
1 在简历中尽可能多地写点项目,这些项目可以是你在毕业设计或实习阶段做的,如果实在没有,就把你学习阶段运行通过的项目写进去
2 在简历中,全方位地列出你掌握的技能,比如spring boot,jpa等
总之得通过简历,让面试官看到你有足够长的项目实践的年限,熟悉spring boot+JPA以及他们公司所要求的技术,这样至少你就有面试机会了。
投简历的时候,千万注意,先投小公司,或外派公司。然后按如下的步骤准备面试。
1 背题,背java面试题,数据库面试题,Spring boot面试题等等,凡是网上有的,你都去了解下。背题的时候还要准备笔试,比如算法或排序等。
2 结合你的项目,说明Spring boot做增删改查的流程,比如用哪些注解,怎么和数据库关联等。
在面试过程中,java零基础的小白只需要证明有做项目的能力,再啰嗦下,掌握spring boot+JPA做增删改查的能力,如果对方是个外包公司,或是小公司,达到这个程度足以能帮你应聘成功。
当然在做的时候,需要不断地根据面试问题来调整,比如某场面试,你被问了数据库的事务隔离级别,你没答上来,那么回家后,你就要把事务相关概念,比如传播机制,事务的语法和注解等再复习下。这样经过若干场面试,你完全可以找到工作。
上述步骤一般需要多久?搭建环境+熟悉Java核心的语法,满打满算1个月,掌握Spring boot+JPA,一个半月到两个月,准备简历和面试,估计半个月到一个月。以上还是一般情况,我平时会辅导零基础的java小白,一些比较上心的同学,只要用2个月的时间就能学好技术,到了第3个月,基本上可以收到offer了。
然后说下,学java应该是靠自学还是需要报班
1 在校阶段,或者有足够多的时间,可以自学,但自学起来,遇到问题,需要自己解决,很多事情需要摸索,可能会走弯路。不过我见过不少人,通过3个月的时间自学,然后能找到工作。
2 如果已经是在职了,或者感觉自己学习能力不怎么行,解决问题的能力有待提高,那么可以报个班。但报班的时候尽量找大城市,找个名声比较好的。报班的话相当于用钱买时间,也能提升java入行的成功率,我见过很多做其他工作的人,最终通过报班成功入行java。
不管是自学还是报班,学java的方法,一定是先积累最低程度的技术,然后通过面试优化自己的技能,然后进到项目组里全面提升。
也就是说,java零基础小白入职时,通过面试表现出来的能力,很有可能是优于你实际技能,其实这就是零基础小白入行的关键。
1 留给小白入行的学习时间不多,所以只需要学到最低的程度。
2 最低程度的技能+面试技巧,确实能帮小白成功入职。
3 一些高级技巧,比如redis组件等,在自学阶段学到的技术,未必是项目开发所用的,所以除了最低限度技能之外,学的其他技术很有可能是白学了。
4 通过面试尝试,能很好地知道哪些技能该学,也就是说,通过面试的试错来学习,要比自己闭门造车学习的效率要高很多。
最后祝广大有志于入行java程序员的朋友早日入行,更祝广大程序员朋友早日实现技术和薪资的双丰收。
这是我的公众号,其中包含了大量面试文章,同时我自己出了多本Python和Java方面的书籍,会定期在公众号里发书的电子版。请大家关注下我的公众号,谢谢了。