快速学习JavaScript的6个思维技巧


Posted in Javascript onOctober 13, 2015

我们在学习JavaScript,或其他任何编码技能的时候,往往是因为这些拦路虎而裹足不前:

  • 有些概念可能会造成混淆,尤其当你是从其他语言转过来的时候。
  • 找不到时间(有时是动力)学习。
  • 很容易忘记已经理解了的东西。
  • 工具多又在不断变化,所以不知道从哪里开始。

幸运的是,这些拦路虎是可以被识别,并消灭的。在这篇文章中,我将介绍六个思维技巧来帮助你更快地学习JavaScript,并成为一个更快乐、更富有成效的程序员。

1.不要让未来的决策阻止你现在前进的方向

很多人学习JavaScript,问的第一个问题往往是“我应该使用哪个框架?”。但是,如果你还没有掌握最最基础的JavaScript,那这显然是一个错误的问题。你将你所有的时间用来研究不同的框架,于是,你开始停滞不前。

帮助摆脱这种陷阱的方法之一是画一个你需要学习的路线图。例如,要想成为一个前端开发者,你的路线图可能是这样的:

快速学习JavaScript的6个思维技巧

进一步分解的话,你可以做一个只有HTML和CSS的功能性web页面。然后像这样一步步列出每个步骤,那么对于现在应该专注于做什么,就一目了然了。你也不会浪费时间去担心应该以后操心的事情。

如果你觉得这种路线图很有用,那么可以看看我以前写的《learning road map for becoming a front-end developer》,里面介绍得很详细。(注:对于学习JavaScript的路线,你也可以参考学习《学习JavaScript编程语言的8张思维导图分享》这篇文章)

2.不要让自信诱骗你忘事

快速了解一个概念,也许是学习JavaScript的道路上最影响你进步的事情之一。下面请允许我解释一下。

当你读到某些东西,你觉得的确如此的,那么很可能就会直接跳到下一个内容。然后你觉得接下来这个内容也非常浅显易懂,于是继续往下看。但很快,你会 发现你已经忘记了前面自认为已经掌握的内容,所以只能回过头去温习。你快速地浏览了一遍,感觉又明白了,然后继续前进。但是你又发现自己忘记了别的东西。 你一直处在这个循环中,直到最终迷失了自己。你不由地气馁,想着那先休息一下吧,然而当你休息完了再回来的时候,你发现你已经忘记了所有的内容。

解决这个问题,也很简单,只需要两步:

  1. 限制一次学习的量。
  2. 实践——实际编写代码。

当你去学习一个新概念的时候,一定要试用它,摆弄它,熟悉它,甚至将它和其他概念结合起来。而且实际输出到示例代码中非常重要,因为这能帮助你消化吸收它。此外,限制一次学习的量,有助于记住资料,道理也很简单,东西越少越好记。

虽然这种学习进程会让你感觉所需的时间更多,但实际上恰恰相反,因为你不再需要走那么多的回头路。我也是经过了很多次惨不忍睹的教训才明白了这个技巧。

3.用正确的心态去做练习

很多人认为反复的练习特别无聊,所以他们通常会选择跳过或尝试走捷径。如果你快进JavaScript练习,那么最终反而需要更多的学习时间。试着让练习变得令人感兴趣,这样是不是就不会那么抗拒呢?

试着转变心态:

如果让你学习一个新的JavaScript概念,却不能试试,会怎么样?你是什么感觉?从我个人而言,我会特别懊恼。这就像一个孩子得到一个新的玩具,却不能玩一样。

当你学习JavaScript中一些新内容的时候,试着将它当作新玩具,新车,新鞋,或者其他任何你有兴趣尝试的东西。然后不要将练习当作工作,要将练习当作是玩耍。用新技能去尝试一些很酷的东西。让你自己都不由的惊叹。然后显摆给你的朋友看。

用一种游戏的心态,你会学得更快,记得更久,拥有更多的乐趣。

4.写代码的时间魔法

在学习JavaScript中最常见的问题是,找不到时间写代码。但是,与此同时,却有大把大把的时间浏览各种网站,如Facebook,YouTube,维基百科和Reddit等。

