学习 Java 的起点——你应该知道的和我希望我知道的
已发表: 2020-04-14如果它是您大学课程的一部分,那么开始编程会更容易。 然后,您不必选择学习哪种语言、跳过哪些论点以及更关注哪些概念。
当我上大学时,C 是第一个学习的编程语言,然后教授会给我们上 C++ 的课程,后来,如果你愿意,你可以学习 Java、Python 和其他语言。
然而,当我与入门级软件开发人员交谈时,我不建议你使用 C 来完成编程教育。相反,我通常建议学习 Java——我稍后会解释为什么。
尽管在我看来,Java 社区充满了学习材料,但初学者经常问我“那么,我从哪里开始?” 或“我必须阅读理论还是立即开始编写代码?”。
显然,自学编程并不容易。 作为一名经验丰富的开发人员,我决定帮助新手同行并引导他们克服 Java 学习曲线的陷阱。 在这篇文章中,您将了解哪些实践是 Java 学习中的游戏规则改变者,许多 Java 开发人员失败的地方,以及如何确保您能够在工作场所应用您掌握的概念。
但为什么是 Java?
如果您的第一反应是与我展开辩论并解释 Python 更容易,或者 C 是一种更传统的学习软件开发的方法,那么我向您保证,我知道您可以从哪里来。
我客观地看待 Java,认识到它的缺点(速度和内存效率)——不过,我相信作为入门级开发人员,没有更好的语言可以学习。
这就是为什么我如此喜欢 Java 作为编程的起点:
- Java的概念被多种编程语言使用。 面向对象的编程、类型变量或控制流都是您以后在 C 或 C++ 中工作时可以使用的概念。 如果 Python 开发人员只知道如何用 Python 编写代码,那么您将在 Java 与其他 Web 和移动语言(例如,Kotlin 的很多功能归功于 Java)语言之间架起一座桥梁。 就多功能性而言,选择 Java 绝对是对任何其他语言的胜利。
- Java 中的编码是通用的。 对于您的第一种开发语言,您不只是想要一种可以让您获得技能和工作的有利可图的技术。 相反,确保您享受愉快的旅程符合您的最大利益——而 Java 正是您所寻找的。 如果您刚刚开始,C 语言更简单的感觉可能会困扰您(您稍后会理解)。 然而,当我回忆起我学习编程语言的日子时,没有其他学习经验胜过对 Java 的干预。 创造和构建示例应用程序的空间非常大——基于文本的 RPG、控制台管理的游戏等等。 最重要的是,您可以找到各种难度的项目——无需学习数月的理论概念,然后再进行实践学习。
- 广泛使用的语言。 有时,就这么简单——你想学习一门可以让你做任何事情的语言,几乎没有什么比 Java 更好的了。 该语言非常适合 Web 应用程序、软件、Android 项目和内部工具。 在掌握了 Java 的基本知识后,您会觉得自己或多或少可以做任何事情。 诚然,像 JavaScript 这样的脚本语言仍然是必要的——但是,一旦你至少达到 Java 的中级熟练程度,它就不会像从头开始学习编程语言那样可怕。
Java 编程就业市场——有什么好处吗?
学习 Java 可能很有趣,但如果这是我唯一知道的语言,我不会失业和挨饿吗?
由于 Java 在入门级开发人员中如此受欢迎,您可能会觉得每个人都知道如何使用它,并且不再有人雇用程序员。 最有可能的是,你正在体验启动的经典效果——认为因为你看到了很多东西,所以它可能很常见。
我收集了一些关于 Java 就业市场的统计数据,以证明对于一个相当熟练的开发人员来说有大量的工作:
- 根据 Stack Overflow 的最新调查,Java 是排名最高的编程语言;
- 根据 Glassdoor 的数据,美国 Java 开发人员的平均工资为 79,137 美元。
- Indeed 上当前可用的 Java 开发职位数量 – 27,049
如果您考虑到科技界的整体趋势——例如对科技人才的需求不断增加和 Android 设备的日益普及(Java 是一种广泛使用的 Android 开发语言),那么很明显您并没有失业很快。
因此,与其犹豫是否应该尝试 Java,不如立即开始学习这门语言。
我希望在我的 Java 学习之旅中知道的事情
回到我学习 Java 的那一天,除了几十个教程、书籍和官方文档之外,工具和资源还没有一半。 为什么我认为开发人员现在有很多资源会更容易,很多入门级编码人员都被各种各样的工具弄糊涂了。
尽管获得软件开发能力并没有一成不变的策略,但我希望有人能早点告诉我一些事情。
1. 学习解决问题,而不是编程
我看到很多初学者在教程之后浏览教程,学习模式和概念。 然而,虽然这将帮助您学习 Java 语法,但您仍然远离程序员的思维方式。
就在我完成 Java 教程并不得不充分利用我的技能之后,我感到困惑和挑战。 我没有将应用程序分解成可移动的部分,也没有看到我如何自己从头开始构建它们,而是一直把每个项目都看作是一座我无法攀登的高山。
幸运的是,一路走来,我发现了大量的资源,这些资源帮助我对现实世界的 Java 开发更有信心:
- Think Like a Programmer – 这本书可以帮助您获得开发人员的思维方式,无论您正在学习哪种语言
- Codegym – 一个专门用于 Java 学习的平台,强调理论概念的实际应用。 多亏了这个,我发现了多种有用的技巧,这些技巧帮助我轻松地进行项目开发。
- Stack Overflow——我知道你听说过很多关于潜伏在这里的事——虽然我不建议从 SO 中粘贴一些代码,但浏览论坛肯定会让你更接近开发人员的心态。
2. 我低估了辅助技术
不知何故,我很幸福地不知道 Java 库和框架有多大帮助。 自然地,作为一个初级开发者,你想自己做所有事情——然而,你一天能做的只有这么多,寻找捷径往往是至关重要的。
如果我要重新开始我的 Java 学习之旅,我会在选择与该语言配对的工具集时更加彻底。
以下是我建议开发人员检查的工具:
- JUnit——Java 程序员的便捷测试工具
- JRat – 一个 Java 性能分析器,允许开发人员监控其产品的执行;
- Mockito – 一个促进 Java 模拟的开源框架;
- Ehcache – 专为 Java 编程设计的缓存工具。
我将在下面列出 Java 学习最重要的库、框架和 API。
3.我没有学习计划
非常信任教程和在线资源,我开始完全一头雾水地学习 Java。 我的旅程没有时间表,不知道如何使用我的技能,或者充实的日常学习程序。 我的动机既简单又愚蠢——Java 看起来很时髦,不知道它感觉像是错过了,所以我为什么不学习它呢?
如果您是从软件开发开始的,那么在一天结束时更彻底地了解您想要达到的目标。 不要让你心中的目标蒙蔽了你——学习编程语言应该总是从基础开始,即使你想成为一个全栈开发人员——一个多面手。
现在,如果我必须从头开始学习 Java,这大概是我的路线图:
JDK API:
- Java IO
- Java 集合
- Java 并发
- 爪哇 8
Java 框架:
- 春天
- 弹簧靴
- 休眠
- 微航海
- Eclipse 微配置文件
测试库:
- Cucumber – 促进业务驱动的测试
- 机器人框架——帮助优化集成测试
- 用于单元测试的 JUnity
- 用于样机测试的 Mockito。
有关更详细的 Java 开发学习模型,请查看下图。
我会为这些块中的每一个分配一个截止日期,以确保我不会懈怠并取得进展。
结论
当我说学习 Java 是一段有趣的旅程时,我主要指的是当你精通之后你会感受到的怀旧和快乐的回忆。 至于这个过程,你将体验到获得问题正确答案的高潮和不理解你的学习资源到底想从你那里得到什么的低谷。
与任何学习一样,掌握一门编程语言是血汗和泪水。 但是,只要你坚持下去,克服Java最初的繁琐,学习的过程会逐渐变得更加愉快,不那么累。
对此有什么想法吗? 在下面的评论中让我们知道,或者将讨论带到我们的 Twitter 或 Facebook。
编辑推荐:
- 通过这门 13 美元的初学者课程快速启动您的 JavaScript 技能
- 9 必须学习套牌才能跟上 Java
- 关于 Java 托管你应该知道的 3 件事
- 为什么 Java 编程在企业中很受欢迎?