微信公众号【程序员江湖】css
做者黄小斜,斜杠青年,某985硕士,阿里研发工程师,于2018 年秋招拿到 BAT 头条、网易、滴滴等 8 个大厂 offerhtml
我的擅长领域 :自学编程、技术校园招聘、软件工程考研(关注公众号后回复”资料“便可领取 3T 免费技术学习资源)前端
Java工程师学习指南mysql
初级篇程序员
最近有不少小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好。本来我觉得以前的几篇文章已经能够解决你们的问题了,其实否则,由于我以前写的文章都是站在Java后端的全局上进行思考和总结的,忽略了不少小白们的感觉,而不少朋友都须要更加基础,更加详细的学习路线。面试
因此,今天咱们从新开一个新的专题,分别按照四篇文章讲述Java的学习路线(分别是入门篇,初级篇,中级篇,高级篇),笔者也打算趁此机会,回忆一下本身的Java学习历程。今天咱们要讲的是,小白同窗如何入门Java。ajax
先声明一点,文章内容不会详细到每一步怎么操做,只会提供大体的思路和方向,给你们以启发,若是真的要一步一步指导操做的话,那至少须要一本书的厚度啦。sql
本文所述的方法不必定适合全部人,若有错误敬请谅解。数据库
01编程
Java Web项目指南
jav在上一篇文章中,咱们讲到了入门Java的几个步骤,先搭建好环境,而后熟悉基本语法,接着熟悉Java的一些核心技术,而且在代码中进行实现。
若是你已经完成了这部份内容的学习,应该会感受本身对Java已经有必定了解了,能够轻松地写出一些Java代码,好比实现多线程输出数字,再如操做IO流等等。
固然,这些代码一般只是一些demo,咱们在实际的项目中可能并不会这么简单地使用这些技术,咱们可能会同时使用集合类,多线程,以及操做数据库的API。
因此,在今天的初级篇中,咱们就来谈谈怎么作项目吧。
对于大部分Java新手来讲,最适合他们入门的项目就是Java Web了。由于Java自然适合作Web应用,而且生态完善,更有不少开源的工具和框架去支撑这些应用,好比Spring,Hibernate,SpringMVC等等。
那么,如何开始着手作一个Java Web项目呢。我的认为最好的方式就是看视频了。由于,看书的话,不少内容比较过期,而且通常不会提供源代码。也有一些大佬喜欢推荐开源的项目(在GitHub上面的项目),可是对于小白来讲,若是没有很完整的文档去指导他们,那也是毫无心义的。
曾几什么时候,Java Web的项目还在使用JSP + Servlet进行开发,后来出现了Struts2,再后来,出现了咱们如今也一直在用的SpringMVC,说实话,不论使用哪一种开发框架,你都须要先花一些时间去学习相关的技术,不然你会发现,即便是看视频,你也不知道里面在讲什么。
要想作好一个JavaWeb项目,你不只须要一个好的项目课程,还须要足够的知识储备,下面就让咱们来理一理这些内容把。
Java基础部分的内容我们上次说过了,这里就再也不重复啦~下面咱们分别来讲说其余几方面的知识储备把
02
前端知识
推荐资源:在w3cschool学习html,css和js,支持在线测试代码。
既然是作Web,就不免要涉及到前端技术,不过,如今先后端分离已是一种趋势,因此,若是你对前端不感兴趣,也不必花太多时间去学习。
对于大部分同窗来讲,你最好要了解html的基本标签和格式,本身可以写一些简单页面,CSS的话,也能够稍微接触一些。相对于前面两个服务于样式的技术,咱们却是更应该去学习一下JavaScript,了解它的一些基本语法,以及ajax的使用,由于在先后端交互时,ajax是很是重要的。
因此,作一个Java Web项目,你不须要花太多时间在写前端页面上,若是有源代码能够直接使用,固然,对于一些须要修改的前端页面,你得怎么去作修改它,由于有时候你须要使用JSP,JSP既包括前端代码也包括Java代码,若是你彻底看不懂前端代码的话,那就很尴尬了。
03
Java Web经常使用技术
JavaWeb的技术栈其实比较庞大,因此咱们不要求面面俱到,只是但愿你可以熟悉一下项目中可能用到的技术。下面列举一些常见的技术,你们最好要了解一下。
1 JSP和Servlet
推荐资源:《JavaWeb入门到精通》,慕课网、极客学院等网站上的JavaWeb基础课程
这是Java Web开发最原始的形态,如今不多直接使用了,可是后来的各类框架其实也是创建在servlet之上来作的。大家须要了解这两个技术分别是用来干什么的,最好能写一些demo来实践。
对于JSP,有时候你可能还要学习jstl等标签语言,由于这些标签可让你更方便地往JSP中插入Java代码。
2 Spring和SpringMVC
推荐资源:《Spring实战》,慕课网、极客学院等网站上的SpringMVC基础课程。
事实上,除了上述资源以外,你也能够直接到官网上查看快速开始文档。
Struts2早已被时代抛弃,Spring则是当今的霸主,你须要了解Spring如何使用,以及SpringMVC如何使用,而且学会在项目中使用它。
因为SpringBoot最近很火,而且搭建方式比SpringMVC更简单,你也能够先学习SpringBoot,以便更快速地搭建起你的第一个Java Web项目。
3 MySQL
推荐资源:《Sql必知必会》,Runoob上的MySQL基础教程,慕课网、极客学院等网站上的视频课程
一个JavaWeb应用必定要有数据啊,因此咱们须要用到数据库,其实搭一个mysql数据库是很是简单的,可是对于初学者来讲最麻烦的就是写sql了,因此,先学会建表,熟悉sql,对你之后作项目也是大有裨益的。
4 Hibernate和Mybatis
推荐资源:Runoob上的Hibernate和Mybatis基础教程,慕课网、极客学院等网站上的视频课程
当你学会了使用sql去查询数据,可能还不足以让你在项目中很方便地处理数据,由于咱们还须要一个步骤,就是把数据库的数据转化成Java里的对象。orm框架就是为了解决这一问题而出现的,它可让一张表和Java类一一对应,让数据查询变得很是方便。Hibernate和Mybatis都是orm框架,只不过如今mybatis愈来愈火了。
因此,你须要了解这一技术,由于它会普遍地运用到大部分Java Web项目中。
5 Maven
推荐资源:《maven实战》,易百教程里的maven教程,慕课网、极客学院等网站上的视频课程
刚才我们已经说过了Spring,orm框架,以及MySQL等方面的技术了。实际上,一个简单的Java Web项目也只须要这些东西了。
可是,有一个问题,就是:一个项目里用到这么多技术,所须要的jar包也会不少,咱们如何管理这些jar包呢。若是直接导入所需jar包,那当jar包更新或者须要替换时,每次都要手动操做,很是麻烦。另外,当jar包不少时,项目打包后的war格式文件也会很大,不利于传输。
为了解决上述问题,maven应运而生了。maven经过pom.xml文件来指定所需的jar包,而且自带了不少构建相关的功能,好比编译,打包,运行单元测试等等,由于它自己就是一个构建工具。
固然,新手可能还难以理解这些概念,你必需要知道的是,大部分Java Web项目须要用maven来管理,你须要学会maven的基本用法,最基本的用法就是:学会修改pom.xml文件。
6 Tomcat
推荐资源:慕课网、极客学院等网站上的视频课程。
对于小白来讲,Tomcat相关的技术是很是复杂的,毕竟它是一个应用服务器啊,事实上这个时候,你只须要学会如何安装Tomcat便可。毕竟,它在项目中的做用就是提供一个运行环境而已。
正常来讲,你只要下载解压Tomcat的压缩包便可。因为如今的IDE都支持集成Tomcat,因此通常状况下你均可以在IDE中配置好你的Tomcat路径,而后设置好你的项目路径,IDE会自动把你的工程代码部署到Tomcat服务器上。
若是你使用想跳过IDE直接部署工程到Tomcat上,也能够直接编译工程而且打包获得war格式的文件(这个步骤可使用maven来完成),而后拷贝war文件到Tomcat下的特定目录便可。
上述两种部署方式的详细步骤请到搜索引擎寻找答案。
7 Git和GitHub
推荐资源:廖雪峰的Git教程,GitHub官网,慕课网、极客学院等网站上的视频课程。
既然要作项目,为何不把它发布在GitHub上。当你熟悉了Git指令以后,你能够很方便地发布你项目中的每一次更新,而且同步到GitHub上,这样既可让你更好地管理项目版本,又可让你GitHub更加活跃,为你将来的面试加分。
因此,赶忙学好Git指令,而后开启你的项目之旅吧。
04
其余经常使用组件
除了上面几种必备的技术以外,有时候咱们在项目中还会用到其余东西,在这里咱们把它们叫作组件。这里只作简单的介绍,至于具体怎么使用,在网上均可以很容易地找到相关文章。
1 日志系统
当项目代码比较多的时候,容易发生错误,日志能够很好地记录代码运行时的错误,经常使用的日志系统有log4j,logging等等,另外你还须要了解一下slf4j。
2 单元测试
日志系统能够记录代码问题,单元测试则是为了不代码出错,经常使用的单元测试组件主要是JUnit,建议你找个文档看一看,而后下载下来玩一下。
3 JSON
JSON逐渐成为先后端数据交互的标准格式,为了在项目中使用JSON的API,你也须要导入它的jar包,通常咱们都会使用阿里提供的fastjson,赶快下载来玩一玩吧。
固然,经常使用的Java Web组件还有不少,好比HTTPClient,再好比一些加密工具,一些压缩工具等等,这里就再也不一一列举了。
05
推荐项目课程
如今网上的项目课程那么多,哪一款更适合你呢?
其实我看过的视频课程也不是不少,早先在慕课网和极客学院看过一些项目课程,以为比较通常,对新手来讲不太友好。
个人一些同窗看过一些培训机构的课程,专业讲师录的项目课程可能会稍微好一点。在我公众号后台回复“Java”能够领取某机构的视频课程,不过我不是打广告的,这个机构也没有给我钱啦。
固然,我最推荐的仍是牛客网的视频课程,分别是Java中级项目课和Java高级项目课。主要有几点缘由吧:
1 叶神讲课,比较了解同窗们的状况,并且技术功底摆在那里没的说。
2 所作的项目比较接地气,用的技术栈也比较新,比较全。
3 我本身全程跟着牛客网的项目课作了一遍,感受确实有收获,并且每一个章节的安排也比较合理。
4 配套有PPT,项目代码以及部分安装包,可让你省去不少繁琐的环节。
看来我真是牛客网的真爱粉,竟然帮牛客网免费推广~
固然,你也能够本身去找一些你感兴趣的项目课程,后续我也会收集更多的视频课程来分享给你们。
PS:若是找不到我说的这些资源,也能够微信私我。老规矩,公众号后台回复“少侠”能够勾搭做者。
06
总结
今天的内容就到这里了,与其说是初级篇,反而更像是“项目篇”呢。由于学完基础内容以后,作项目是最好的复习和实践方式了。因此这篇文章围绕着作项目来展开,也就不足为奇了。
今天咱们主要讲的是,作好一个JavaWeb项目,须要哪些知识储备,须要了解哪些技术,而且我也推荐一些比较精品的视频课程。
后面我还会写一篇文章,专门讲一讲怎么作项目,会更加详细,更加侧重怎么去作,敬请期待吧。
总结如下今天说的几个要点吧:
1 Java基础知识储备
2 前端知识储备
3 了解和使用JavaWeb经常使用技术
4 JavaWeb经常使用组件介绍
5 视频课程推荐
俗话说的好,磨刀不误砍柴工,相信你看了本文以后,能够更好地作好知识储备,而后开始Java Web的项目实践,但愿你可以顺利地完成你的第一个项目。
笔者在今年秋招中成功拿到BAT头条网易等大厂的研发offer,期间总结了不少经验和技巧,我把它们写成文字,作成专题,发表在公众号上,但愿让更多有须要的朋友看到。