1 先用3到5天,在本机安装jdk,IDEA集成开发环境,MySQL数据库和MySQL WorkBench数据库客户端环境。
2 买两本java书,比如Java疯狂讲义和Java编程的逻辑。为什么买书?因为书里的内容毕竟经过出版社审核过,而且代码能跑通,两本书并集足以涵盖java基础点。
但是,在学java核心的时候,可以只学基本语法,面向对象语法,集合,异常处理和JDBC。IO,设计模式,图形化界面,tcp socket编程这块,可以不用看,因为刚开始找工作未必要用这些技能。而JVM和多线程这块,可以先通过跑代码,了解相应的概念。
也就是说,java核心方面的技术点虽然多,但刚开始学的时候,未必要涵盖所有的点,上文提到不用学的点,在初级开发阶段基本用不到,所以学了白学,而且在学java核心技能的时候,一定得边跑代码边学。
3 上文给到的java书里,一定包含用jdbc连接操作数据库的技能,此时可以在mysql上搭建相关表,一方面熟悉sql语法,另一方面了解下java连接和使用数据库的大致步骤。
由于列出了只要学习的技能点,所以上述技能学起来应该不难,而且大概用1个月的时间能学好。后面就需要学spring boot,但是,这方面只需要学到能做增删改查业务的地步。
4 学spring boot的时候可以用我写的书。在我的书里,不仅包含了 spring boot+JPA做增删改查的技能,还进一步给出了可跑通的项目,此外还包含了 spring boot整合分布式组件的基本做法。
学好spring boot应该能以跑通一个项目为标志,请注意这里是跑通现成代码,而不是自己手写出一个全新的项目。
跑通一个spring boot项目后,大致能掌握spring boot做业务的基本技能,这也是干java活的最低标准。达到这个程度后,后面不应该继续学,而是应该去找工作了。
跑通一个spring boot项目后让大家去找工作,不是因为后面java技能不会用学了,而是比这高深的技能一方面通过自学效率不高,另一方面,找到工作后,更能通过项目为导向,更精准地知道后面该学什么。
比如一些资深java开发都知道,学好spring boot相关技能后,可以一方面继续学习junit和logback等实用性组件,另一方面应当去学数据库优化,jvm调优乃至分布式组件应对高并发的技能。但这些技能该学什么?学到什么程度可以去挑战更高阶的职位,只能是在做项目的工作中自己去体会,如果没有在项目中,学到的相关技能,我可以说,大部分都是白学。
java小白如何找工作,虽然很重要,但和主题无关,所以就不再展开说明,如果大家要了解细节,可以看我其它相关文章。
可以这样说,找到第一份java工作,是学习java的一个关键性的里程碑,在这之前,如果光学习找不到工作,学的技能有可能是白学。在后文里,就将讲一下找到第一份工作后,如何有效且高效地继续打好java基础。
当零基础的java开发找到第一份工作后,首先需要尽快掌握用spring boot等框架开发业务的流程,其中不仅包括写代码,还包括测试,调试和排查问题等,可以说,入职3个月这段时间内,基本能打好最初级的java基础,即能成为一个合格的码农,在这个阶段,还应当掌握如下的基础知识。
1 结合项目需求,熟悉java集合的用法,即数据结构如何用在存储业务数据方面。
2 用通过命令登上linux服务器,再通过命令查看日志,如果可以,再积累分析问题和排查问题的能力,在此基础上,更可以开始熟悉mysql,redis等组件在linux上的安装和部署流程。
3 全面积累并掌握单机版spring boot的开发、测试和调试技术,这块要做到给一个需求,能很快用spring boot框架实现,出现问题,只要不是分布式方面的,可以很快通过调试看日志等手段发现并解决问题,适当掌握junit单元测试等的手法。
一般来说,java初级开发应该在半年内熟悉上述技术,最长不应该超过1年。在这个过程中,不仅应当掌握必要的java和spring boot框架等方面的技术,更要习惯在做项目时解决问题的方式。
比如遇到问题该如何通过搜索关键字来排查和解决问题,遇到自己不会的技术,如何快速通过搜索引擎熟悉,更重要的是,在被要求开发一个新的功能模块时,能快速地仿照着现有模块,改写并实现现有功能模块。做到这一点以后,其实后面的提升,只是体力活了。
初级java开发的标准是更用spring boot等框架开发增删改查的功能,用半年到1年时间做到这种程度后,更应当为升级到高级开发打下java方面的基础,这块需要哪些技术?又该怎么做?
1 凡是项目里遇到的问题,你都积极去参加,哪怕你不是熟悉,也得复盘人家的分析和解决过程,这样做个3个月,一定能快速积累经验。
2 多参与系统上线和发布的工作,这方面包含了大量搭建组件环境和排查组件问题的经验,还是这句话,刚开始不懂就先跟着学,这方面绝对也是一回生两回熟。
3 千万留心分布式方面和调优方面的事情,比如了解项目里用到哪些redis,kafka等分布式组件,结合业务看这些组件的语法和配置参数,同时学习下通过分布式组件实现高并发的技能。如果项目里遇到性能调优等方面活(比如数据库调优jvm调优或高并发调优),这种事情多参加,哪怕不归你管你也多参加,要升级到资深开发和架构,就需要打好这方面的基础。
如果做到这种程度,是否能拿高级开发或资深开发到工资我不敢说,但技术上应该是满足了资深开发的要求。这里请注意,从初级开发升级到资深开发,以及以后升级到架构师,该学什么java技术,不能人云亦云,而应当结合自己的实际,在项目开发中自己体会。
比如网上有很多系列的升级教程,这些教程中包含了足够多的技术体系,而每个技术体系里,也恨不得罗列全所有的语法和经验。这就好比服用补药,每个人的体质不同,进补的目的也不同,如果java程序员不管三七二十一,脱离自己的需求盲目地学习网上的教程,虽然不会出错,但学到的技能未必对自己的提升有直接的项目。
所以在打基础的过程中,不应缘木求鱼,定好方向,即我要应聘大厂资深开发岗,需要哪些技术,该如何学,如何准备面试?具体精准下来,无非包括如下的内容。
1 证明自己有调优和分布式组件的技能,按上文给出的做法,能通过项目找到对应的实践机会,然后针对性地看redis和dubbo组件的用法即可。
总结
面试难免让人焦虑不安。经历过的人都懂的。但是如果你提前预测面试官要问你的问题并想出得体的回答方式,就会容易很多。
此外,都说“面试造火箭,工作拧螺丝”,那对于准备面试的朋友,你只需懂一个字:刷!
给我刷刷刷刷,使劲儿刷刷刷刷刷!今天既是来谈面试的,那就必须得来整点面试真题,这不花了我整28天,做了份“Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法等”
且除了单纯的刷题,也得需准备一本【JAVA进阶核心知识手册】:JVM、JAVA集合、JAVA多线程并发、JAVA基础、Spring 原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。
![image](https://upload-images.jianshu.io/upload_images/24613101-a91f6c3bdbefd8a6.png?imageMogr2/auto-orient/strip%7Cimag
必看视频!获取2024年最新Java开发全套学习资料 备注Java
eView2/2/w/1240)
csdnimg.cn/img_convert/d03a705143646f4f3f6ea879d59b2788.png)(title-必看视频!获取2024年最新Java开发全套学习资料 备注Java)]
eView2/2/w/1240)