我有好几次,一开始只是想打开Facebook,看一小会,然后不知不觉就发现已经看了几个小时。这是怎么发生的呢?或许正是因为我并不打算看很长 时间。万事开头难,一旦开了头,后面陷进去就变得容易多了。但是如果有人问我,是否愿意花时间在Facebook上,我会坚决地说不,因为我本身时间就不 够用。然而,只允许看一会会时间往往更容易接受,然后深陷其中。

好消息是,你也可以利用同样的心理来学习写代码。一开始不要想着要编码几小时,因为你永远找不到这么多的时间。就告诉自己你要去写3分钟的代码。这样你永远也不用愁挤不出时间了。

5.思考得更慢,学得更快

这听起来貌似有悖常理,下面我会用一个小故事解释。

我的一个朋友曾经对JavaScript的某个功能感到困惑。于是,我让他详细地说一遍哪些是他知道的,然后给他解释他感到困惑的那部分。不过,当他检查代码片段的时候,我注意到有一段代码,他说得非常仓促。

“等一下!”我说, “慢点讲,每一步都详细地说一下。”

我的朋友继续给我做代码发生了什么的全面总结。

我只好再次叫住他。 “你还是太仓促了。再试一次,但这次,我希望你能从字面上去检查每一行代码,告诉每一行的代码都发生了什么。”

这次,我的朋友终于能够很好地解释代码中正在发生什么。问题的关键是,他终于可以一步一步地检查了代码片段,而不是囫囵吞枣想要一次性理解所有代码。

在类似于这样的情况下,思考得更慢实际上能让你学得更快。

6.首先用简明的语言来写复杂的代码

如果碰到一段复杂的或你不熟悉的代码,那么先用通俗易懂的语言写出来。这样一来,你就可以在写代码之前明确地知道你想要代码做什么。这么做有两个好处:

  • 代码更易写,因为你不需要总是停下来想,你想要它表现什么。
  • 在bug发生之前就能捕捉到,因为你对代码应该做什么有一个明确的概念。

结论

我们已经讨论了一堆如何更快地学习JavaScript的方法,而且你也可以将这些技巧应用到其他的技能上。下面来回顾一下:

  • 不要担心以后会做什么决策,先好好深入学习。
  • 将新技能当作玩具一般快乐地练习。
  • 以小承诺的方式找时间来写代码,就像你一开始安慰自己只逛一小会时间网站。
  • 慢下来,步子迈的越小,学得越快。

对了,你是怎么学习的?你有什么好的技巧吗?欢迎大家进行讨论。

Javascript 相关文章推荐
javascript客户端解决方案 缓存提供程序
Jul 14 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
Apr 18 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
May 24 Javascript
json字符串之间的相互转换示例代码
Aug 21 Javascript
20条学习javascript的编程规范的建议
Nov 28 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
Mar 04 Javascript
javascript断点调试心得分享
Apr 23 Javascript
jquery判断iPhone、Android设备类型
Sep 14 Javascript
网页中右键功能的实现方法之contextMenu的使用
Feb 20 Javascript
刷新页面后让控制台的js代码继续执行
Sep 20 Javascript
Vue 实现一个命令式弹窗组件功能
Sep 25 Javascript
JS加载解析Markdown文档过程详解
May 19 Javascript
有关json_decode乱码及NULL的问题
Oct 13 #Javascript
JS实现左右拖动改变内容显示区域大小的方法
Oct 13 #Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 #Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
Oct 13 #Javascript
JS实现的简洁二级导航菜单雏形效果
Oct 13 #Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
Oct 13 #Javascript
js验证真实姓名与身份证号是否匹配
Oct 13 #Javascript
You might like
php设计模式 Delegation(委托模式)
2011/06/26 PHP
php图片缩放实现方法
2014/02/20 PHP
JQuery select标签操作代码段
2010/05/16 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
VUE 使用中踩过的坑
2018/02/08 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
python抽取指定url页面的title方法
2018/05/11 Python
python同步两个文件夹下的内容
2019/08/29 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
如何基于Python批量下载音乐
2019/11/11 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
python自动化发送邮件实例讲解
2021/01/04 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
《寓言两则》教学反思
2014/02/27 职场文书
计划生育宣传标语
2014/06/21 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
浅谈MySql整型索引和字符串索引失效或隐式转换问题
2021/11/20 MySQL
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js