JavaEE成长之路

前言



学习Java已经有一段时间了,在学习的过程当中也走过了很多弯路。
写下这篇博文,主要是想记录下本身学习编程之路,以及反思本身在学习的时候出现的问题,下面也会给出我自认为学习JavaEE的路线,想要学习JavaEE的同窗可适当地参考一下。

反思

在刚上大一的时候,什么编程语言都不懂,也不知道怎么学习编程。

当时想要加入学校的计算机协会,当时的师兄师姐告诉咱们想要加入协会须要审核,给了一个外国的学习网站。这个网站主要是学习HTML、CSS的。因而就去草草学习了一番HTML和CSS。那时候只知道HTML和CSS的代码可以使用浏览器来打开,能够改变字体颜色,添加图片,简单的页面布局,随后就再没有去看它了。

大一学校开的编程语言课程是c++,去逛了一些论坛(知乎,贴吧等),学习的第一门编程语言最好是C,因而我就会找相应C语言的视频去学习了。当时候把郝斌180讲C语言的视频地过了一遍,后来又把郝斌的数据结构视频过了一遍。这么一来,学校的c++课程对我来讲好像就不成问题了,自觉得就有点基础了,又去寻求其余的技术了。 

在期间,逛论坛的时候出现了不少我不知道的专业名词,看起来就以为很是地高大上:“数据库“,“Java”,“javaScript“”,“Jquery”什么的。对于当时是萌新的我,就想什么都学学。因而乎,在论坛上看见别人说“李兴华的Oracle教程”不错,我就去买了一本李兴华的Oracle书籍,跟着自带的视频学习Oracle去了。学习着Oracle,发现不少知识理解不了,甚至学了一段时间以后,会存在这样的想法:Oracle究竟学了有什么用?后来又舍弃Oracle的学习,去学了一下Java,JavaScript,Jquery乱七八糟什么的。

到了大一末时,要准备四级的考试了。编程什么的都放了一边,花了一个多月去复习英语四级,随后放暑假偷懒没有学习编程。等到大二的时候,发现以前学过的东西几乎全忘了!

在大二的时候,又去从新学习了Java,书上和视频的Demo也积极敲了,但是总以为本身不知道在学什么,成天对着命令行窗口太枯燥了!

我以为出现这样的状况有如下主要缘由:
1、过于浮躁。一会学习HTML、CSS,一会学习Java、JavaScript、Oracle,甚至在不知道为何要学习这门技术的状况下就去胡乱学习了。
2、学习路线不合理。Oracle、Java、JavaScript这样的技术没有分清学习的前后顺序而且没有体验到学习的趣味
3、没有总结和作笔记。没有对知识进行整理,并非理解了某个知识点,后边就会天然地记起来的。只要不一段时间不接触它,咱们就会遗忘。

所以在学习编程中,在咱们学习一门技术以前,咱们首先要知道这么技术是用来干吗的,咱们为何要学习它。这门技术解决了什么问题。还有就是,我是强烈建议要作笔记的,而且笔记的格式要作得整齐,否则最后你也不想看你本身写过的笔记、甚至会觉得你并无写过这篇笔记的。

推荐作笔记工具

对于截图工具,我推荐使用FastStone Capture,它十分轻巧,而且功能很是强大。

编辑笔记的工具我推荐使用markdown,在github上的不少readme都是使用它的,并且在编写笔记的时候,能够彻底不用到鼠标,仅仅用markdown的语法就能有对应的格式了。个人博文都是使用markdown来进行编辑的。

画思惟导图、一些简单的流程图的话,我推荐https://www.processon.com这个网站,很是好用,而且格式仍是挺好看的。

若是是须要用到轻量级的文本编辑器,我推荐使用sublimeText3或者notepad++



JavaEE学习路线

对于JavaEE的学习路线,我认为是以实际需求来一步一步学习,而且在短期内能看到效果的,这样是最好的。而当咱们把整个JavaEE体系有大概的了解和认识的时候,咱们再去专研基础,阅读源码

Java基础


在学习java基础的时候,尽量去理解java经常使用的知识点。而一些比较偏门的知识点,能够先放着无论,在初学的阶段不必死磕。由于有一些偏门的知识点,即便咱们搞明白了,但在后续中用不上,咱们仍是会渐渐遗忘掉。

参考视频:
1、Java毕向东
2、2015Java刘意

参考书籍:
1、java疯狂讲义
2、headFirstJava【虽然这本书销量很高,我我的不太喜欢,插图不少,与正常书籍的画风差距有点大】

