二哥,我是一名大学生,专业是电力工程,但想自学 Java,如何快速打好基础呢?
微信上 tison 向我提出了这个问题。我想我是有资格来回答的,从北京奥运会那年开始学 Java,到现在已经有 10 多个年头了,真的是从一名编程白痴一步步走到现在的。
我在各大技术网站上分享了不少 Java 方面的原创文章,不知道影响了多少初学者,反正文章的留言中经常能看到他们由衷的感谢。现在每天仍然有不少同学( tison 是其中之一)加我微信,问我怎么一路过来的,希望能够把宝贵的经验分享出来,让他们少走一些弯路。 借这个机会,就统一回答下。
既然要快速,咱就没法面面俱到,必须挑重点、讲实用。下面就根据我的实战经验,谈一谈具体的学习过程。
学习之路是一项很逆人性的差事,并不是每个人都能够坚持下来,尤其是打基础的阶段,过于强求的话可能就会适得其反,没入门先放弃了。
1 )对 Java 感兴趣,对互联网的高薪感兴趣,对“程序员秃顶”的段子视若无睹,只有这样,你才能真正地坚持下去。
2 )富有坚韧不拔的学习能力,别总遇到一点点困难,就自暴自弃。
3 )设定一个目标就死磕,如果你经常拿不到最终结果,需要反思是不是从来没有成功做成过一件困难的事情,没成功过所以不知道“坚持”可以大大提高成功的概率。
4 )拥有解决问题的勇气,学习的过程中注定会遇到许许多多的坑,要敢于跳进去,然后再爬出来,并且是在不寻求他人帮助的前提下。我见过太多的同学,遇到点屁大的问题就直接扔在群里等大牛解答,殊不知搜索引擎是第一步。
高尔基曾说过:“书籍是人类进步的阶梯。”这是至理名言,打 Java 基础的过程中必须要耐着性子去读完两本书:《 Head First Java 》和《 Java 核心技术卷一》。
上大学那会,老师要求我们读的入门书是《 Java 编程思想》,这本书确实值得读。但是很可惜,那时候我实在是看不懂,硬着头皮上也看不懂,感觉在看甲骨文一样。10 多年过去了,如果让我来推荐 Java 入门书的话,我不会推荐这本。
《 Head First Java 》是一本非常有趣的书,作者挑选的插图可以说张张经典,真正实现了“图文并茂”的需求,搞得你感觉有点不好意思,仿佛不是在读一本技术书,而是在读《知音》。
不只是图片,还有游戏、拼图、解谜题以及你意想不到的内容。真的是一点都不“正经”,正因为如此,阅读起来才会感觉兴趣盎然嘛。
《 Java 核心技术卷一》虽然没有《 Head First Java 》那么趣味化,但广度和深度都恰到好处。这两本书虽然都比较厚,但读起来并不会觉得头大,因为都算是通俗易懂的入门书。我建议你把书中的实例都在电脑上跑一遍。有些内容看不懂的话,就先跳过,不要钻牛角尖。这样下来,粗略的估计,需要 2 个月的时间。
最好的话,每读完一章,接写一篇笔记出来,所谓好记性不如烂笔头,在写作的过程中,为了能够把一个知识点说明白,你不会不自觉的学习到更多扩展的内容,理解也会随之加深。这些笔记就好像你在学习过程中的荣誉勋章,以后再回看的时候,也会觉得学习的日子过得很充实。
可能你更喜欢看视频教学,那么我也为你精心准备了一些。这些视频我已经分门别类了,需要的话可以关注我的公众号 [沉默王二] ,按照下面的口令清单回复即可获取。
除此之外,我再推荐一门免费的公开课《老九零基础学编程系列之 Java 入门》,网易云课堂上可以直接观看。主讲人徐嵩的授课风格非常风趣,听起来很过瘾,我最近没事的时候就看一集,回味一下当初学 Java 时没有视频资料的苦涩。
看视频和看书的体验完全不同,在我看来,通过视频学习的好处主要有两点:
视频中讲的东西比较形象,有一种身临其境的感觉。
视频有一种你看不到的魔力,可以提高你学习的自主性。
Spring 目前在 Java 开发中占据了重要的一环,可以说是密不可分。毫不夸张的说,不会 Spring,绝对算不上一名合格的 Java 开发人员。Spring 的核心概念是 IOC (控制反转)和 AOP (面向切面编程),这两个概念掌握了,再学习 Spring 的其他衍生项目就会容易许多。
学习 Spring 的入门书,我推荐《 Spring 实战》,这本书学起来很快,并且书中提供的案例都很容易上手,顺着敲一遍。Spring MVC、Spring Boot、Spring Cloud 是工作当中最常用的三块内容,几乎每一个成熟的正式项目都会用到其中之一,所以很有必要再花 2 个月的时间去入门一下。
要想学好 Java,还有一些知识需要掌握,比如说 MySQL、MyBaits,只有和数据库打通,才算是打通了任督二脉。学习 MySQL 的话,推荐《高性能 MySQL 》,很经典的一本书;学习 MyBaits 的话,直接看官方文档就够了。算下来的话,还需要再花 1 个月的时间入门。
花了 5 个月的时间好不容易入了门,接下来就需要一个实战项目巩固下。这里我推荐好朋友江南一点雨的《微人事》,GitHub 上已经开源,搜索关键字“vhr”即可。这个开源项目很容易上手,文档也很全面,目前标星已经 1 万多了,非常受欢迎。
这个项目学下来,预计还需要 1 个月的时间,你已经算是一名合格的 Java 程序员了。
一定要敲代码,在敲的过程中肯定会出错。不管你是在看书,或者文章,还是视频,你觉得作者说得好像挺简单的,以为看过一遍后自己也理解了。当往往不是这样的,程序在敲的过程中会发生许许多多意想不到的问题,有时候作者限于篇幅的原因,往往会选择性地跳过一些细枝末节,但这些对于编程的初学者来说,往往很难驾驭。只有经过自己的手敲出来,才能证明真的是会了,懂了。
不是有那句俗话嘛,“当局者迷旁观者清”,如果你站在读的角度,就会很容易自欺欺人;但如果自己亲自实操的话,就完全不一样了,不仅印象深刻,还为以后的复盘做好了备份。在敲的过程中,最好把自己认为经典的案例分门别类,放到 GitHub 上或者码云上,等到以后再用的时候,也好找——书到用处方恨少,代码也是。
出错了没关系,把错误解决掉的过程中你能听到自己成长的声音,就好像雨后春笋一样。没有出错的同学要么是天才,要么就是蠢材(复制粘贴)。
按照我说的方法,顶多半年时间,就可以打好很坚实的 Java 基础了。如果你在学习的过程中遇到问题,也欢迎随时和我交流。切记,要坚持,三天打鱼两天晒网只会打不到鱼还会弄破了网。
怎么样?这篇文章绝对值得点赞和收藏吧?赶紧行动起来!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.