学习 JavaScript 途中发生的趣事

Avatar of Jason Rodriguez
Jason Rodriguez 发布

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

大约在去年这个时候,我写了一篇关于 JavaScript 学习现状的文章。在那篇文章中,你会发现我雄心勃勃地计划学习 JavaScript——甚至还附上了一个我用来跟踪进度的 CodePen 收藏集 的链接,并且还收到了几十条鼓励我的评论。

像大多数人一样,我当时雄心壮志。新的一年开始了,我兴奋地准备着手一个长期以来的项目。这就像是我版的减肥计划(我也确实需要减肥)。但是,如果你点击那个 CodePen 收藏集的链接,你会发现里面什么也没有。如果你翻遍我的硬盘或云存储,你也不会发现任何 JavaScript 文件或项目。

过去的一年里,我没有在其中一个主要目标上取得任何进展。那么,到底发生了什么事呢?

一个古老的故事

互联网上充斥着类似的推文和博文。收件箱里满是关于新年计划的简讯,YouTube 上也到处都是教人们如何度过最好一年的人。但很少有人能坚持完成自己的目标。在设计和开发领域,这种情况可能更为普遍,因为定期涌现出大量的新技术、语言、库和工具。

这些故事都遵循着类似的模式

  1. 设定主要目标
  2. 告诉朋友(或无数 CSS-Tricks 访客)
  3. 分心、不知所措、失去兴趣,或三者兼而有之
  4. 一段时间后完全忘记目标
  5. 向朋友道歉并为自己找借口(或者,再次强调,向无数 CSS-Tricks 访客道歉)

根据我的经验,问题不在于设定目标或告诉每个人你的目标,而在于上面的第三步。至少对我来说,当目标偏离轨道时,主要是因为三个问题:分心、压力和缺乏兴趣。除了不可预见的人生变故之外,这三个问题是我们难以克服的所有未实现目标的罪魁祸首。

在思考今年的目标时,我决定首先分析一下为什么我无法实现去年设定的那个主要目标。所以,让我们深入探讨这三个问题,看看是否有办法防止它们再次发生。

分心

分心似乎是这里最大的问题。我们每个人都有很多事情要做。在工作和家庭责任、其他爱好以及与朋友聚会之间,很难挤出时间来进行新的项目。尽管所有这些其他兴趣和责任都是必要的,但当涉及到我们的目标时,它们却成为了干扰。

设定目标的意义在于腾出时间去努力实现它。这意味着将目标优先于其他事情。对我来说,我发现自己让生活中所有这些干扰因素都渗入了我的日常生活。在工作时不吃午饭,而不是利用这段时间学习 JavaScript 书籍中的章节,这很容易做到。孩子们睡后,我很容易沉迷于最新的 Netflix 剧集。我没有把学习 JavaScript 放在首位,所以到年底时我什么成果都没有。

克服分心

关键是要屏蔽这些干扰因素,说起来容易做起来难。我们不能简单地无视家庭和事业的需求,但我们需要给自己时间专注于工作,不受干扰。对我来说,我越来越相信解决方案是时间块安排。

时间块安排顾名思义:你将日历上的特定时间段分配给特定的任务。时间块安排可以让你优先处理重要的事情。它不会强迫你坐下来,打开一本书,或者开始编码,但它会给你时间去做这些事情。
网上有很多关于不同时间块安排方法的文章,其中一些列在下面

对我来说,我将在每周的特定时间段内集中精力学习 2019 年的 JavaScript。我试图现实地评估自己可以投入多少时间,并将其与其他义务相权衡。然后,我把这些时间段安排到我们共享的家庭日历上,让每个人都清楚我在优先处理什么。更重要的是,我明确表示这段时间是用来专注的,其他的干扰因素都应该放在门外。

