Java 初学者的学习建议 (每个阶段要学习的内容和书籍)
声明:
1. 所推荐的学习内容是 Java Web 和 Java 后端开发的路线,非 Java Web 和 Java 后端开发的同学请适当参考其学习思想即可,切勿照搬
2. 下面对于【第一部分】的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。
第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。(核心任务:掌握工作中需要的技能,以及找到份好的工作)
一、Java基础 (要达到能编写一些简单的程序)
1. 看 Java 基础教程 (多动手敲代码,熟悉下所学的知识)
二、Web开发
1. HTML/CSS/JS(前端页面)(对后端开发人员来说不是很重要,但至少要能写出一些简单的页面)
2. Servlet/JSP(J2EE)(对后端开发人员来说必须精通,这时候要学会使用 IDE 进行开发)
3. Mysql(数据库)(不仅要学会使用 JDBC 操作数据库,还要学会使用数据库客户端工具,如 navicat, sqlyog)
三、开发框架(会这三个框架的搭建,并会用它们做出一个简单的增删改查的 Web 项目,还要会使用一些开发中常用的工具)
1. springmvc(Web框架)
2. mybatis(ORM框架)
3. spring(容器框架)
4. Git(版本控制工具)
5. Maven(项目管理工具)
四、找工作(可以看一些面经、面试书籍,然后刷一些题目)
1. Java程序员面试宝典(杨磊)
2. 牛客网刷 Java 题目
第二部分:对于参加工作一年以内的同学。(核心任务:在工作中实践,并且更加深入的了解Java基础)
一、深入了解 Java
1. 《Java编程思想》(要充分吸收,不是读一遍就完事了)
第三部分:对于参加工作1年到2年的同学。(核心任务:提高自己的编码能力,写一手优雅的代码)
一、深刻体会面向对象(设计模式)
1. 《大话设计模式》
二、代码编写的优化
1.《重构 改善既有代码的设计》,《effective java》
第四部分:对于参加工作2年到3年的同学(核心任务:深入理解 Java 底层和 Java 类库)
一、全面了解 Java 虚拟机(JVM)
1.《深入理解Java虚拟机》
二、深入的了解并发相关知识
1.《Java并发编程实战》
三、更加深入了解 Java 的类库以及所使用的框架
1. 看一些JDK中的类的源码,也包括你所使用的框架的源码(必须对设计模式深入了解,否则看的过程会有许多疑问)
四、根据优秀的源码去试着造个*
1. 一个造*的过程,是一个从无到有的过程。这个过程可以对你进行系统的锻炼,它不仅考察你的编码能力,还考察你的框架设计能力,你需要让你的*拥有足够好的扩展性、健壮性。
第五部分:参加工作3年到4年的同学(核心任务:选择自己工作中相关的一个领域,进行深入学习,还要去弥补基础上的不足)
一、精通一项感兴趣的技术, 建立起自己的优势
1. 大数据(Hadoop、hbase)
2. 分布式缓存(redis)
3. 分布式计算(Mapreduce、storm)
4. 分布式消息服务
5. 软负载均衡
二、对所选的那项技术进行深入学习,弥补基础上的不足
1. 《深入理解计算机系统》(Java Web 开发和 APP 后端开发)
2. 《tcp/ip详解 卷一、二、三》(网络编程,例如使用netty去开发,需要对 TCP/IP 了解要比较深入)
3. 《数据结构与算法》(计算研究工作的人,例如分布式计算)
第六部分:参加工作4年到5年的同学(核心任务:提高自己的影响力,为自己未来的十年工作生涯做准备)
一、利用前面自己所深入的那项技术,做个自己的产品
1. 可以在 Github 创建一个属于自己的开源项目
2. 发表一些博文
二、尝试去一些知名的公司去提高你的背景
结语
本文到此就基本结束了,整篇文章很长,但其实主要就说的内容就是Java生涯的学习。
关于这部分,我已经给出了自己的见解,但是还是那句话,每个人吸收知识的时候,都要有抽取精华,去除糟粕的能力。我所说的,可能有些是对的,有些是错的,有些是适合你的,有些是不太适合你的,你要自己能够判断。
其实你在生活和工作当中也是一样的,你身边的人形形色色,有的人你喜欢,有的人你很讨厌。但其实你喜欢的人也有缺点,你讨厌的人也有优点。你要学会从你讨厌的人身上学会他的优点,千万不要一棒子打死,这只会让你失去很多学习成长的机会。 好了,说了这么多了,就到此为止吧,希望本文可以帮助到作为程序猿或即将成为程序猿的你。