二哥,我是一名大学生,专业是电力工程,但想自学 Java,如何快速打好基础呢?

微信上 tison 向我提出了这个问题。我想我是有资格来回答的,从北京奥运会那年开始学 Java,到现在已经有 10 多个年头了,真的是从一名编程白痴一步步走到现在的。

我在各大技术网站上分享了不少 Java 方面的原创文章,不知道影响了多少初学者,反正文章的留言中经常能看到他们由衷的感谢。现在每天仍然有不少同学(tison 是其中之一)加我微信,问我怎么一路过来的,希望能够把宝贵的经验分享出来,让他们少走一些弯路。 借这个机会,就统一回答下。

既然要快速,咱就没法面面俱到,必须挑重点、讲实用。下面就根据我的实战经验,谈一谈具体的学习过程。

01、准备

学习之路是一项很逆人性的差事,并不是每个人都能够坚持下来,尤其是打基础的阶段,过于强求的话可能就会适得其反,没入门先放弃了。

1)对 Java 感兴趣,对互联网的高薪感兴趣,对“程序员秃顶”的段子视若无睹,只有这样,你才能真正地坚持下去。

2)富有坚韧不拔的学习能力,别总遇到一点点困难,就自暴自弃。

3)设定一个目标就死磕,如果你经常拿不到最终结果,需要反思是不是从来没有成功做成过一件困难的事情,没成功过所以不知道“坚持”可以大大提高成功的概率。

4)拥有解决问题的勇气,学习的过程中注定会遇到许许多多的坑,要敢于跳进去,然后再爬出来,并且是在不寻求他人帮助的前提下。我见过太多的同学,遇到点屁大的问题就直接扔在群里等大牛解答,殊不知搜索引擎是第一步。

02、书籍

高尔基曾说过:“书籍是人类进步的阶梯。”这是至理名言,打 Java 基础的过程中必须要耐着性子去读完两本书:《Head First Java》和《Java 核心技术卷一》。

上大学那会,老师要求我们读的入门书是《Java 编程思想》,这本书确实值得读。但是很可惜,那时候我实在是看不懂,硬着头皮上也看不懂,感觉在看甲骨文一样。10 多年过去了,如果让我来推荐 Java 入门书的话,我不会推荐这本。

《Head First Java》是一本非常有趣的书,作者挑选的插图可以说张张经典,真正实现了“图文并茂”的需求,搞得你感觉有点不好意思,仿佛不是在读一本技术书,而是在读《知音》。

不只是图片,还有游戏、拼图、解谜题以及你意想不到的内容。真的是一点都不“正经”,正因为如此,阅读起来才会感觉兴趣盎然嘛。

《Java核心技术卷一》虽然没有《Head First Java》那么趣味化,但广度和深度都恰到好处。这两本书虽然都比较厚,但读起来并不会觉得头大,因为都算是通俗易懂的入门书。我建议你把书中的实例都在电脑上跑一遍。有些内容看不懂的话,就先跳过,不要钻牛角尖。这样下来,粗略的估计,需要 2 个月的时间。

最好的话,每读完一章,接写一篇笔记出来,所谓好记性不如烂笔头,在写作的过程中,为了能够把一个知识点说明白,你不会不自觉的学习到更多扩展的内容,理解也会随之加深。这些笔记就好像你在学习过程中的荣誉勋章,以后再回看的时候,也会觉得学习的日子过得很充实。

02、视频

可能你更喜欢看视频教学,那么我也为你精心准备了一些。这些视频我已经分门别类了,需要的话可以关注我的公众号【沉默王二】,按照下面的口令清单回复即可获取。

