写给那些想自学java的同伴

自学java没那么难

一:我的经历

个人大学:第一年泡在图书馆看杂七杂八的书,跟学习毫无关系。第二年疯狂打LOL,从白银打到黄铜(黄铜守门员)。第三年上半年,被某人点醒,学习了整套C#知识体系,某马。下半年又决定转行,又开始了为期半年的自学java路程。因此个人经历可能适用一些正在学校的学生或者准备转行作java的。css

二:建议

  1. 若是你还没毕业或者想转行作java
  1. java基础,不得不提,重中之重!你须要把每一个知识点都记录下来,经过实战去强化,能够借助外来的视频资料,可是记住视频为辅(通常都不是很深刻),看完对应的都必需要看一本书:"java编程思想或者java核心技术",建议都看,十分经典,能够在你的笔记基础之上再次提高文章质量。
  2. 对于有了java基础的小伙伴来讲,那么不得不提的就是算法与数据结构以及设计模式这两大块内容,重中之重!依然先入门,你须要了解经常使用的数据结构,知道他们的使用场景以及性能分析,须要具有必定的算法能力,经常使用的排序算法等等之类,能够去leetcode网站去找一些算法题目去练练,java语言也能够在这个阶段再一次提升,你要注意你写的代码的逻辑性和美观性以及性能。设计模式不得不提,随处可见,23种设计模式都必须了解并知道之间的区别以及经常使用的场景,好比抽象工厂与建造者模式的区别,经常使用的单例模式,门面模式,适配器模式等等,spring源码能看到不少运用。headfirst设计模式(适合入门)和算法4(须要你耐着性子去看)。
  3. 接下来看你什么方向了,若是是web端,那你能够尝试去学web开发相关的一些内容了,主要包括了Html/css/js,J2EE ,mysql相关的一些知识,对于若是之后专门要作java后端的小伙伴,前端相关知识能够稍微的花一些时间,由于不须要好久,能够入门。J2EE相关的你都必须掌握,servlet的运行原理等等很关键,mysql一样是你必需要很是深刻的去学的内容,你必需要能熟练的写出SQL语句。你不只仅要会写SQL,更要配合业务写出可重用,性能高的sql语句,建议深刻的看一下高性能mysql,你不能仅仅停留在简单的增删改查,若是连数据库的设计都不会,性能优化都不了解,那么真的须要再逼一下本身,让本身懂的更多。
  4. 以后你必须靠着本身作出一个简单的网站而且搜寻一些项目资料,跟着练手,至少要有两个练习经验,巩固所学的知识点,在这个过程当中你能学到不少,会碰到各类各样的bug,请记录下来,对你有用。
  5. 作完了这些项目,你能够继续去学习一些经常使用的web框架,好比spring,springboot ,springmvc,mybatis,什么hibernate还有structs2就不要再碰了,你必须熟练掌握这些框架的基本用法,要能明白经常使用的一些配置,有兴趣的能够进入里面看看源码,记着:研究源码是你作这份工做不能停下来的事。spring重中之重,不断的探索,不断的去研究源码。顺便再学一下maven如何管理项目,还有git的一些pull,push ,merge,rebase等简单用法,公司很经常使用,不要仅仅停留在svn,不少公司都是用git的。
  1. 开始找工做
  1. 海投简历,不要很差意思,刷足面试题,最好本身要有个比较懂的技术点。
  2. 若是碰到让你培训再工做,培训期间再打生活费这种,尽可能别去,我有几个朋友吃过大亏,后来都放弃了这份工做。
  3. 面试要自信些,展示本身的特长。其实公司不少,没了这家还有下家。
  1. 工做了的小伙伴
  1. 应该尝试了很多crud的滋味了吧,也接触到了复杂业务的情景了吧,加班成了日常事了吧,是否是开始又以为漫无目的了。可能在开发中你会接触到新的知识,好比,springboot ,springcloud ,dubbo,zookeeper,linux,rabbitmq,redis,mongdb,kafka,elasticsearch等等,你须要学会去用好这些工具。
  2. 对于已经工做了的小伙伴,可能你再也不须要写简单的crud了,可是你可否本身搭建框架,可否写出可复用的模块代码,是否能写出优雅的代码,若是不能,还得继续学,必须从新拾起设计模式,要能对业务封装,对工具类封装,要能重构代码,要把设计模式运用到项目中去,你须要去看《重构 改善既有代码的设计》、《effective java》,长此以往,你能够写出比较出色又优雅的代码。但这还不够,你必需要对java虚拟机有深刻的理解,要能解决项目中遇到的内存溢出异常等等,这部份内容比较枯燥,可是你必需要啃下去,还要会模拟场景去制造异常,由于不少异常你真的不知道从何下手,只能从日志里去看堆栈的打印信息,去看虚拟机的日志信息,去分析,你才能解决问题。因此必须学好,必须死磕这方面的内容。与此同时你还须要研究jdk的源码,就跟着你一开始学java基础的来,从集合开始,去深刻的看源码,这时候你会发现java基础和数据结构和设计模式有多重要。还须要去学习并发相关的知识,要对Java并发包java.concurrent有深入的认识,这些内容须要你摒弃浮躁的心,慢慢看,不能急,急你也看不出什么效果。若是已经接触过不少分布式相关的技术了,分布式缓存,分布式消息队列,分布式计算,负载均衡,大数据等等,你可能都已经用过了,因此如今的你既有了基础知识的架构支撑,也还没到退休年龄(哈哈),建议你深刻的去研究一门技术,是很深刻,不要既搞分布式计算,又搞分布式缓存,又研究大数据等等,说本身懂的那么多,花里胡哨的,真正懂得基本都能拿下你。因此你必须开始肯定本身的研究方向,专门的去研究某个内容,让这一块成为你的优点和强项,这也是为了不大龄被淘汰的法门。你应该朝着某个领域的专家去努力。有了本身深刻研究的方向,你应该去帮助更多的人,去发表更多的优质文章,也能够去打造属于本身的开源项目,作出对别人,对本身有价值的东西。因此这个阶段的你应该提升本身的影响力,帮助更多的人,更多想学习的人

三:总结

java架构师小密圈

最后但愿大家能入了门,成为本身想成为的人,若是有须要资料或者还不清楚的,加微信号:codecarver ,或者关注下方微信公众号前端

java架构师小密圈

若是以为帮到你了,点个赞谢谢。java

相关文章
相关标签/搜索