如何学习 Java 而不感到无聊
即使是学习速度最快、天赋异禀、热爱自己所学科目的学生,有时也会对学习过程感到厌倦。这是很自然的事情。每个学习过程都有规律可循,如果你想取得成功,就不能逃避它。
在编程这样一个内容丰富的领域,这条规则就更加适用了。在本文中,我将探讨几种学习方法,并告诉你如何学习编程才有意义,这样你就不会沉溺于日常琐事,也不会失去学习的动力。
首先,去哪里学习 Java 或其他语言?
有不同的方法。
经典:学院和大学
过去,高等教育是通往软件开发的唯一合理途径,但即便如此,也存在许多例外。如果你有幸就读于一所优秀的大学,拥有优秀且进步的教师团队,那么高等教育当然会成为你的优势。尤其是如果你想从事科学研究的话。
然而,在现实生活中,只有一小部分软件开发人员从事知识密集型工作。你的面试官并不期望你拥有优异的成绩和文凭,而是良好的实践技能。如果你能解决实际问题,我怀疑你不会被录用。但是,如果你不会……你为什么需要这样的工作?
优点:
- 声望。
- 帮助您从事软件工程师工作的基础知识。
- 您在学习项目中获得的经验。
缺点:
- 学习年限4年或以上。
- 有些科目可能会浪费你的时间。
- 并非所有教师和教学大纲都适应现代现实。
- 很多时候,你无法获得真正编程的实用技能。
- 好的大学学费相当昂贵。
如果你真的想获得计算机科学学位,应该去哪里?没有统一的答案,但你可以尝试在世界大学排名 (WorldUniversityRanking)中搜索。
线下/线上课程,固定上课时间
好消息:线下编程课程比大学学习时间短得多。它们通常需要一个标准学期,大约4-5个月。这些课程类似于大学的讲座和实践课,按照一定的时间表进行,线上或线下均可。
优点:
- 你有专业人士制定的具体时间表和计划。这样你就知道下一步该做什么了。
- 您的导师会检查您的代码和知识。
- 你可以向你的导师咨询。
- 通常,你可以和你的同学讨论你的问题。
缺点:
- 这类课程的讲解非常简洁。如果你缺课几节,你的学习进度就会落后很多。
- 它们相当昂贵。
- 为了取得好的结果,你的导师应该既是一名优秀的程序员,也是一名优秀的老师。
- 导师太忙,无法为每个学生提供足够的时间
- 你来自小镇吗?我觉得你找不到好的线下软件开发课程。
包含视频讲座、书籍、教程的在线课程
好的讲座价值连城。然而,别忘了编程首先是一项实践活动。因此,YouTube、网站或纸质版的讲座虽然很有用,但这只是学习的一部分,并非最重要的部分。
优点:
- 结构清晰。
- 基础知识。
缺点:
- 仅靠阅读或听讲座并不能让你成为一名程序员。
- 即使你在书本或视频讲座中找到了练习,你也需要有人来检查你的解决方案。
- 任务不够。
- 你应该控制自己定期学习。
因此,使用这样的课程或书籍是个好主意,但这不是你学习的基础。
现代实用在线课程和任务集合
近年来,出现了许多交互式在线课程和应用程序。它们提供编写代码的任务。有时还会内置代码验证器。我个人非常喜欢这种趋势。如果在学习过程中有这样的交互式任务集合,我会更加开心。
优点:
- 练习。你才能真正学会如何编码。
- 有趣的任务。
缺点:
- 通常任务集合不适合完全的初学者,它们需要一些先前的知识。
- 有时这些集合没有结构和讲座,因此您需要使用其他来源。
- 再次,你应该控制自己定期学习。
那么,你应该怎么做呢?如何学习 Java?
实践是第一位的!
每一段都充斥着太多“缺点”,不是吗?然而,这并不意味着没有适合学习编程的方法。事实上,在每个类别中,你都能找到非常适合你的解决方案。此外,将这些方法结合起来也是一个非常好的主意。例如,阅读你喜欢的Java 书籍,同时解决在线资源库中的编码问题。在导师的指导下上课……此外,还要解决编码问题。在大学学习计算机科学……再次解决编码问题。我三次提到实践任务并非巧合。我真诚地相信,实践是程序员成功发展的神奇钥匙。所以我的答案是:在任何地方学习 Java,但解决大量编码问题是必须的。我的意思是,即使老师没有布置这样的家庭作业,也要每天编写代码。
任务来源:
CodeGym——一门在线 Java 核心课程,包含 1200 个编程任务(从最简单到相当难),以及验证器和讲座……
GeeksForGeeks——一个
优秀的资源,包含大量任务和不同的课程。你可以在这里找到许多编程任务来理解算法和解决难题。CodeWars——你可以找到不同的谜题,解题过程非常有趣。
如何避免无聊并保持动力
设定目标
如果你在大学或课程学习,这真的很容易,你只需要安排好时间。但是,如果你独自学习 Java,你该怎么办呢?一个好主意是寻找一个针对初学者、评分高的在线课程时间表。我通常会建议我的学生制定一个“下一个计划+待办事项”清单。
(我在这里只给出简短的介绍,不包含详细信息)
Java 核心及其他
学习过程持续 2 至 6 个月,具体取决于学生之前的经验和他们准备投入学习的时间。
- Java 语法(什么是对象、类和方法;原始类型和字符串;基本运算符、条件、循环语句和数组)
- 面向对象编程。主要原则。
- Java 集合
- Java 异常
- 输入/输出流
- Java算法和数据结构
- Java多线程
- Java 模式
- 单元测试
- Lambda 表达式
- JSON、RMI、HttpUrlConnection、套接字中的序列化
学习一些软件开发人员工作中经常用到的非 Java 技术
每项技术持续几天到两周的时间。
- Git 和 bitbucket/github(你可以使用例如 learngitbranching 快速学习它,并在以后将其用于你的项目)
- JavaScript(每个开发人员都应该了解一点这种语言)
- SQL,即结构化查询语言,用于编程,用于管理关系数据库管理系统 (RDBMS) 中的数据,或用于关系数据流管理系统 (RDSMS) 中的流处理。SQL 在初学者阶段很容易学习。
掌握你的知识
完成第二步后,你已经掌握了很多知识,接下来该考虑做什么了。如果你打算在行业巨头公司工作,可以学习 Android 移动开发,或者学习 Spring 和 Hibernate 等一系列企业级技术。然而,这些技术自学起来比较困难。所以,你最好找个导师,参加一些课程或实习。还有一点:现在是编写你自己项目的好时机。它可以是一个游戏或 Android 应用程序,或者其他可以添加到简历中的东西。
……这只是一个大概的方法。你可以自由地创建自己的待办事项清单并坚持执行。相信我,勾选清单的感觉很棒。我很高兴一些现代在线课程将激励机制和游戏化融入到教学过程中。
例如,在 CodeGym Java 课程中,除了训练讲座和大量任务外,还有激励讲座。你需要不断提升自己的角色,逐级晋级。每个级别包含多个讲座和许多任务。此外,解决问题还能获得积分——这是一种暗物质,你需要用它开启新的讲座并晋级到下一个级别。
CodeCademy 的成就和徽章与课程完美融合。此外,这些课程的界面也非常友好。
Codewars 是一个适合中高级 Java 学习者的网站,你可以在这里解决有趣的问题和谜题。你的起点是 8 级,目标是提升到最高级别 1 级。这能激励你不断进步。
保持平衡。知道如何正确堆叠
判断自己是缺乏足够的知识和技能来解决问题,还是只是太懒了,这一点非常重要。在学习的初期,最好早点放弃。相反,随着编程技能的提升,最好在解决难题的过程中“忍耐”更久一些。
如何解决编码问题。避免无意义堆叠的大致步骤。
1 – 首先,您需要了解情况。
1.1 - 如果你读了几遍仍然不明白,请转到步骤
1.2 - 如果你得到了条件,不要急着写代码。在你的代码中构建一个近似解的算法。算法出现了吗?
1.2.1 – 如果没有,请转到步骤 2。
1.2.2 – 如果是,开始编码。
1.3 - 如果某些功能无法正常工作,请逐步使用 IDE 调试器并尝试了解哪些功能出现问题。
1.4 - 还是不行?分析算法,尝试修改。
1.4.1 - 如果您不知道该怎么做,毕竟调试器的指令没有告诉您任何内容,那么是时候转到步骤 2 了。
1.4.2 - 如果你知道该做什么,那就去做吧。
2-寻求帮助。
2.1 - 如果您已获得帮助,请返回您之前所在的位置。如果您尚未获得帮助,请暂时离开此任务,尝试解决其他任务。
请注意!如有需要,请随时寻求帮助!每个程序员都曾是初学者,每个程序员,即使是最优秀的程序员,也会使用论坛进行工作。
使用Javaranch(初学者友好论坛)或StackOverflow(最受开发人员欢迎的论坛)。
学习如何避免被其他编程学习主题分散注意力
有时你会感到不知所措,厌倦了你的日程安排。如果你是自学者,现在正是……迈出骑士一步的好时机。尝试一些与编程相关但与你的直接学习主题无关的事情。可以尝试什么呢?
- 您可能会开始考虑自己的项目,特别是如果您已经了解 Java Core。
- 如果您没有信心,请尝试按照分步说明来完成项目:
- YouTube 上有很多合适的视频。例如,制作井字游戏——Java 初学者教程之类的。
- CodeGym 上有一个精彩且免费的游戏专区。在这里,你可以创建一些经典电子游戏的专属版本。目前有扫雷、2048 和贪吃蛇。每个游戏都包含二十多个子任务和分步说明。你可以先获得子任务和提示,然后编写代码。完成后,CodeGym 系统会自动检查你的代码。如果代码运行正常,就可以进入下一步。
- Robocode。这是一款学习用 Java 开发机器人战斗坦克的游戏。这是目前仍在运营的首批 Java 游戏项目之一,非常引人入胜。
- 尝试一些其他技术或主题。如果你厌倦了 Java,也许现在正是学习 JavaScript 或 SQL 基础知识的好时机。正如我上面所写,如果你打算成为一名软件开发者,你应该了解它们。或者,或许可以学习一些有趣的 Java 库或框架,为你的下一个项目做准备。如果你对移动/独立游戏开发感兴趣,libGDX或许是个不错的选择。
结论
记住:每个学习者都会时不时地感到无聊和失去动力。虽然克服它的方法有很多,但不要停下来,为了未来的职业继续学习。
文章来源:https://dev.to/selawsky/how-to-learn-java-and-not-getting-bored-j3d