不走弯路,就是捷径
做任何事情,最好都要有计划,学习Java也是,什么时候开始学习Servlet,JSP,什么时候开始玩框架,有了规划,就可以稳扎稳打,多实践,多练习,多Coding,自然就会有提升。
本文也是给我做了一个学习规划,我将会在Java学习之路中,逐步更新每个阶段的学习心得以及遇到的问题,欢迎大家斧正。
明确方向 坚定信心
首先,要有 兴趣 。兴趣是坚持下去的动力。不要浮躁,不要想着今天学会了if else,明天就去学多线程。要明确,学习编程没有想象的那么简单,必须要 多Coding,多思考,多Google 。
软件开发学习路线
从软件开发人员的生涯规划来看,可以大致分为三个阶段:
软件工程师—>软件设计师—>架构设计师
当然,每个人的职业发展规划都不相同,你可以根据自己感兴趣的方向发展。
让我们整理一下需要学习的主要技术:
- A.基础理论知识,如操作系统,编译原理,数据结构与算法,计算机原理等,这些内容并非不重要,如果不想成为计算机科学家,可以采取“用到的时候再学”的原则。当然,基础的数据结构和算法知识还是必备的,后面会专门介绍。
- B.一门编程语言,现在基本上都是面向对象的,这里我们用的是JAVA。
- C.一种思想:面向对象的思想,这个很重要。
- D.一种关系型数据库,Oracle/SqlServer/DB2/MySQL等,我学的是MySQL。
- E.一种提高生产率的IDE(集成开发环境),Java我用的是IntelliJ IDEA。
- F.一种UML建模工具,一般用Visio,笔进行建模。
- G.一种软件过程。RUP/XP/CMM等。通过软件过程来组织软件开发的众多活动,使得开发流程专业化,规范化。我还没接触过。
- H.项目管理、体系结构、框架知识。这块的书籍豆瓣上找找看,经典蛮多的。
路线可以是B--->C--->E--->F--->G--->H
- A和C是在不断的实践中逐步领悟编程理论与编程思想的。新技术虽然不断涌现,更新速度令人眼花缭乱,雾里看花,但是万变不离其宗,编程理论与编程思想的变化却很慢。掌握编程理论和编程思想就会有拨云见日之感。
- D.数据库可以在学习Java的时候一起学习,MySQL买本《MySQL必知必会》来上手就好。
- 软件工程师注重
B、C、E、D,软件设计师注重B、C、D、E、F,架构师注重C、F、H。
Java学习路线
首先说下我所接触到的Java应用场景:
- Java Web 开发
- 大数据方向(Hadoop)
- Android
大家根据自己喜欢的方向,学习相关内容就好。由于我对Hadoop方向也在摸索中,所以不进行推荐,大家可自行Google。
第一阶段:Java基础
牢记: 基础不牢靠,如同沙地上建摩天大厦,一触即倒
- 这个阶段主要学习:
- Java基础语法
- 面向对象思想:对象与类、继承与多态
- 集合、泛型
- 异常处理
- IO
- 多线程
- 网络编程
- JDBC
- 多Coding,多思考,多Google
- 可以开始数据库的学习,学习Java累了,可以看看数据库。MySQL《MySQL必知必会》。
- 推荐书籍:《Java语言程序设计(基础篇)》,我个人看过《Java核心技术》以及《疯狂Java讲义》还有《Head First Java》,最终还是选了Java语言程序设计。
原因是疯狂Java讲义书厚字小,实在让人提不起兴趣,Java核心技术个人不喜欢它的代码块,太小,看着累。Head First Java 这本书看着蛮有趣的,但是可能我觉得太中二了,所以入门书籍看自己喜好,随便选一本就好,不用过多的纠结于此事。
然后想看视频的可以配合视频讲解,这里推荐马士兵老师的视频,我是先看了书再去看视频的,算是知识加固吧。最重要的是,把书上的习题每个敲代码实现一遍。《Java语言程序设计》的编程题答案可向我咨询。
第二阶段:实战项目
在学习语言的时候,最纠结的事情就是找项目了,去Google找项目或者自己想实现一个爬虫,一个BBS都可以,把第一阶段所学到的东西试着应用进去,后续会更新我的练手项目上来。
这个阶段可以继续深入学习数据结构和算法知识。
推荐书籍:《大话数据结构》以及《算法(第四版)》。
Java继续深造书籍:《Java编程思想》,《Effective Java》,至于先看后看的问题,看自己的选择,我是先阅读Java编程思想。
另外,关于多线程的书,推荐:《Java并发编程实战》,这本书讲解并发编程十分详细,可根据基础书籍延伸阅读,主要是在做项目中应用,慢慢上手。
-
Android方向
可以在这里进行下一步学习,推荐阅读Android学习之路,书籍推荐:《第一行代码》,Linux基础要开始修炼:《鸟哥的Linux私房菜.基础学习篇(第三版)》
第三阶段:Java Web基础
这个阶段学习HTML、CSS、JavaScript的基础语法,学习Dom编程基础。可以看《JavaScript DOM编程艺术》。咨询了前端的小伙伴,HTML/CSS入门可以看看Head First系列,《Head First HTML与CSS(第2版)》
第四阶段:Servlet & JSP
这个阶段主要学习tomcat基础、servlet基础、web.xml配置基础、web application的结构、servlet生命周期、request response等常用方法、ServletContext类、HTTP协议基础(GET POST)、Cookie Session Application、JSP的几种语法(包括JSTL等)。
推荐书籍:《Head First Servlets & JSP》
第五阶段:实战项目
学了这么多,一定要项目实战巩固巩固。
推荐书籍:《深入分析Java Web技术内幕》,《深入理解java虚拟机》。
第六阶段:框架学习:Struts/Hibernate/Spring
框架的学习就此开始~可以配套视频学习
书籍推荐:《How Tomcat Works》,《Struts2技术内幕》,《Spring技术内幕》。
第七阶段:设计模式学习
推荐书籍:《大话设计模式》。
其他方面
-
勤查API文档
-
多Google
-
学习开源软件的设计思想
编程的学习是贵在坚持,有了规划就应该一步一步的打牢基础,多实战,多Google,多思考,这样才会有进步,与君共勉。