从“Hello World”到多线程:学习Java需要多长时间?
Java 被认为是入门最友好的语言之一,这得益于它的“面向对象”特性、类型安全性和整体的简洁性。相比之下,C 或 C++ 中指针的复杂机制足以让开发者抓狂,相比之下,学习 Java 简直易如反掌。
话虽如此,究竟何时才能真正自信地掌握Java?“学会”这门语言的意义何在?又该如何达到这个目标?由于这些问题在编程初学者中极为常见,我决定深入探讨一下精通Java的途径。
简而言之,从相对熟练到完全精通Java,所需时间从6个月到数十年不等。为什么差别如此之大?让我们仔细看看精通Java究竟是怎样的体验。
“精通Java”意味着什么?
就我个人而言,我有两种标准来衡量自己或他人的编程语言熟练程度。第一种是客观的——程序员运用技术的功能性和惯用表达能力有多强。
我对自身所有编程语言技能的排名如下:
- Hello World——能够完成编程入门教材中的基本练习题。
- 熟练程度——程序员能够编写功能性程序,但在完成任务之前需要研究相关特性和技术。
- 流畅性——你不需要太多参考资料就能写出复杂的解决方案。
- 原生性——你创建的代码与母语人士创建的代码没有区别,你可以自由使用整个 Java 工具集,无需参考资料即可构建高级解决方案。
评估 Java 水平还有另一种方法——那就是看你的水平是否足以完成日常编程任务。以下是一些例子,说明“掌握 Java”对不同程序员的理解可能存在差异:
- 能够编写基本的生产级解决方案;
- 无需查阅API即可完成大学作业;
- 通过初级Java开发人员的面试;
- 用语言的思维方式去理解算法,而不是理解所使用的元素;
- 注意到语言中的不足之处,并找出改进方法。
如你所见,清单上的每一项都需要不同程度的投入——第一项可以在几个月内实现,而最后一项可能需要数十年的每日坚持。
然而,由于每个人的学习目标都不同,如果你在工作中只使用语言的基础知识,那么学习语言的高级概念可能是多余的,也是浪费时间。
在这篇文章中,我将“精通一门语言”定义为能够轻松通过求职面试,并能完美解答理论题和练习题。让我们仔细看看你需要掌握哪些知识,并找到最快捷、最有效的方法,将Java概念牢记于心。
学习Java的最佳方法是什么?
Java是最适合初学者学习的编程语言之一。在寻找学习资料时,你可能会惊讶于可供选择的博客、视频教程、在线课程和学习平台的数量之多。
面对琳琅满目的学习工具,初学者往往会感到不知所措。如果您正在纠结“我应该读Java书籍吗?还是说它太老旧了?”或者“在线课程是学习这门语言的最佳途径吗?”,不妨看看这份对最流行的Java学习工具的对比分析,包括它们的优缺点以及完成学习所需的时间。
互动平台
交互式 Java 学习工具是目前最新的学习工具之一——但入门级学生还不确定它们的效率。
优点:
- 让学习过程更具吸引力。
- 你可以将Java概念应用于现实世界中。
- 侧重于实际问题而非理论概念。
缺点:
- 需要具备Java原理的理论知识。
- 不要像书本那样对理论进行严格的把控。
- 比其他学习工具需要更多时间才能完成。
总而言之,我非常赞成使用交互式平台学习Java。在我看来,就享受学习过程、巩固已学技能以及克服学习难关的动力而言,它们都优于其他学习工具。
顶级Java学习平台
- Codegym.cc是一个面向 Java 入门学习者的深度学习平台。它以引人入胜的多级游戏形式呈现,通过幽默的语言和游戏角色,让编程学习充满乐趣。深入了解后,你会发现 CodeGym 是一款功能强大的学习工具,涵盖从 Java 核心到 SQL、Hibernate 和 JSP 的方方面面。
- CodinGame——这个平台汇集了各种练习题和挑战,你需要运用编程来解决它们。CodinGame 支持超过 25 种编程语言,包括 Java。其创意十足的故事情节和一流的图形设计使其在众多互动平台中脱颖而出。
- CodeHunt虽然没有提供学习计划,但绝对是练习 Java 技能的好工具。在 CodeHunt 中,学生需要比较两个代码片段,并选择能够正常运行的那个。排行榜可以激励你不断进步。
图书
优点:
- 对该语言理论概念的简要概述;
- 你可以自行选择学习进度,跳过你熟悉的部分,专注于更具挑战性的主题。
- 书籍深入讲解编程理论,帮助你在求职面试中正确使用程序员的词汇。
缺点:
- 没有空间练习已掌握的技能
- 缺乏与编程专业人士的个人联系,很容易误解某个概念;
- 书籍会随着时间推移而过时——你不可能获得关于该语言最新更新的教程。
- 缺乏互动,阅读很容易让人感到厌倦。
虽然21世纪的程序员常常忽视编程书籍,但我认为他们不应该这样做。我相信,阅读一本关于新语言基础知识的书籍,能够让人对这项技术有一个概览——它的应用、优缺点以及核心概念。
Java学习者的最佳书籍:
- 《Java:入门指南》 ——这是一本教科书式的Java核心教程。除了运用生动易懂、通俗易懂的比喻来帮助你理解编程概念之外,作者赫伯特·希尔德特还在每一节中都加入了测验和练习题。务必完成这些练习,以加深对知识的掌握。
- 《 Effective Java》是具备中级以下Java知识的程序员的必读之作。本书列出了78个实用技巧,它们将彻底改变你解决问题的方式,让你的代码更加优雅简洁,最终产品也更接近原生代码。
- 《Java并发编程实战》虽然有些过时(本书仅涵盖Java 5.0),但它对并发和多线程概念进行了很好的总结。《Java并发编程实战》读起来并不轻松,但一旦你读懂了,在工作中遇到任何与并发相关的实际问题都将易如反掌。
- 《Java性能优化:权威指南》是一本非常适合对JVM、性能调优或垃圾回收机制不太熟悉的读者的入门读物。本书涵盖了广泛的Java性能优化主题,从数据库应用程序调优到Java SE和EE API,无所不包。
在线课程
优点:
- 按需学习。在线课程灵活便捷:课程分为多个模块,学生可以根据自身需求选择需要更多时间和精力的主题,跳过其他主题。
- 寓教于乐。大多数在线课程都配有视频教程、测验,甚至内置的集成开发环境(IDE)来帮助学生解决练习题。因此,Java 学生可以获得理论与实践相结合的均衡教育。
- 价格实惠。有很多价格低廉的Java课程,有些甚至是免费的。
缺点:
- 声誉。出版书籍是一项严肃的承诺,但在线课程则不然。考虑到Java目前的火爆程度,市面上充斥着大量渴望成为教育者的人,他们炮制出大量平庸的学习内容。当你花费时间完成这类课程时,往往是徒劳无功。
- 不如书籍简洁明了。虽然在线课程在一定程度上比较灵活,但你可能不得不忍受讲师的语速,或者通过一些你早已熟悉的知识点的测验才能解锁新的课程。
最佳Java学习课程
- LinkedIn Learning Java 教程——这是一门简明扼要的 Java 基础知识课程。完成整个系列教程后,您将牢固掌握 Java 程序员在实际工作中常用的方法、语法和流程。
- Udemy上的《Java完整大师班》是目前最知名的Java在线课程之一,拥有超过20.7万名学员。当然,如果你选择学习这门大师班,就需要对Java学习投入一定的时间和精力——课程包含72小时的学习内容,以及测验和练习题。课程涵盖Java 8和9、多线程、单元测试、数据库、网络等诸多概念。这门Udemy课程值得你认真考虑。
- 《Java深度解析》是另一门难得一见的深入Java编程在线课程。我非常喜欢课程中详尽的讲解,以及讲师用相对浅显易懂的方式阐述Java编程概念。诚然,课程中的示例和练习题不多,但作为对主要语言概念的总结,《Java深度解析》做得非常出色。
- 《250步Java编程入门》课程结构清晰、内容深入,而且完全免费。所有学习内容都以模块化形式呈现——文字教程和幻灯片引导初学者掌握Java概念。
如何开始学习Java?
既然你已经了解了不同级别的 Java 熟练程度,并且拥有了实现个人目标的工具,那么,详细分析未来的发展道路将对你精通 Java 的旅程大有裨益。
根据我的个人经验,我为想要精通编程语言的入门级开发人员创建了一个路线图。
第一级:Java核心学习
在你成为 Java 开发人员的第一阶段,你需要学习 Java 代码与其他编程语言代码的不同之处,一个成功的程序的基础是什么,以及如何自己编写一个基本解决方案。
学习Java核心技术意味着:
- 掌握语法。首先,开发人员需要学习什么是对象、类和方法,了解如何操作 if-else 语句,使用循环、数组和最简单的运算符。
- 理解面向对象编程。由于面向对象编程被应用于多种编程语言,因此您应该格外重视它。数据抽象与封装、类表示、继承和多态性都是您需要清晰理解的概念。
- 处理 Java 集合和 Java 异常——开发人员需要熟练使用 Java 集合和映射接口。除此之外,每个计算机科学专业的学生都需要学习 java.lang.Exception 并能够识别异常类。
- Java 算法——了解如何选择和应用正确的算法来解决给定的问题,将为您处理工作项目节省大量时间。
- Java 多线程——它是 Java 中最具挑战性的主题之一,标志着你从初级 Java 开发人员过渡到中级 Java 开发人员。
- 单元测试——作为一名开发人员,你