在初学的时候,咱们可使用轻量级的文本编辑器sublimeText3或者notepad++,在使用久了以后,我推荐使用Intellij idea这个集成开发工具。即便咱们的视频都是使用eclipse,可是Intellij idea的风势愈来愈大,用起来也很好用,只不过有点难上手而已。

对于idea,sublimeText3的初步使用或者一些设置问题,能够看我其余的博文有没有解决方案:Idea、SublimeText教程

对于Java基础中的Swing、AWT、JDBC、注解章节的,到目前为止咱们均可以先放着不看

Web前端基础 

在学习完Java基础以后,我建议直接去学习Web前段的基础HTML、CSS和JavaScript。

由于Java基础都是面对一个命令行窗口或者咱们IDE的输出窗口,太过无聊了,咱们得学习些见效快的东西。

参考视频:
1、韩顺平HTML+CSS【讲得比较细,能够加速观看的视频速度】
2、韩顺平JavaScript【讲得比较细,能够加速观看的视频速度】

参考书籍:
HTML5+CSS3疯狂讲义

参考网站:
w3c

参考博文:
JavaScript基础教程

在学完此阶段上,咱们就会理解到HTML是名词,CSS是形容词,JavaScript是动词这么一个比喻。

XML 

在学习完Web前端以后,咱们知道了HTML的概念,而XML是HTML的升级,可是XML是用来传输数据的【它自己是但愿既可以作页面展现,又可以传输数据,但是咱们以为它作页面展现很差】。

XML解决了传输的数据是关系型数据的问题,而且是一种格式通用的传输数据文本,一般咱们能够将它做为配置文件。接下来Servlet就是使用XML做为配置文件的。

参考视频:
韩顺平xml细讲【讲得比较细,能够加速观看的视频速度】

参考博文:
XML教程

Tomcat 


在学习Servlet以前,咱们得先学习一个中间件:Tomcat。这个是可让咱们写的页面可以被别人访问。在以前,咱们写的HTML都仅仅是本身机器上的访问,咱们写出来的东西固然是想被别人访问的,只要把写的东西放在Tomcat这么一个中间件上,就可以被别人访问到了(局域网)

而Tomcat也是装载着Servlet和JSP的一个容器,是很是适合咱们学习的。

参考视频:
方立勋JavaWeb教程

参考博文:
Tomcat基础知识

Servlet与JSP


在学习Servlet以前,要看看HTTP协议的基本知识,了解HTTP的消息头。

市面上不少书籍都是先讲JSP,再讲Servlet的,其实我认为咱们先要学Servlet,再学JSP。

Servlet其实就是一个Java类,只是这个Java类被称做是Servlet这样高大上的名称而已。因为Servlet不适合作页面的输出,所以就诞生了JSP。JSP本质上就是Servlet的,所以咱们只要把Servlet学好,JSP就很天然的懂了。

参考视频:
方立勋JavaWeb教程

参考书籍:
李兴华JavaWeb
JavaWeb王者归来【我认为这本书仍是啰嗦了一点,不少输出到页面上的代码都是用Servlet来写,实际上是不必】

参考博文:
Servlet与JSP教程


Servlet和JSP要好好学,由于Servlet是JavaWeb最基础的部分了,后面所谓的框架本质上都是对Servlet进行包装的。只要把Servlet好好学了,那么理解后面的框架也就不难了,就很快能够上手。

Servlet知识点:



JSP知识点:


过滤器和监听器知识点:


JDBC与数据库


学到这里,咱们就存储数据有这么几种方式

1、使用普通文件来存储数据
2、使用XML来存储数据

通常地,因为咱们涉及到的数据量多是很大的, 普通的文件和XML能存储的数据量是远远不够支撑咱们的数据 。所以咱们作项目都是将数据存储到数据库中的,因此咱们要学习数据库的内容。

第一次接触数据库的话,我推荐是使用Mysql比较好,安装起来比较方便,配置没有那么麻烦。固然了,Oracle也顺带学学也不错。

参考视频:
方立勋JavaWeb教程
传智播客32期中Oracle教程
李兴华Oracle

参考书籍:
SQL必知必会 【这本书挺薄的,涵盖了数据库的全部知识,做为入门是不错的】
李兴华Oracle

参考博文:
数据库基础知识教程

Mysql命令图:


SQL知识点大纲图:




当咱们知道如何使用SQL,了解数据库的基本用法以后,咱们就能够去学习JDBC了。

JDBC其实翻译过来就是Java链接数据库的缩写。也就是说,Java经过程序接口来链接数据库!

JDBC参考视频:
方立勋JavaWeb教程

