非科班的 Java 学习路线
学习路线
路线一
以视频为主,视频能帮我们快速的进行实操,跟着老师走也基本不会有太大的错误,下面具体说下学习过程,按照先后顺序大概如下:
-
java方面:javase,javaweb,javaee主流框架,大概就是mybatis(最常用,灵活简便),hibernate(这个好多公司都没用,重量级,学起来比较费力,容易头晕),maven(开发必用),spring,springmvc(现在开发的话基本就是spring家族的天下了,可想而知其统治地位),git和svn(版本管理工具,git 愈发流行了。
-
数据库方面:mysql,oracle,redis。mysql是开源的关系型数据库,大部分公司用这个,oracle收费的,银行用的比较多,二者都实现了标准的sql语句,推荐首先学习mysql,一通百通,而且面试都是问mysql,把它搞定就行了。redis是最常用非关系型数据库,学起来比mysql容易些,上手快。
-
分布式方面:dubbo,springboot,springcloud。分布式是未来发展的主流,dubbo以后也作为spring家族的一员专注远程调用这块。springcloud有一整套的微服务理念的落地实现,只能说很强!
-
linux,同学们记得做笔记啊,知识点很杂和多;netty高性能网络框架,这块有时间可以看看视频,原理还是比较简单。
路线二
以书籍为主,视频看完基本就再也不会看第二遍了,书本能让我们反复的去咀嚼,深挖其中的原理,从而记忆更牢固,一本好书能够让你学习起来更加轻松愉快,下面推荐的书籍都是我从各个渠道收集而来,口碑较好的书籍:
-
计算机基础方面:《计算机网络自顶向下方法》吐血力荐!书中从生活中的小事举例,形象生动,深入浅出,印象深刻,极易理解,本来网络这个东西就很抽现,看不见摸不着,选择他作为入门,我只能说或许你又快人一步了!《数据结构与算法》只要踏入这个行业,这个东西就必不可少,但凡说到原理,就是在谈这个东西,所以它的重要性是不言而喻的,而且面试笔试中也是必问的,答应我,好好学,好吗!(尽管我也学的很菜)《计算机组成原理》、《操作系统》这两本书开发中运用的比较少,但是非常有助于我们理解其底层运行机制和运行环境,当然如果你觉得一直搬砖也不错的话,略过。这四本书是计算机的基础,最好是能够多看几遍,对于后面的学习大有裨益。都是机械出版社,从外文翻译过来的,封面风格一致。
-
数据库方面:《高性能mysql》这本书有点厚,知识点很全,适合作为工具书,《mysql 技术内幕—innodb 存储引擎》此书讲的很底层,适合有一定基础的时候再看,但是个人觉得存储原理那块讲的特别好,有了此书,分分钟碾压面试官好嘛,《redis设计与实现》讲的挺透的,但是个人对这本书没有太多的感觉,酱紫。
-
java方面:《疯狂java讲义》,《疯狂java程序员的基本修养》作者李刚,这两本书比较基础,适合小白入门及查缺补漏,没事多翻翻,《java编程思想》java学习必读经典,不管是初学者还是大牛都值得一读,但是我还是罗嗦一句,小白慎入,有点厚,压力有点大,哈哈。《轻量级javaee应用实战》也是李刚的,这本书比较综合了,建议先看框架视频,然后再看书理解起来比较容易,这书不是一般的厚,厚到让你怀疑人生,仍记得从图书馆借出来后,旁人看我的异样眼光,这种书一般不用挨着看,挑重点。《深入理解java虚拟机》java高级程序员必经之路,对java有着深入的剖析,开发中少用,但绝对值得细细品味,《java多线程设计模式》可谓是java中最让人头疼的一部分知识,但是又不得不学习,算是高级知识了,怎么说额,硬着头皮上吧。这些都是从事java开发的必要知识,也是java面试的重点。
-
算法方面:《程序员面试代码指南》左神的倾力之作,你离大神只有一本书的距离!《编程之美》和《剑指offer》程序员中几乎人手一本,你不买一本好意思说自己是程序员?把这三本书中的中等题刷完也完全足够对付面试和笔试中算法题了,别说手撕代码,手撕面试官都没有问题,好吗?
-
其他方面:《鸟哥的linux私房菜》此书也是我的入门书籍,内容较多,适合当作工具书查阅,甚至被封为“linux入门神书”,不接受反驳。
路线三
-
经常去各大网站都能够学习到很多东西,互联网学习需要你一种开放的心态,既要学会从中获取,也要学会给予。列下我经常去的几个:开源中国,csdn,牛客网,知乎,github,stacoverflow。一路走来他们都有帮我解决了很多问题。我们都知道很多东西都是开源的,尤其学习源码特别有帮助,下载各种软件和工具也是十分方便,多尝试去阅读英文,对自己有好处,也是你区别于一般程序员的一种体现。
学习完以上知识后,一定要找几个综合一点的案例实操,从头到尾,从前端到后台撸一遍,了解真实的企业开发流程和常用工具,这个十分重要,虽然不能够与真实环境相比,起码越接近越好撒,给网上比较好的综合案例吧,然后有了这些经验,就可以去找实习了,过程比较虐心哈,你们自己去体会。
秋招的时候,有实习经历肯定会加分的,但是没有实习的也有机会的,面试问的最多的还是基础,基础,基础,重要的事情说三遍,特别是计算机基础和java基础,常用框架基本是问底层原理。
在学习java的过程当中有遇见任何问题,可以加入我的java交流学习秋秋qun:374320282,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。学习java有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我
杂谈
作为一个转行人员,与科班出身的不一样,从头到尾我们必须要清楚自己的目标,每一步该干什么,大概花多长时间,遇到困难也要自己解决,经常就是一个小问题一卡就半天或者一天过去了,但是这些坑都要自己一个一个去踩,才会有所进步,才能有所成长。
-
报班与否:我自己当初也是面临这个选择。每个人的情况不一样,学习效率、时间块、财力、学习资源等等因素。报班好处:系统学习,整个计划不需要自己考虑,困难小,时间稍短,资源多;坏处:压力大,节奏快,花钱,自己思考的时间少。当然自学的话,面临的困难更多,但是解决问题的能力也是因人而异的,你需要有一颗强大的心脏。
-
准备时间早晚否:送分题,肯定是越早越好。但是实际上由于视野受限,一般大多数人不会很早准备
笨鸟先飞,但是如果没有方向,最后也会不知所踪。一定要对自己有个规划,然后一步一步的学习,只要下定决心要学,无论哪种方式,坚持、积极终会有所回报的。
下一篇: C#实现某一属性值变化时触发事件