对于零基础开发小白来讲,Java开发第一印象就是晦涩难懂,入门学习往往无从下手。大家可以先看看我整理的这份 GitHub 上星标 115k+ 的 Java 教程,里面涵盖了 Java 所有的知识点,包括 Java 语法、Java 集合框架、Java IO、Java 并发编程和 Java 虚拟机,内容不多,只讲重点。

我今年 XX 岁(调皮),使用 Java 开发将近 15 年了,目前虽然不在技术一线,但仍然和 Java 形影相伴,如影随形,每天都在相爱相杀。

虽然我是科班出身,但说实话,十多年走过来,无论是 Java 语言本身,还是它配套的工具和框架都发生了巨大的变化。我自己也是一路学习新的知识,一路丢掉废旧的知识。

现在回头来看,发现自己也走了不少弯路,浪费了不少时间,真的是既遗憾又叹息!

知乎上应该有很大一部分是 Java 初学者,因为是初学,所以面临着巨大的压力,不能付出太高的试错成本。而应该寻找一条更高效的学习路线和一套行之有效的学习方法,否则一不小心,很可能会前功尽弃。

但好在 Java 的学习资料非常丰富,只要我们稍微用心去整理下,就能找出一条高效的学习路径。过去这两年里,我不断地整理自己的思路,分享了不少关于 Java 方面的文章,但都过于分散,借这个机会,我打算重新梳理一遍,希望能对大家的学习有所帮助。

自学 Java 并不容易,尤其是对于非科班的同学来说。所以我强烈的推荐大家在学习 Java 这门编程语言之前,先学一下 C 语言。如果没有 C 语言作为基础的话,在初学 Java 的阶段会莫名的心慌。

前面提到了,我上大学的时候,一上来就学的 Java,并且教材是《Java 编程思想》,真的,就感觉给看天书一样。班里面有 80% 的人都在毕业的时候放弃了编程,很可悲的一件事,不是说 Java 这门编程语言不好,而是我们底子太差,都是第一次接触编程,难度可想而知。

编程语言都是相通的,C 语言作为 Java 语言的母胎,还是非常值得去学习一下打打基础的。其实对于我们程序员来说,学的是计算机科学,而不是编程语言,语言只是工具,没有优劣。像我,就学过 Java、C 语言、Ruby、JavaScript 等等这些编程语言,他们之间确实有很多相似之处。如果学过 JavaScript,能很容易搞懂 Java 的 Lambda 表达式

C 语言的特殊性就在于它可能是唯一一门最适合来学习一系列计算机基础的媒介,比如 Linux 操作系统,就是用 C 语言重构的;比如计算机网络,里面有很多网络协议,有不同的 header 定义,这些字段用 C 语言的 union 和 struct 来操作非常便捷。Java 中虽然剔除了指针这种烦人的东西,但说白了,引用其实和指针差不多,理解了 C 语言中的指针,就能很好的理解 Java 中的引用。

当然了,由于 C 语言的抽象程度更高,学起来也需要花费一番功夫。对于初学者来说,我推荐大家先看一下翁恺教授的 C 语言程序设计。

喜欢看书的同学我只推荐一本,《C Primer Plus》,可以说是学习 C 语言的圣经。豆瓣评分高达 9.1 分,包括数据类型、格式化输入输出、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等等这些基础知识都全部讲解到了,非常适合系统学习 C 语言的读者。

在学习的过程中切记一点,就是一定要多练多练多练,这一点不仅适合学习 C语言,也适合学习 Java 语言。有句话说得好呀,看懂了+上万行代码=学会了。无论是看视频学习,还是看书学习,最怕的就是眼高手低,以为自己看懂了,实际上呢,离学会了还差上万行代码。

一开始学习会很痛苦,我也不例外,直接开干 Java 的时候,简直就觉得自己不是块学编程的料,有想过转别的专业,比如说机械自动化,可惜考试成绩太差,没转成。等到敲的代码越来越多,慢慢的就开窍了,开窍了以后,学习依然会痛苦,但再也没有那种放弃的念头了。

PS:对于初学者来说,起步会很难,甚至不知道该用什么软件来编写代码。我已经提前为大家踩过坑了,强烈推荐 VS Code,颜值高、占内存小、插件丰富、简单易用。

已经 2021 年了,真没必要在记事本上敲代码了。反正我遇到过太多的课程,包括我上大学的时候,老师一而再再而三的强调,一定要用记事本敲出来第一个程序,并且在命令行里成功运行起来。

这么多年下来,我觉得这个建议真的是糟糕极了。记事本和命令行,怎么能让初学者上手呢?最起码也得是个湖才行啊!当年我就差点被记事本和命令行劝退。

Intellij IDEA,不用说,是编写 Java 程序的最佳 IDE,必须得掌握。初次使用的话,建议阅读一下《IntelliJ IDEA 简体中文专题教程》,GitHub 上已开源。

Maven 是一个项目管理和自动化构建工具,基于项目对象模型(POM)的概念,可以管理项目的构建、报告以及文档。作为 Apache 组织中的一个颇为成功的开源项目,Maven 主要服务于基于 Java 的项目构建、依赖管理和项目信息管理。有了 Maven 以后,第三方类库管理起来就舒服多了。

Maven 安装起来很简单,之间看官方的文档就行了,如果还想进一步深入,推荐大家看一下《Maven 实战》这本书,不用细看,大致过一遍就行了。

我推荐大家使用 GitHub 来作为私有的代码仓库,特别方便,免费还可以云同步。我之前针对新手专门写过一个教程,需要的同学可以点击下面的链接去上手体验一下。对 Git 命令比较抗拒的话,可以通过 GitHub 桌面版来傻瓜式地操作。

顺带把 MySQL 也安装一下吧,毕竟学习一门编程语言,如果不去操作下数据的话,就感觉这门编程语言空有皮囊却没有灵魂。推荐大家看一本书《MySQL 必知必会》,很薄的一本小册子,慢的话,一周就可以看完,快的话一天就能搞定。

这一套软件安装完成后,基本上开发 Java 的必备工具就齐活了。接下来,就可以放心大胆的进入 Java 的世界了。

“冰冻三尺非一日之寒”,要想把 Java 学好,当然需要花费很长一段时间,而 Java 所涵盖的知识点可以说太平洋都装不下。来上一张劝退的思维导图,罗列一下 Java 所涉及到的知识点,一是镇楼,二是让大家感受一下 Java 这门编程语言的魅力,为什么岗位多,为什么高薪,道理其实很简单,它的应用场景实在是其他编程语言不能媲美的。所以不要懵逼了,要对自己有点信心!

Java 语言的知识点非常多,而我们又时间紧迫,意味着只能挑重点、挑实用,不能面面俱到,一些不常用的知识点就只好假装已经学会了,用到的时候再去学也跟得上。总之一句话:“好钢用在刀刃上”。

入门书的话,我推荐两本,一本《Java 核心技术卷。

发表回复

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