JDBC参考博文:
JDBC教程

JavaWeb小项目


到这个阶段,咱们已经把全部的JavaWeb基础学完了,咱们能够作几个小项目来练手练手

参考博文:
五个JavaWeb项目练手

参考视频:
方立勋JavaWeb教程

AJAX与JSON


作完几个JavaWeb小项目以后,咱们会发现即便请求的是页面上一小部分的内容,咱们仍是使用Servlet返回整一个页面给浏览器。这样的话是很是耗费资源的,明明咱们页面上其余的数据是不用动的。所以,咱们接下来就要学习AJAX了。 AJAX就是可以将一小部分的数据发送给咱们的Servlet ,Servlet处理完数据返回给页面也是一小部分, 那么浏览器只要处理那小部分数据就好了

Servlet返回的数据若是是很是简答的话,那么咱们能够直接使用字符串便可了。若是返回的数据是带关系型的话,那么咱们就要使用XML了。而XML数据又过于复杂化了,所以又出现了一种 通用的传输技术-JSON

JSON其实也就是字符串,它能够被JavaScript语法解析,轻量级而且很方便解析。

参考视频:
王兴魁Ajax教程 【这个教程有点老了,而且我我的不太喜欢那种风格】
传智播客32期Ajax章节视频


参考博文:
AJAX与JSON

Web前端库


在以前,咱们一直用的是HTML、CSS、JavaScript来作简单的页面布局,但咱们发现,若是每次都是从零开始写页面的话,那未免复杂了一点。

还有就是,咱们在学习AJAX和处理XML的的时候就知道,浏览器的兼容性问题,IE和Chrome等浏览器处理方式多是会不一样的。

每次使用原生JavaScript的时候,代码量的也比较高...

基于上面的问题,咱们就要开始学习一些简单的Web前端库了。首先就是咱们的Jquery

Jquery是JavaScript的一个库,它封装了Javascpirt不少的功能,屏蔽了浏览器的兼容性问题,在使用AJAX的时候就十分地简单了。




在学习完Jquery以后,咱们发现要对页面进行DOM操做就很是简单了。Jquery也提供了动画效果这样的接口供咱们使用。

但是在页面上,仍是须要咱们从零开始写HTML、CSS代码呀。此时,咱们就能够学习ESAY-UI,BootStrap这样的前端框架了。

对于咱们学习过了Juqery而言,而且EASY-UI和BootStrap都是有中文的文档的,咱们是很是容易上手的。

Jquery参考视频:
传智播客32期

Jquery参考书籍:
锋利Jquery

参考资料:
bootStrap中文网
EASYUI中文网

参考博文:
Web前端库

Struts2


在进入此阶段的时候,咱们已经将全部JavaWeb基础都已经学完了,是时候去学习框架了。

在学习框架的时候,咱们 要明确咱们为何要学框架?好比,为何咱们要学习Struts2这个框架呢??

1、咱们在页面上获取数据到Sevlet上的时候,若是咱们要获取的参数有多个,那么咱们就必须一个一个来进行获取(固然了,咱们可使用beanUtils)。
2、在文件上传的时候,咱们又要使用SmartUpload或者FileUpload等上传组件,并且用起来也没有想象中那么方便
3、若是咱们的功能比较多的话,那么咱们的编写Servlet的次数是会很是多的,而且Servlet上的不少代码其实也是重复的。

Struts2框架是针对咱们的Controller控制层的,也就是Servlet处理那模块的。

基于上面几种缘由,咱们就须要学习框架来帮咱们管理一些重复性的代码,这样就可以提升咱们的开发效率。

参考视频:
传智播客Java32期

参考博文:
Struts2教程

参考书籍:
JavaWeb王者归来

Hibernate


学完了Controller层的框架,咱们接下来学习Dao层的框架了。

咱们Dao层中经历了这么的阶段
1、原生JDBC
2、JDBCUtils框架

其实咱们用JDBCUtils框架的时候,已是用得很是爽了。但是若是你学习了Hibernate的话,那么就更加爽了!

Hibernate能够说是全自动实现ORM(对象映射数据库表)的一个框架,学习了它就 不用咱们写SQL语句来对数据库进行操做了。

它里边封装了增删改查的方法,对应SQL中的insert、delete、select、update语句,用起来就很爽!

参考视频:
传智播客Java32期

参考博文:
Hibernate教程

参考书籍:
JavaWeb王者归来

未完待续,若是想要上面所说的视频资源的,在评论下留言。若是我有的都免费发
相关文章
相关标签/搜索