当人们尝试学习 JavaScript , 或者其他编程技术的时候,常常会遇到同样的挑战:

  • 有些概念容易混淆,特别是当你学习过其他语言的时候。
  • 很难找到学习的时间(有时候是动力)。
  • 一旦当你理解了一些东西的时候,却很容易再一次忘记。
  • 可以使用的工具甚多且经常变化,所以不知道从哪里开始入手。

幸运的是,这些挑战最终都可以被战胜。在这篇文章里,我将介绍 6 个思维技巧来帮你更快的学习 JavaScript ,让你成为一个更快乐更多产的程序员。

1.不要让将来的决定阻止你进步

对于很多学习 JavaScript 的人来说,他们问的第一个问题是选用哪个框架。但是如果你还不熟悉原生的 JavaScript ,那这就是个不该问的问题。你会花费你全部的时间去查询不同的框架并且不会取得任何进展。

走出这个让人犹豫不决的陷阱的一个方法是要有一个学习的路线图。比如,要想成为一个前端开发人员,你的路线图大概是这样的:

把学习计划进一步拆分,你可以只用 HTML 和 CSS 做一个功能性的网页。了解其中的具体步骤,你会很容易知道现在需要关注的东西,因此不会浪费时间担心将来要学习的内容。

如果觉得此文章有用的话,更多详情请访问 learning road map for becoming a front-end developer 。

2.不要让自信把你骗进遗忘陷阱

在学习 JavaScript 的过程中,快速理解某个概念可能是最不利于你进步的一件事。请允许我解释一下。

当你理解一些东西并且觉得它言之有理的时候,你会倾向于立即学习下面的内容。可能你会理解下面的内容并继续向下学习。但是很快,你会发现你已经忘记了之前所学到的一些东西,因此你需要重新复习。你很快的瞥一眼之前的概念更新下记忆然后继续往后学习。但是,这次你又忘记了其他的一些东西。你会不停的反反复复直到你发现你完全的迷失了方向。你会感到气馁,休息一下后,你准备重新开始,却发现已经忘记了所有的东西。

幸运的是只需要简单的两步就可以解决这个问题:

1. 限制一次学习的内容总量

2. 认真的练习——写代码

当你学习一些新的概念的时候,一定要多尝试,多应用,多熟悉,甚至将它与其他的概念相结合。在你学习的示例中写代码非常重要,因为这有助于你深刻理解它。同时,限制一次学习的内容总量有助于你记住这些内容,因为记住较少的内容会更容易。

这个过程可能会比仅仅通读一遍就学习其它内容要花费更多的时间,然而实际上它需要的时间更少,因为你不需要来回反复。经过多次尝试,我终于掌握了这种方法。

3. 用正确的心态进行实战练习

很多人认为练习是件重复而又无趣的事情,所以他们常常会跳过练习试着走捷径。如果你试图在 JavaScript 的练习上走捷径,实际上你需要更长的时间来学习它。但是,怎样才能让练习变得更有趣,让你愿意去做练习呢?

尝试转换一下思路:

如果你学了一个新的 JavaScript 的概念却无法尝试,你会有什么样的感受?对于我个人而言,我会觉得懊恼,特别是在我花费了时间去理解它之后。就像一个孩子有了一件新的玩具却不能玩一样。

当你学一些新的 JavaScript 的知识时,试着像对待一个新玩具、一辆新车、一双新鞋或者其它你有兴趣尝试的东西一样。像玩一样练习,而不是像工作一样练习。用新技能做一些很棒的事情。给自己一些惊喜同时展示给你的朋友。

保持娱乐的心态,你会学的更快,记住的时间更长,而且你会觉得更有趣。

4.用Facebook的窍门找时间编程

人们常见的问题之一是没有时间去编程。但是这些人却可以在 Facebook ,  YouTube ,  Wikipedia 或者 Reddit 这样的网站上花费数小时的时间。不管你是不是也有这样的情况,其中都有值得学习的地方。

很多时候我只是想看一小会儿的 Facebook ,结果我却在那儿停留了好几个小时。为什么会这样呢?这恰恰是因为我并没有打算在那儿停留太长时间。万事开头难,我发现把目标降低会更容易投入。如果有人问我是否准备在 Facebook 上花费几个小时,我会说不,因为我没有那些时间。然而,我更愿意接受快速查看某件事情的想法,我就是这样被吸引进去的。

好消息是你可以用同样的心理优势去学习编程。不要试图花几个小时去编程,因为你找不到这样的时间。告诉自己只写三分钟的代码,你就不会再为找时间而挣扎了。

5. 思考地越慢,学地越快

这句话听上去有些违背常理,所以我会用一个故事来解释。

我的一个朋友曾经对 JavaScript 的某些特性感到困惑。我让他和我一起过一遍他知道的内容然后解释一下哪一部分让人困惑。当他检查代码片段的时候,我注意到他有些急躁。

“等等!”我说。“慢一点,跟我解释下这里的每一步。”

我的朋友接着向我解释了这段代码的作用。

我又一次打断他,“你还是太急了。再试一次,但是这一次,我需要你逐字逐句的跟我解释每行代码并且告诉我代码的作用。”

这一次,我的朋友能够更好的解释代码中发生的事情。其中的关键是他有花时间去逐步检查每行代码而不是企图一下子理解全部。

在这样的情况下,思考地越慢实际上能让你学地更快。

6.先用简单语言编写复杂代码

如果一段代码太复杂或者陌生,就先用简单语言写出来。这样,你可以在实际编写代码前弄清楚你想要代码做什么。这种方法有两个好处:

1.代码写起来会更容易更快因为你不需要总是停下来去思考它该怎样运行。

