Java 开发人员的清单

可用

每个 Java 程序员都必须对软件开发有基本的了解。那么让我们来看看什么是“基本”。

1. 基本算法

开始学习编程(不仅仅是 Java)时首先要解决的是了解基础知识。例如,算法。

它们的数量是无限的,你不应该为了学习尽可能多的算法而耗尽一生:它们中的大多数对你没有用。你可以从《Grokking Algorithms》一书中获得必要的最低限度的知识。这足以让您入门,但如果您愿意,可以从 Robert Sedgewick 和 Kevin Wayne 合着的“结构和算法”或“Java 算法”一书中学习。

2.Java语法

学习完算法的基础知识后,我们需要学习Java语法。毕竟,您正在学习成为 Java 程序员,对吧?CodeGym 课程非常适合这一点。

在执行无数任务时,您将掌握 Java 语法,然后毫不犹豫地编写/阅读 Java 代码,就好像它是您的母语一样。

除了实践之外,您还需要查看理论以了解您在做什么。为此,您可以阅读书籍。例如,以下之一:

  • “深入浅出Java”,
  • Barry Bird 的“Java for Dummies”;
  • Herbert Schildt 的“Java:初学者指南”。

读完这些书后,你可以开始阅读更难的书:

  • “用 Java 思考”,Bruce Eckel;
  • Joshua Bloch 的“Effective Java”;
  • Herbert Schildt 的“Java:完整参考”。

最后三本书对于初学者来说并不容易阅读,但它们确实为 Java 理论提供了坚实的基础。

3.设计模式

设计模式是某些可重复的模式,可以解决经常遇到的问题。它们包括每个有自尊的程序员都应该知道的基本、简单的模式。要了解此主题,请阅读“Head First Design Patterns”一书。

它以易于理解的方式解释了基本的设计模式。但是这本书谈了很多关于 Java 的内容,所以当您阅读这本书时,您还需要熟练掌握这门编程语言。

要更深入地研究模式,您还可以阅读四人组(Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)的“设计模式:可重用面向对象软件的元素”。学习完本主题后,您将开始在代码中几乎无处不在地看到模式。

请注意这一点,尤其是 Spring 中使用的模式,因为这是一个流行的面试问题。

4. 编程范式。代码清洁度

除了标准设计模式外,还有各种原则和范例需要注意(SOLID、GRASP)。

您还需要保持代码的清洁和可读性。对于所有内容,您都需要了解该主题,请参阅 Robert Martin 的 Clean Code,或查看 Steve McConnell 的“Code Complete”。

5. SQL

我们的下一步是研究关系数据库的语言——SQL。

数据库是存储 Web 应用程序使用的信息(数据)的地方。一个数据库由几个表组成(手机上的通讯录就是一个简单的例子)。

Java 开发人员不仅要对 Java 应用程序负责,还要对与之交互的数据库以及存储数据的位置负责。

在关系数据库(最常见的类型)中,所有交互都通过一种称为结构化查询语言或 SQL 的特殊语言进行。

要理解这个主题,您需要做的就是阅读以下书籍之一:

  1. Alan Beaulieu 的“学习 SQL”;
  2. Chris Fehily 的“SQL”;
  3. Lynn Beighley 的“深入了解 SQL”。

但是没有理论的实践并不能解决问题,不是吗?在面试中,您可以期待对您的 SQL 知识的测试。面试官经常(几乎总是)给出一两个涉及编写 SQL 查询的任务。

因此,磨练您的实用 SQL 技能以展示自己非常重要。

6. MySQL/PostgreSQL

学习SQL语言后,需要熟悉具体的数据库实现。根据数据库的不同,某些命令可能会有很大差异。数据库功能也有相当明显的差异。

最常见的关系数据库是 MySQL 和 PostgreSQL。MySQL 简单得多,但 PostgreSQL 具有更广泛的功能。熟悉其中至少一个就足以开始了。

如果你使用谷歌搜索技能,你可以研究数据库的实现——在 YouTube 上找到相关的文章和教程。您需要培养针对需要回答的问题制定适当搜索查询的能力。毕竟,程序员是谷歌搜索黑带的人。

7. 行家/摇篮

您需要学习 Gradle 或 Maven 框架。它们用于构建项目,而对于您来说,Java 现在不仅用于涉及几个类的任务,而且还是一种用于编写成熟应用程序的语言。

您需要了解如何构建项目、构建阶段是什么、如何使用第三方代码加载必要的外部库等等。

尽管 Gradle 更新更简洁,但大多数情况下使用 Maven。因此,请特别注意 Maven 构建生命周期。

8. 混帐

Git 是一个分布式版本控制系统。该技术使开发人员可以在不相互干扰的情况下协作开发单个应用程序。

