如何学习用Java编写代码?


确定您的职业目标并选择一种语言。对于没有编程经验且希望加入开发人员社区的人来说,这是最重要的建议。但是,如何在不知道哪种语言最适合您的目的的情况下做出选择呢?
如果在所有编程语言中都有“市场领导者”,那不是很容易吗?然后所有新手总能有一个安全的选择 - 学习这门语言,你肯定会有很高的需求。当然,这是不可能的。语言是解决众多任务的“工具”。但是,有一个可以被认为是一个明星的选择 - 它是Java。

Java是一种结构良好,面向对象的语言,对初学者来说可以很容易。您可以非常快速地掌握它,因为有许多进程会自动运行。你不必深入研究“那里的事情是如何运作的”。Java是一种跨平台语言。它允许程序员创建一个可以部署在任何设备上的应用程序。它是物联网的首选语言,也是构建企业级应用程序的正确工具。
对于“新生”来说重要的是,Java拥有最大的全球社区和高质量的文档。如果您遇到问题,那么答案就在那里准备就绪,等待着您。Java的另外两个好处是庞大的集合和框架,它们涵盖了作为初级开发人员必须处理的大多数挑战。
最后,它是一种具有可敬背景和突出未来的语言。两个最新版本,增强了新功能,在六个月内发布。这有助于Java站在最前沿,保持最高职位的可观专业排名。
但即使我们谈论的是一种学习曲线较低的编程语言,初学者也有很多隐藏的方法。你需要多少时间学习?哪些来源值得信赖?要避免哪些错误?让我们一起学习你的学习经历。

确保绕过常见的障碍物
你是编程新手。恭喜:您可以利用其他程序员的经验,避免自我教育中的常见错误。这是一些经常性的失误:
1. 学习时没有设定具体目标
要估计某种编程语言的规模和理想的知识水平,首先,您应该回答一个简单的问题:为什么需要编程?
如果您认真对待编码并打算成为Java开发人员,那么您需要每天至少学习4-5个小时。但如果您只想扩大范围,可以选择更轻松的节奏。无论如何,尽管技术不断发展,但请尽量不要延长你的教育时间。当您学习某种框架或开发工具来获得工作时,它就会过时。
阅读弹出的“有用的东西”并不是最好的学习策略。可以对总体计划进行调整。但是,根本不遵循它将不可避免地使你失去动力。

2. 尝试一次学习太多技术
这是一个随后的错误,导致学习无止境。不要试图用太多的技术和工具填补您的教育计划,以避免倦怠。您需要时间来处理信息,并了解一切如何在实践中发挥作用。

3.太多的研究和理论没有实践
编程是一项只有通过大量练习才能获得的技能。你需要一个理论上的认真背景,但只要你只阅读(或观看)讲座和课程,你就无法真正编码。想一想。如果没有尝试游泳,就不能学会游泳。你需要解释,但最重要的是,你需要采取行动。(banq注:人分两种:想好了再干和干了再想,如果你脑袋很大,属于前者,需要胆量和勇气践行后者)
只有大量的练习才能教你如何处理日常程序员的问题。例如,您将养成定期检查代码的习惯,而不是让连接的问题堆积起来。您还将从最简单的解决方案开始。然后转向更精致,不断致力于改进您的代码。最重要的是,您将习惯于每天编码。


学会独立地编码
初学者经常犹豫不决,他们是否应该加入在线编程社区或参加活动,主要是因为冒充综合症(滥竽充数的自我意识,总是觉得自己是滥竽充数,过于自卑)。但请记住:没有人想让你失望。编程社区是协作的。这就是众多开放数据源的出现方式。他们习惯于在一个团队中工作,当然,所有这些人都是生命中某个时刻的初学者。
看一看:有很多关于编程的论坛和网络资源。开发人员热切地分享他们的知识,并愿意接受合作。您可以开始在线学习,从经验丰富的同事那里获得有用的提示,然后找到您的第一个编码项目。

确保有一天你会完全理解编程的各个方面
如果有人发现诀窍就能立即熟练使用任何编程语言,他就会成为这个星球上最富有的人(banq注:可能还需要勤奋和机会,更需要有每天和失败共存的心态,不会像考试会给你100分的赏赐,永远有修改不完的Bug)。但是在那之前,如果你选择成为一名程序员,那么你的学习就没有确定的结果。即使你有工作,也永远不要停止学习。在编程世界中,事情变化很快。
另一方面,当你还在学习如何编码时,尽量接受一些事实。不要深入研究每个主题,因为它的背景可能太“沉重”。


制定完美的培训计划
一步一步实现目标更容易。现在,当你知道常见的错误时,你可以避免它们。以下是学习Java的三个步骤。
1. 设定目标并选择一种语言。
你可以用Java做很多事情。您可以构建应用程序服务器,桌面和移动应用程序,企业应用程序以及运行单元测试。但是,当然,编程语言并不是您成为专业人士所需要知道的一切。试着想一下具体的活动领域。
今天的趋势是构建基于云的应用程序(您还需要学习云计算的基础知识和云开发的特定工具),使用物联网,执行大数据分析,创建游戏等。