屏蔽手机和电脑上一些较小但同样重要的干扰因素也很有帮助。关闭与任务无关的浏览器选项卡、静音通知以及清理桌面上其他分散注意力的物品,应该成为你坐下来开始处理任务时的常规操作。在 Twitter、Hacker News 甚至 CSS-Tricks 上随意浏览很容易,并且你会说服自己这是时间利用得当(尽管最后一个通常是),但这些时间加起来,并不总是像你想象的那样能让你学习或提高技能。屏蔽这些干扰因素,专注于你想要完成的事情,是真正实现目标的好方法。

压力

去年的文章概述了一个充满各种有趣文章、书籍、播客和课程的景象。学习的内容并不少,资源也足够让任何人忙上一年不止。而且,在 JavaScript 方面,似乎总有一些新的技术或框架需要学习。

再加上学习 JavaScript 时需要了解的所有辅助主题,你最终会得到那些 Chris 之前收集过 的令人不知所措的开发者路线图。

我不在乎你有多聪明,这绝对令人望而生畏。在网络上感到不知所措是很常见的。你认为初学者会是什么感觉?再加上上一节中提到的所有责任和干扰因素,你就会得到一个导致倦怠的致命配方。

我最初打算先学习 Marijn Haverbeke 的 《Eloquent JavaScript》,作为学习这门语言的第一步。但我同时也提到了我周围的所有播客、YouTube 频道和新闻通讯。我的目的是通过沉浸式学习,但它很快导致我感到压力和不知所措。当我感到不知所措时,我很快就让所有这些干扰因素转移了我的注意力,让我无法学习 JavaScript。

克服压力

就像处理分心一样,我认为应对压力的关键是专注于一两件事,并摒弃其他所有事情。与其完全沉浸在 JavaScript 世界中,我将只专注于这本书,学习完之后再寻找其他资源。我将有意忽略 JavaScript 世界的大部分内容,以便找到自己的方向,只有在我感觉自己想走这条路的时候,才会让自己承受开发者路线图带来的压力。

失去兴趣

翻阅任何编程书籍(至少对于初学者来说)都会让人昏昏欲睡。代码看起来过于复杂,就像数学课本一样。我不知道你是什么感觉,但我讨厌数学课,而且我发现很难让自己兴奋起来,把空闲时间投入到感觉像是回到高中时代的事情中。

但我知道学习 JavaScript(以及编程,一般来说)是一项有价值的追求,它将让我能够完成我一直想完成但没有能力完成的项目。那么,我该如何对这项乍一看似乎很无聊的任务产生兴趣呢?

克服学习兴趣下降

我认为关键在于将我学到的东西与我感兴趣的某个主题联系起来。

我一直对数据可视化很感兴趣。像Flowing Data这样的博客非常吸引人,多年来我一直希望能够自己创建数据可视化。并且我知道 JavaScript 越来越成为创建这些图形的可行方法。像D3.jsp5.js这样的工具是一流的框架,可以创建令人惊叹的可视化效果——那么为什么不学习这些工具使用的底层语言呢?

我克服学习兴趣下降的计划是朝着我想构建的项目努力。学习所有基础知识,克服困难,然后利用沿途学到的概念来理解更高级的工具,例如 D3.js。

只要你能将你的学习与你感兴趣的领域结合起来,你更有可能取得成功。我认为这正是第一次学习时缺少的东西,因此我在学习 JavaScript 时设定了一些目标,这些目标会让我保持足够的兴趣,从而学习我需要学习的内容。

这是一条艰难的道路

学习很少是容易的。但是,有时,当它最艰难的时候,它才会带来最大的回报。

我相信,我们越能发现自己的心理障碍并将其分解,我们就越有可能实现自己的目标。对我来说,我的心理障碍是分心、压力和兴趣下降。这三者共同阻止我实现目标,但我正在制定计划来克服所有这三者。你的障碍可能不同,但你可能也有应对它们的方法。

我很想听听大家在学习新技能时是如何克服自己挑战的。在下面发表评论,告诉我你的故事。分享它可能会帮助我和其他人最终实现我们一直想要的东西,无论是学习 JavaScript、深入研究最新的框架,还是参加我们一直推迟的马拉松。