怎么样才能学好java编程?

不扯那些虚的,要来就来实质性的干货。

明确自己学习的原因

  • 问问自己是抱着什么目的要学习Java,没有目标的学习是效率极低的,并且容易半途而废;

  • 了解Java可以做什么,Java可以从事的岗位以及软件行业的发展情况;

  • 自己是否对Java方向感兴趣;

Java基础

学习准备

  • 推荐看视频入门,可以通过某宝以及某鱼购买相关的视频,别挑三拣四,选中一个视频看完再说,对于初学者,无论选哪一个都是值得你学习的。可以选择传智、黑马、尚学堂等教学视频,买一个系列的即可;

  • 有人说编辑器等IDE环境不适合看视频,浪费时间,但是初学者在学习第一个编程IDE时,推荐看视频或者通过搜索引擎了解工具的使用,看书其实在刚开始可能更浪费时间;

  • 看完基础视频对知识有个大概的了解,这时候看书就不会一头雾水,此时可以通过看书来深入学习,之后的学习可以自己选择看书还是看视频,最好的方法是花时间既看视频也看书;

  • 学着学着忘掉前面的别总想着回头记住,先往后学,有些基础知识暂时用不上,当你学到应用的知识时自然会慢慢理解;

书籍推荐

入门书籍:《Head First Java》、《Java 核心技术》

进阶书籍:《Java编程思想》

Java Web

学习完Java基础,接着适合学习Java Web,这个推荐看视频,学习数据库和JDBC基础知识以及基本的前端知识,然后学习SSM框架,学习路线为:

Mysql -> JDBC -> HTML、CSS、JavaScript、JSP -> Spring -> SpringMVC -> Mybatis -> SSM整合 -> SSM项目实战

推荐两本书:

《深入分析 java web 技术内幕》

《架构探险-从零开始写java web框架》:讲解 ioc、aop 通俗易懂,实现 ioc、aop

实战之后返回深入学习 Java 相关知识,自顶向下学习,通过大概学习基础,实战之后返回深入学习基础知识,由广至深。

并发编程

推荐书籍:

《Java并发编程的艺术》

设计模式

《Head First 设计模式》

JVM

《深入理解 Java 虚拟机》

要想超越别人,不仅仅要掌握实战技能,更重要的是基础扎实


算法

《算法》第4版

计算机网络

《图解TCP/IP》

《图解HTTP》

操作系统

《操作系统概念》(恐龙书)

这么多已经够你学习了,主要是行动起来,还有更深入的,比如数据库方面以及Java相关的方面,等你学完以上知识相信你自己已经知道需要学习什么了,不要一次被这么多内容吓到,只要静下心来,下一个大神就是你。


附上一张可供参考的详细思维导图

我是17年某工科非计算机本科毕业的,坐标某二线城市,大四的时候找了某个中型企业做了一年的打杂工作。平时的工作就是负责到流水线上检验产品之类的,在办公室写写文档。薪资不高,但福利还算不错,五险一金交的基数是同城市最高的。

曾经有在五个月的时间里面,我一直都处在一个很焦虑的状态,所谓的焦虑就是钱少,上升空间也没有。每天拿着一点微薄的薪水勉强度日。上班忙于上班,下班了便躺在床上什么都不做,玩玩手机上上网。我一直在思考,这辈子是否会这么平庸的活下去,以我目前的薪资这辈子也不可能在这个城市里买房,我又不想回老家。那里已经没有我的圈子了,所以我必须思考着其它出路。那时候的我每天都很焦虑,活了这么久,却什么也没干,什么事情都是在拖延。我想我以后的生活可以按照自己的想法而活。

俗话说,鹌鹑要吃红樱桃,光想是没有用的。每一个疲惫生活里的英雄梦想都是从一个小的开始。

大概在三月份的时候,我向公司递交了辞职申请。主管和老板一直在挽留我,花了将近一个月的时间在给我做思想工作,给我描绘了大好的蓝图。不过我还是遵从了内心的指示。