2.制定培训计划。
你准备好让Java编程成为你的职业吗?然后将至少2-3(在工作日)至5小时(周末)专门用于每日学习。在这种情况下,您可能需要3至6个月的时间来准备初级开发人员职位。
一般而言,您的学习过程将分为几个阶段:

  • 从Oracle网站安装JDK(Java Development Kit)和安装Java运行时环境(IntelliJ IDEA,Eclipse或NetBeans);
  • 学习Java语法;
  • 学习Java核心;
  • 学习Java集合;
  • 学习流行的库包和框架;
  • 探索经常使用的API(例如,servlet,JSP,JDBC,JUnit);
  • 掌握Git;
  • 等等。

尽量遵循你的计划,并在理论和实践之间保持平衡。编程是一项每天都需要培训的技能。如果你完成了某个科目的学习,继续进行一些编码任务(3到10,取决于他们的难度)。
您可以轻松地将众所周知的Pareto原则(80/20规则)调整为Java学习。“20”代表研究,“80”代表实践。这并不夸张:你需要的代码是阅读的四倍,以记住你学到的东西并培养你的编码技巧。不幸的是,如果您不立刻编写代码,您将会忘记第二天阅读的所有内容。幸运的是,如果您有合适的来源,您不需要发明自己的培训计划。

3.选择合适的工具并加入编程社区。
说实话:完美的Java课程不存在。有些会给你一个深刻的基础知识,有些会提供很多练习。选择几个平台进行教育,沟通和实践。选择一个在线课程,结合理论的简单解释和真实的编码。
加入社区,在那里您可以询问有关Java编码方面的任何问题,分享您的想法并找到志同道合的人。下面列出了Java开发人员的顶级社区。


通过多个知识源来学习Java
您将需要许多工具来实现您的目标。这是一套让您获得成功的“工具”。

  1. 严格实践:CodeAcademy

这可能是学习多种语言的最着名的在线平台之一。当然,Java学习者也有一个部分。在这里,您将从第一课开始编码。有一些非常有用的提示,如果某项任务看起来很艰难,你可以获得这些提示(当你是初学者时这是正常的)。逻辑很简单:读取任务,编写代码并运行它以查看结果会发生什么,然后转到下一步。在您开始从干净的工作表编写代码之前,任务会逐渐变得更加复杂。常见问题解答部分非常有用,您可以选择与其他学生讨论每项任务。
本课程可以成为学习Java的一个很好的补充工具。如前所述,您需要编写代码来掌握Java编程。

2.从头开始播放和编码:CodeGym.cc
这些是针对Java学习者的在线课程,具有特殊功能 - 游戏化。如今,在线课程采用游戏化元素是很常见的,因为它们带来即时动机,持续成就感并使其更容易实现目标。
在CodeGym,您可以从未来宇宙中的0级开始,包括太空旅行,机器人和其他很酷的东西。你的目标是通过四个教育任务来升级一个角色 - 一个机器人。每个任务包括10个级别,每个级别最多10-12节课,由银河船的船员讲授。课程包括最小理论和一系列任务,包括即时验证和如何改进代码的提示。您从头开始编写代码,解决非常简单的任务,直到您为更复杂和大量的编码项目做好准备。
整个故事让你不会陷入某个主题或任务,前进并稍后返回“绕行者”。总而言之,课程中有1200多个令人印象深刻的任务。在编码中至少转换300-500小时的数量。

3.挑战程序员:Codewars
这是另一个有大量实践的在线平台。虽然它更适合具有至少小编程背景的学习者。通过训练katas,Codewars使您能够通过某种语言提高技能。
您可以在浏览器中编写代码并使用测试用例逐步检查。您还可以将您的解决方案与其他人进行比较,以扩大您的知识并讨论最佳实践。每个kata都有一个等级,每个kata都是其他程序员的挑战。当您解决更困难的任务时,您可以获得更复杂的挑战来提高编码技能。这个平台与其他平台的不同之处在于它允许在一个小组中学习和练习。

4.听听“专业”级别的讲座:EdX
EdX是由哈佛大学和麻省理工学院创立的教育平台。它涵盖了许多研究领域,包括Java编程和许多相关主题。大学提供大量经过验证的入门课程和证书课程。
每门课程都有一个明确的时间范围,包括带有文本记录的视频讲座。您可以轻松返回上一课并修改材料。有几十种不同的课程,其中一些是免费的。但是,这仍然是学习Java理论的源头。务必通过数小时的编码来加强这些课程。

想要关注Java世界的最新新闻,评论和更新?这是正确的做法。Java不断发展,升级并带来新功能。请务必每天阅读几种媒体。其中最大的是:

  • Javaworld(新闻,有用的教程,“如何使用”以及让您了解Java编程的所有其他内容);
  • Java Code Geeks(一个资源中心,为那些学习Java的人提供有关如何获得Java程序员工作的教育教程,文章和技巧);
  • DZone(为初学者和经验丰富的开发人员提供大量文章和指南);
  • Javarevisited(每日更新的博客,涵盖众多Java学习主题)。

你还记得加入社区的建议,让你的教育更有效吗?您可以在Stack Overflow的 Java部分或Coderanch中提出任何问题。
此外,Reddit上至少有三个大型社区,如learnprogrammingjavalearnjava,在这里您可以找到有关学习Java和编程的有用技巧。如果您需要更多具体信息,例如,在某些任务中改进代码的提示,请尝试CodeGym 的特殊帮助部分,其他学生和“编码教练”将帮助您解决任何问题。最后,Oracle拥有庞大的Java社区,面向新手和经验丰富的开发人员。