当然,还有其他的版本控制系统。例如,颠覆。但是 Git 使用最广泛,您需要能够使用它。除了您可以在网上找到许多关于 Git 的文章外,YouTube 上还有足够多的视频来帮助您逐步掌握这项技术。

首先,最好从命令行使用 Git 而不是某种 GUI 实现,因为你将被迫使用命令来完成所有事情。在面试中,人们经常喜欢问一些 Git 命令,所以我建议您将它们写下来并放在附近的某个地方。

9.JDBC

该技术连接您的 Java 应用程序和关系数据库。对于基础知识,请阅读任何 JDBC 教程。

有大量文章解释 JDBC 并提供基本示例,即使没有人再直接使用裸 JDBC。

10. 联合行动计划。休眠

JPA 是一种在 Java 应用程序和数据库之间建立连接的方法,就像 JDBC 一样。但同时,JPA 是一种更高层次的技术,因此更易于使用。

但 JPA 只是一个规范,而不是一个实现。它需要一个具体的实现。它们中的许多都存在,但最接近 JPA 理想、最流行和最发达的是 Hibernate。

在您的软件开发生涯中,您将不止一次地接触到这项技术。因此,除了通过阅读文章熟悉这项技术之外,还值得考虑阅读一本书,例如“Java Persistence API”。

11. 春天

当你成为一名 Java 开发人员时,Spring 不再只是你的代名词。了解这个框架现在和了解 Java 语法一样重要。您可以说 Spring 有一个兄弟,即 Java EE。但是 Java EE 已经过时,不再用于新项目。

现在绝大多数的 Java 开发者都是 Java-Spring 开发者,所以了解一些基本的 Spring 技术是必须的。

Spring不仅仅是一个框架,而是一个框架的整体框架:

而这只是 Spring 提供的框架的一个子集。对于初学者来说,只知道其中的几个就足够了:

弹簧芯

你应该把它放在首位,这样你才能理解 Spring 是什么——所有关于 Spring 容器、bean、DI、IoC 等等。可以这么说,理解使用 Spring 的哲学。您对 Spring 框架的进一步研究将建立在这个基础之上。或许您应该创建自己的小应用程序,您可以在其中逐步融入所有新学的技术。

春季JDBC

前面我们提到 JDBC 作为一种创建数据库连接的技术。总的来说,在项目中已经找不到“裸”使用该技术的情况了,因此您可能会得出结论,学习 JDBC 是没有必要的。这不是完全正确的态度。

通过探索 JDBC 的裸(直接)使用,您可以在较低的层次上看到该技术并理解它的问题和缺点。那么当你开始学习Spring JDBC时,你就会意识到这个框架到底改进、优化和隐藏了什么。

春季休眠

类似于裸 JDBC 的情况,该框架利用现有技术,在本例中为 Hibernate。如果您考虑在没有 Spring 的情况下使用 Hibernate,您一定会意识到 Spring Hibernate 提供的好处。

春季 JPA

前面我们谈到了 JPA 并提到它只是一个规范,尽管它有各种实现。在这些实现中,Hibernate 最接近理想。

Spring 有自己理想的 JPA 实现,它在底层使用 Hibernate。它尽可能接近 JPA 规范的理想状态。

它被称为 Spring JPA。总之,它大大简化了数据库访问。

不学JDBC、Hibernate、Spring JDBC、Spring Hibernate,只能学JPA。但是如果您采用这种方法,您对如何连接到数据库的知识将非常肤浅。

春季MVC

该技术可以向用户显示我们应用程序的 Web 界面,并促进界面与应用程序其余部分之间的通信。当您有一个负责处理显示的应用程序并且您使用 RESTful 技术与该应用程序交互时,也可以在没有显示的情况下使用该技术。

为了更好地吸收有关 Spring 的信息,除了文章和 YouTube 讲座外,您还可以阅读几本书。例如,Craig Walls 的“Spring in Action”。另一本关于 Spring 的好书是“Spring 5 for the Professionals”。它更密集。更像是一份参考资料,放在手边比从头到尾阅读更有价值。

弹簧靴

该技术大大简化了Spring的使用。我没有一时兴起把它放在列表的末尾。事实上,它确实隐藏了很多东西,对于不熟悉 vanilla Spring 的人来说,很多要点可能不清楚或无法理解。

首先,为了更好地理解 Spring 框架的工作原理,您应该使用常规的 Spring,然后获得使用 Spring Boot 的所有更高的好处。

您还应该熟悉 Spring Security 和 Spring AOP。但与上述技术不同的是,目前还不需要对这两者有深入的了解。

这项技术不适合初学者。在面试中,初级开发人员不会被问及这些问题(也许除了一个肤浅的问题)。阅读这些技术的概述以及它们工作背后的原理。

你知道的越多,你就会越快找到第一份工作。

评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论