很早就想做软件了,不仅仅是现在软件行业一直保持着快速健康发展的趋势,还有收入平均的增速。像我们这样非科班出身,如果想走软件这条路,大多数的方法就是先进入一家培训公司学习。我有好多同学在当初毕业的时候或者在大四的时候,都是这么选择的。从事的方向也很多,什么嵌入式,安卓、Ios、游戏什么的。不过据我所知,有的只是在学习课程结束后找了一个测试的工作。我也上网查了很多培训机构,琳琅满目,不过价格来说都是一个贵字。有些风评也不好,未必适合我。总之,最后根据自己的兴趣,决定从Java入手。因为岗位多啊!同志们。

下面就是我自己学习的一些心得和过程。

先确定学习的方向,因为我想从事Web开发,也就是说。我需要知道这门体系的一个学习路线图

20180216103838768.jpg

JavaSE

关于这方面的知识,网上有很多资源。一些培训机构的视频也可以下载下来看。我在这方面选择的是看书学习。先找了一本Java2实用教程(第五版),这里我不推荐一上来就看什么Java编程思想,核心技术这样的书。对我这种新人来说,里面的内容太苦难了。先把语法看懂,写一写书上的小例子,知道Java是怎么一回事就行。

等回过头来,再去翻翻Java编程思想会容易理解很多。当然,余下的时间我推荐你最好看看计算机内部底层是怎么一回事,不需要精通,只需明白是怎么回事就可以了。

学SE的过程中,可以有那些不懂的地方,可以看看那一部分视频。结合起来才能有效率。GUI可以不学,多线程也可以先了解。因为多线程不是你看书一时半会就能明白的,需要大量的实战。

数据库

关于数据库方面的知识也是必学的,这里我推荐某传刘道成的 MySQL 视频教程。一定要结合JavaSE写一些JDBC的操作。学习一下事务的特性,因为这个面试会问。我在好几家面试面试官都会问你JDBC驱动加载过程,事务是什么,有什么特性。

以上两方面的内容,假设在你每天学8小时的情况下,一个月就可以学完了。我觉得你应该是可以做一些小的软件了。比如聊天室(涉及Socket内容)、飞机大战等等。

JavaWeb

来说说这方面的知识怎么学,HTML、CSS、Javascript、Jquerry、Ajax肯定是必不可少的。企业开发必须要懂这些,没有捷径。

其次是Jsp、Servlet。Jsp其实底层就是Servlet,所以你一定要把Servlet学好。API你一定要会用。到时候面试问你Servlet的知识你一定要能答得上来。这方面的知识只能找视频学习,对于不是科班出身的人不推荐看书。我一开始也不知道怎么开始,在网上找了很多方法,遇到不懂的就百度查资料。一定要尝试,多写。俗话说万事开头难。

接下来就是框架了,现在企业流行SSM框架。所以我只学了这三个、Spring、SpringMVC、Mybatis。学完框架之后我想你可以开始试着做一个Web项目了。这部分网上的资源也很多。可以跟着做。遇到不明白的或者代码有报错可以求助网友,毕竟网友是很强大的。

此时,我想你已经具备了可以去实习了,仅仅是实习,因为现在的你才刚刚开始,还有更多的技术需要你去不断的学习。我就是因为觉得人生是不能停止学习的,才毅然辞职,选择从事软件的行业。

心路历程

整个学习的过程很痛苦,那种痛苦虽然比不上考研。我在图书馆,通宵熬夜没命的看书。每天回到出租屋里就会觉得空虚,迷茫。第二天起来又去图书馆。看到之前从事这方面的同学一个个都加薪了,心里面不是滋味。历时三个多月都是这种状态。找工作的时候更加如此,不断的撞南墙。回家查面试遇到不会的问题,其实选择公司面试的题目大部分都是差不多的。只要你虚心一点,和面试官多聊聊,我相信你会找到第一份软件开发的工作。

找工作部分

首先是简历,因为我没有这方面的经验和经历。简历一定要写的真诚,说明自己的清空。写明自己的教育背景,如果你的外语能力比较强,这也是比较加分的。然后就是Java的一些技能,千万不要写精通什么什么,被面试官问到深一点的你答不上来,那么印象分会大打折扣。如果你在学校有获得什么证书最好也写上。多投投一些要求低的。面试多了,你也就大概知道什么套路了。找工作的一个月时间里,我收到了四个offer,虽然不多。但是我很开心。最终选择了一家薪资,发展空间,平台也好的一家公司。对方很看重我的毅力,给了我4.5K的工资。虽然不多,但这才是开始!目前我已经在这家公司入职了,氛围很好,老人愿意带我,真的很幸运!

