通往大师的Java学习路线


这条道路始于每天编写代码,练习和学习一点理论。第一个重要的步骤是练习Java Core。这一步是关键,由几个层次组成(见下文);第二步是学习每个现代软件开发人员应该知道的不同技术;第三步成为高手。

第一步:Java Core +

零级:Java语法
这就像学习Java的“ABC”一样,在练习期间,您逐步吸收Java语法。
主题:

  • 什么是对象
  • 什么是类
  • 什么是方法
  • 原始类型
  • 类型字符串
  • 基本操作员
  • Java if-else语句
  • 循环语句(for,while)
  • 数组

第1级:OOP
OOP不是世界上最难的话题,但它非常重要。阅读和实践OOP原则非常重要。
类继承,接口实现,数据和行为的抽象,数据和类实现的封装,多态和虚拟方法都是关键主题。练习概念和阅读书籍(例如,Cay Horstmann,Gary Cornell Core Java, McLaughlin 的面向对象分析和设计)。

第2级:Java集合
可以将一组单个对象称为一个集合,Java提供了Collection Framework,它定义了几个类和接口,将一组对象表示为一个单元。通过Java Collections接口(java.util.Collection)和Map接口(java.util.Map)学习数据结构。您可以将它们称为Java集合类的两个主要“根”接口。

第3级:Java异常
异常(或异常事件)是在程序执行期间出现的异常情况。这种机制大大简化了程序中的错误捕获。所有异常类都是类的子类型,java.lang.Exception每个Java学生都应该非常了解它。

第4级:输入/输出流
Java通过Streams执行输入和输出操作。您可以想象一个像连续数据流一样的流。对于初学者来说,这个主题可能会有问题。作为学习这个主题的奖励,你会发现System.out.println()真正隐藏的意义。

第5级:算法和谜题
算法怎么样?关于学习如何编码排序或搜索算法的价值常常存在争议。在研究集合和数据结构期间,您将了解有关排序/搜索方法的信息。Java和大多数语言都有库,其中包含用于排序和搜索的所有已知算法的实现。这意味着它们已经编写供您使用。那么你(或者不应该)担心学习如何编码它们吗?
我更喜欢的答案是 - 你应该学习它,以便知道如何像软件工程师一样更好地思考。创建自己的算法实现以及理解其复杂性非常有用。特别是对于只在高中学过数学的人。
所有流行的排序和搜索算法都在网络上多次描述和解决。因此,您不需要验证器进行验证。选择任何课程,例如普林斯顿大学或CS50或Youtube视频,并尝试编写您自己的版本。
谜题或非标准类型的Java任务怎么样?它们对任何编码器都​​非常有帮助,因为你被教导如何解决困难和模糊的问题。

第6级:Java多线程
零级之后的每个人都可以编写一个显示“Hello World”的程序,但是如果你应该使用Java Thread API这样做,那么这个着名的短语是从另一个线程打印出来的?如果程序应该从五个不同的线程打印“Hello world”五次,而没有交替的字符串。多线程即使是最简单的任务也很困难,并且是一个高级Java主题。

第7级:Java模式​​​​​​​
在这个级别上,你会知道你可以编写一些程序。它们足够好吗?它们看起来像专业代码吗?要像专业人士一样编写代码,您必须首先学习设计模式。它们代表了有经验的软件开发人员使用的最佳实践 设计模式解决了软件开发人员在开发过程中遇到的许 选择这些模式是许多软件开发人员在相当长一段时间内反复试验的结果。

第8级:单元测试
对于将单元测试编写到自己的代码中的任何程序员来说,这是一项重要技能。当您弄清楚如何编写测试时,您应该将此作为习惯应用于您的所有项目。单元测试比使用控制台输出进行检查更有用。单元测试也是公司通常信任新开发人员编写的第一件事。

第9级:lambdas
Java 8中支持lambda表达式,但并非所有程序员都采用它们。然而,今天“Java J基础任务”的概念包括使用lambda表达式的操作,所以我建议也学习它们。

第10级:JSON,RMI,HttpUrlConnection,socket中的序列化​​​​​​​
这些主题适用于更多中级和高级Java开发人员。他们需要更深入的知识,并作为他们自己的项目,实习和工作的桥梁。


第二步:附加组件
Java开发人员不仅使用Java,还使用许多不同的技术。其中一些成为每个IT人员的标准。但是,这并不意味着您必须将这些技术深入了解Java Core。稍微了解一下,其中一些你会在工作或实习期间找到更好的。
Git是最广泛使用的版本控制系统,用于跟踪计算机文件中的更改并协调多个人之间的这些文件的工作。因此,如果您想成为一名专业程序员,那么理解Git是一项要求。几乎每家软件公司都使用它。
JavaScript是一种跨平台,面向对象的脚本语言可以在任何Web浏览器中找到。JavaScript可以连接到其环境的对象,以提供对它们的编程控制。所以JavaScript无处不在,即使你不想作为前端开发人员工作,“JavaScript”这个词对你的简历也是一个很好的补充。
SQL在维基百科定义为“结构化查询语言是一种特定于域的语言,用于编程,用于管理关系数据库管理系统(RDBMS)中的数据,或用于关系数据流管理系统(RDSMS)中的流处理。”它是在初学者级别上很容易学习它。几乎每个程序员都在某个时候使用过SQL。

第三步:成为高手
大多数Java开发人员在两个领域工作,即移动技术或企业项目。在获得前两个步骤的核心知识后,我们分成两个不同的分支。我们不会详细讨论它们,但每个分支都应该有一篇特别的文章。简而言之:

移动技术:
Java知识为您打开了Android开发世界。开始学习Android编程的好地方:Google Developers Training

企业技术:
这包括一堆难以自学的技术。找到课程或实习会好得多。了解Spring是有益的,它是最流行的Java框架,Hibernate是一个对象关系映射工具以及其它相关技术。

​​​​​​​