Java 基础视频名称 口令
Java 基础语法 javaboy4096
Java 面向对象 javaboy6148
深入面向对象和数组 javaboy8200
Java 常用类详解 javaboy4105
Java 集合与数据结构 javaboy2062
Java 数据结构和算法 javaboy6184
Java IO 流全解析 javaboy8209
Java 网络编程 javaboy6166
Java 异常机制解析 javaboy6157
深入理解 Java 多线程 javaboy4114
手动开发一个 Web 服务器 javaboy2071
独立开发 SORM 框架 javaboy8227
深入理解 Java 注解+反射 javaboy8218
Java 23 种设计模式 javaboy4123
学会 Java 正则表达式 javaboy6175
JDBC 详解 javaboy2080
深入理解 Java 虚拟机 javaboy2089
Java 解析XML文件 javaboy8236
IntelliJIDEA 视频教程 javaboy4285
Java 编程规范 javaboy4222

除此之外,我再推荐一门免费的公开课《老九零基础学编程系列之 Java 入门》,网易云课堂上可以直接观看。主讲人徐嵩的授课风格非常风趣,听起来很过瘾,我最近没事的时候就看一集,回味一下当初学 Java 时没有视频资料的苦涩。

看视频和看书的体验完全不同,在我看来,通过视频学习的好处主要有两点:

  • 视频中讲的东西比较形象,有一种身临其境的感觉。

  • 视频有一种你看不到的魔力,可以提高你学习的自主性。

03、Spring

Spring 目前在 Java 开发中占据了重要的一环,可以说是密不可分。毫不夸张的说,不会 Spring,绝对算不上一名合格的 Java 开发人员。Spring 的核心概念是 IOC(控制反转)和 AOP(面向切面编程),这两个概念掌握了,再学习 Spring 的其他衍生项目就会容易许多。

学习 Spring 的入门书,我推荐《Spring 实战》,这本书学起来很快,并且书中提供的案例都很容易上手,顺着敲一遍。Spring MVC、Spring Boot、Spring Cloud 是工作当中最常用的三块内容,几乎每一个成熟的正式项目都会用到其中之一,所以很有必要再花 2 个月的时间去入门一下。

04、其他知识

要想学好 Java,还有一些知识需要掌握,比如说 MySQL、MyBaits,只有和数据库打通,才算是打通了任督二脉。学习 MySQL 的话,推荐《高性能 MySQL》,很经典的一本书;学习 MyBaits 的话,直接看官方文档就够了。算下来的话,还需要再花 1 个月的时间入门。

05、实战演练

花了 5 个月的时间好不容易入了门,接下来就需要一个实战项目巩固下。这里我推荐好朋友江南一点雨的《微人事》,GitHub 上已经开源,搜索关键字“vhr”即可。这个开源项目很容易上手,文档也很全面,目前标星已经 1 万多了,非常受欢迎。

这个项目学下来,预计还需要 1 个月的时间,你已经算是一名合格的 Java 程序员了。

06、犯错犯错再犯错

一定要敲代码,在敲的过程中肯定会出错。不管你是在看书,或者文章,还是视频,你觉得作者说得好像挺简单的,以为看过一遍后自己也理解了。当往往不是这样的,程序在敲的过程中会发生许许多多意想不到的问题,有时候作者限于篇幅的原因,往往会选择性地跳过一些细枝末节,但这些对于编程的初学者来说,往往很难驾驭。只有经过自己的手敲出来,才能证明真的是会了,懂了。

不是有那句俗话嘛,“当局者迷旁观者清”,如果你站在读的角度,就会很容易自欺欺人;但如果自己亲自实操的话,就完全不一样了,不仅印象深刻,还为以后的复盘做好了备份。在敲的过程中,最好把自己认为经典的案例分门别类,放到 GitHub 上或者码云上,等到以后再用的时候,也好找——书到用处方恨少,代码也是。

出错了没关系,把错误解决掉的过程中你能听到自己成长的声音,就好像雨后春笋一样。没有出错的同学要么是天才,要么就是蠢材(复制粘贴)。

07、最后

按照我说的方法,顶多半年时间,就可以打好很坚实的 Java 基础了。如果你在学习的过程中遇到问题,也欢迎随时和我交流。切记,要坚持,三天打鱼两天晒网只会打不到鱼还会弄破了网。