屏幕前的你,一定要相信自己,可以完成你想象中的事情!

说道JAVA,本人也是有很深的体悟和感慨,本人也是从程序员开始,然后一直到现在从事产品工作,经历了挺多,也获得了挺多,好了不跑题了,在这里分享一下一些个人的体悟.

JAVA其实说白了就是一门开发语言,但是实际在社会上,利用JAVA这个开发的语言衍生出了非常多的工种和内容,比如Android的开发,JAVA后台的开发(Struts2,Spring,Hibernate,MyBatis等等框架)

假若你想想要走前端Android工程师路线,个人建议的学习路径:

JAVA语言学习(开发环境搭建,基本语法,面向对象,集合框架,泛型,等等等等,可购买书籍或网上下载视频) –> 数据库基础学习(可以专门学习Mysql等知识,网上有教程视频免费下载) –> Android基础学习(Android开发环境搭建,空间的学习,xml-Layout学习) –> 实战学习(自己摸索开发一款软件).

JAVA-WEB开发工程师路线,个人建议学习路径:

JAVA语言学习–>数据库学习(可重点学习Oracle)–>JAVAWeb基础学习(JDBC,HTML,CSS,TOmcat服务器,Ajax等等)–>JAVAWeb高级学习(Struts2,Spring,SpringMVC,SCM,Log4j等等框架内容)–>JAVAEE实战做项目

个人认为最好和快速的学习路径

其实就个人的建议,假若在时间的允许下,想要学习好JAVA并可以快速入门形成自有的竞争力,建议还是去一些培训机构学习. 相对与个人独自学习,培训机构有以下几点优势的:

  1. 更系统学习知识,有专门的老师教学
  2. 获得更多了未来志同道合的人员,并且可以在以后生涯中,可以共同共享非常多的知识.(这块在后期来说非常重要).
  3. 可以在更短的时间里,入门并形成能力.

当然假若去培训机构,也会有弊端:

  1. 需要花费一大笔钱,预计现在培训应该需要1~2w元左右
  2. 假若是脱产学习的方式,一般需要花费4个半月时间脱产学习,假若是社会人员,花费的时间成本高.

当然,相对于培训机构的弊端,个人认为他们优势还是比较大的,其实就本人经历来说,从毕业到现今,工作的也有6~7年的时光,其实在这些时间里,为了获得技能,也是花费了很多时间与成本在培训和学习上,如软件培训,产品经理学习,高级职称,高级管理师学习等等… 当然就个人而言,付出总会有回报,所以依据自己曾经走过的道路,在这里给出大家的小建议。

结语:

本人现今从事互联网产品工作,高级项目管理师,PMP国际管理师,欢迎有想在互联网或者在科技技术领域有所经验的人儿们相互关注交流学习.

谢请

楼主提到的书本没有读过,现在经典的java书籍目前市面上也不少,楼主提到了系统两字,要想系统的学,就不单单是书本上的问题了,需要实践,如果有可能的话还要找点项目去做。

话题既然说到了学习java方面在这首先罗列下:

在这笔者简单的罗列下知识点:

java语言基础:

标识符,关键字,注释,数据类型,变量和常量,运算符,类型转换

流程控制

顺序结构,条件语句,循环语句,转向语句,返回语句

字符串操作,数组

对象和类

继承,多态,抽象类

java高级编程

多线程

线程基础,线程的生命周期,线程调度,线程同步,线程通信,死锁

异常处理

java异常类,异常捕获,异常抛出,自定义异常

I/O系统

文件,字节流,InputStream,OutputStream,字节流Reader,Writer

java数据库编程

数据库简介,SQL语句操作执行

java网络编程

网络程序设计基础,TCP程序员设计基础,UDP程序员设计基础

java泛型编程

java反射机制

如果以上的基础学的差不多了,可以补充下更加深层次的学习

推荐几本书:

这两本书能够弥补下并发性概念的缺失,为后来的大数据以及分布式的学习有很大的帮助。

java编程思想是java框架思想的必备,想在框架上有所了解这本书是必备,作者同时是c++编程思想的设计者,尤其重视软件框架设计。

最重要的是要找到练手的项目,比如简单的商城项目,可以做个学习信息管理系统或者仓库管理系统。

走的时候别忘了点个赞,加入进来一起学编程。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注