2.可以提前捕获 bug 因为你很清楚代码的作用。

结论

我们已经了解了快速学习 JavaScript 的几个方法,你也可以运用这些技巧去学习其他的技能。下面概括一下我们讲的内容:

  • 不要担心将来的决定,要潜心学习。
  • 用对待玩具的心态对待新技能会让练习更加有趣。
  • 就像玩 Facebook , YouTube 或者 Wikipedia 那样,用小目标的方法找时间编程。
  • 慢下来,步子小一点,你会学的更快。

你是怎样学习的呢?你有没有其他的一些秘诀或者技巧是我没有提到的呢?或者你觉得这些都是瞎扯,而进步的唯一方法是一天投入12个小时。无论如何,我期待你们的评论。

本文由 伯乐在线 - cathyhu916 翻译,叙帝利 校稿。未经许可,禁止转载!
英文出处:Yaphi Berhanu 。

长按扫码,关注我的公众号额

快速学习JS的思考方法、有用相关推荐

  1. 零基础快速学习Java技术的方法整理

    在学习java技术这条道路上,有很多都是零基础学员,他们对于java的学习有着很多的不解,不知怎么学习也不知道如何下手,其实Java编程涉及到的知识点还是非常多的,我们需要制定java学习路线图这样才 ...

  2. 学习JS代码firstChild方法引用问题记录

    在跟着视频学习JS代码的路上,今天犯的错误折磨我很久 首先看正确的代码 //当鼠标点击单价单元格时进行价格编辑 function editPrice(){     if(event && ...

  3. 快速学习javascript 整体架构方法

    思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却又极其有效,是一种革命性的思维工具.思维导图运用图文并重的技巧,把各级主题的关系用相互隶属与相关的层级图表现出来,把主题关键词与图像 ...

  4. 如何快速学习:掌握任何技能的 10 种行之有效的方法

    在本文中,我们将介绍掌握任何技能的十种经过验证的方法.您将学习如何快速学习.促进个人成长并在人群中脱颖而出,而无需将每一分钟都花在阅读教科书上. 快速学习的一项关键技能 如果我告诉你有一种技能可以使任 ...

  5. 低俗英语一百句----快速学习英语的一个好方法

    低俗英语一百句----快速学习英语的一个好方法 1.I asked God for a bike, but I know God doesn't work that way. So I stole a ...

  6. 自学python方法-总算懂得快速学习python的方法

    随着Python的进一步发展,越来越多的现成的Python的机器学习的算法已经发布出来.为了可以更好地运用这些机器学习的算法,我们有必要对Python有个初步的了解.以下是小编为你整理的快速学习pyt ...

  7. 电脑学习方法_怎样快速学习和熟悉电脑知识?|从小白到大神的快捷方法

    本文面向刚刚接触电脑互联网的小白朋友们,或者在工作中经常用到电脑,但是水平很菜的菜鸟. 回想当年,毛毛虫起初接触电脑的时候,总是前怕狼后怕虎,点个鼠标,都担心会不会点错把电脑点死了. 多年来一直以为只 ...

  8. 快速学习COSMIC软件规模度量方法

    转载:快速学习COSMIC软件规模度量方法 – 绿盟科技技术博客 最近与某运营商开展合作项目时,客户需要我方输出一份COSMIC软件规模度量数据用于评估项目预算,由于此前未接触过COSMIC软件规模度 ...

  9. 华院论文 | 面向数据驱动深度学习的快速分布鲁棒优化方法

    [摘要]我们介绍了一种可扩展且快速的方法来解决分布鲁棒优化 (DRO).DRO 在训练数据与测试数据分布不一致时(以下统称"不确定集")上优于经验风险.然而,由于大规模数据带来的计 ...

最新文章

  1. Ansible06-管理roles
  2. 【Pytorch】运用英伟达DALI加速技巧可使PyTorch运算速度快4倍
  3. move语句java_Oracle中的move命令
  4. oracle中noguarantee,关于undo guarantee
  5. 送计算机教授教师节礼物,教师节送教授什么礼物好
  6. opencv2.2.0源代码(include文件)分析
  7. CSS3动画之一:Transitions功能
  8. Introduction to Web MIDI
  9. 如何在JavaScript中将浮点数转换为整数?
  10. 他是中国最牛X的黑客,曾让6个国家束手无策,却被怀疑是精神病
  11. 新站怎么提高自己网站的收录
  12. 服务器网站内容被阻止,关于安全狗提示“您请求的页面包含一些不合理的内容,已被网站管理员设置拦截”的解决方法...
  13. 企业内部控制管理与全面风险管理体系建设知识问答
  14. SDN网络中控制器RYU的安装
  15. Beego框架logs模块
  16. 机器学习——XGboost模型
  17. 【OR】约束优化:对偶理论(2)
  18. 构建B/S模式的WebGIS 系统开发框架知多少
  19. 毕业设计(源代码+论文+PPT)
  20. 我与python约个会:31.企业级开发进阶3.1:发送电子邮件

热门文章

  1. 安卓模拟器打开开发者选项
  2. Kali Linux蓝牙连接问题解决
  3. 音视频基础:音频(PCM和AAC)
  4. 如何安装windows操作系统?(win10、Window11、win7、win8)
  5. 计算机毕业设计之java+ssm供应链管理信息系统
  6. 海大叔侃币:作为一个炒币者,分享三点经验
  7. js 导出excel,设置下载的标题
  8. matlab画图双坐标轴和多坐标轴代码
  9. 尝试一下LLJ大佬的理论AC大法
  10. 线性代数的视角理解LSR(least square regression)的参数评估算法本质