怎么样?这篇文章绝对值得点赞和收藏吧?赶紧行动起来!

如何快速打好Java基础?的更多相关文章

  1. Java基础-SSM之Spring快速入门篇

    Java基础-SSM之Spring快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java ...

  2. Java基础-SSM之mybatis快速入门篇

    Java基础-SSM之mybatis快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实你可能会问什么是SSM,简单的说就是spring mvc + Spring + m ...

  3. Java基础组件快速入门

    最近需要上线很多新的JAVA项目,然而很多JAVA的相关库都不太熟悉,项目实现起来遇到了不小阻力,熬了好几天夜.现在手头的工作基本完成了,因此打算好好来归纳下java的相关工具库,将来需要借助你们,好 ...

  4. java 基础排序(冒泡、插入、选择、快速)算法回顾

    java 基础排序(冒泡.插入.选择.快速)算法回顾 冒泡排序 private static void bubbleSort(int[] array) { int temp; for (int i = ...

  5. 简明易懂,将细节隐藏,面向新手树立web开发概念——学完Java基础语法,超快速上手springboot+mybatiJavaWeb开发

    简明易懂,将细节隐藏,面向新手树立web开发概念 --学完Java基础语法,超快速上手JavaWeb开发 Web本质(先忽视各种协议) Web应用可以理解为浏览器和服务器之间的交互. 我们可以看一个简 ...

  6. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  7. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  8. Java基础知识【上】(转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  9. 微冷的雨Java基础学习手记(一)

    使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...

随机推荐

  1. $CH$3801 $Rainbow$的信号 期望+位运算

    正解:位运算 解题报告: 传送门! 其实就是个位运算,,,只是顺便加了个期望的知识点$so$期望的帕并不难来着$QwQ$ 先把期望的皮扒了,就直接分类讨论下,不难发现,答案分为两个部分 $\left\ ...

  2. $Noip2011/Luogu1311$ 选择客栈

    $Luogu$ $Sol$ 暴力十分显然叭.正解不是很好想. 我最开始想维护所有色调的客栈的前缀和后缀,然后每扫到一个最低消费合法的就统计一次答案.但是这样会重复计数,两个合法客栈之间有几个消费合法的 ...

  3. SpringBoot-2.1.1系列二:使用websocket

    1.什么是websocket? WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信--允许服务器主动发送信息给客户端. 2.为什么需要使用 ...

  4. Netty快速入门(08)ByteBuf组件介绍

    前面的内容对netty进行了介绍,写了一个入门例子.作为一个netty的使用者,我们关注更多的还是业务代码.也就是netty中这两种组件: ChannelHandler和ChannelPipeline ...

  5. aliPayPlus 科普使用

    本文出自APICloud官方论坛, 感谢论坛版主City7的分享. 首先到 https://open.alipay.com/platform/manageHome.htm 申请应用上线 支付宝网关:这 ...

  6. 曹工说Spring Boot源码(11)-- context:component-scan,你真的会用吗(这次来说说它的奇技淫巧)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  7. 一道简单到爆 Java面试题,居然挂了一票人

    很多时候bug往往都是出在,我们觉得非常简单,不起眼的基础知识上 年前公司最后一波招人,为年后项目做技术储备,主要招聘对象初中级Java开发,要求也并没有多苛刻,唯一一点基础稍好,快速上手做项目就行. ...

  8. Activiti脚本任务(ScriptTask)

    Activiti脚本任务(ScriptTask) 作者:Jesai 你一直问为什么到不了远方,请停下数数你的脚步,是不是还没迈开腿 对于没有接触过groovy脚本语言的人来说,可能比较难使用 应用场景 ...

  9. JS 头像显示

    HTML <div class="form-group"> <label class="col-sm-3 control-label"> ...

  10. SqlServer分页存储过程(多表查询,多条件排序),Repeater控件呈现数据以及分页

        存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出 ...