更快学习 JavaScript 的 6 个思维技巧
更快学习 JavaScript 的 6 个思维技巧
我们在学习JavaScript,或其他任何编码技能的时候,往往是因为这些拦路虎而裹足不前:
有些概念可能会造成混淆,尤其当你是从其他语言转过来的时候。
找不到时间(有时是动力)学习。
很容易忘记已经理解了的东西。
工具多又在不断变化,所以不知道从哪里开始。
幸运的是,这些拦路虎是可以被识别,并消灭的。在这篇文章中,我将介绍六个思维技巧来帮助你更快地学习JavaScript,并成为一个更快乐、更富有成效的程序员。
1.不要让未来的决策阻止你现在前进的方向
很多人学习JavaScript,问的第一个问题往往是“我应该使用哪个框架?”。但是,如果你还没有掌握最最基础的JavaScript,那这显然是一个错误的问题。你将你所有的时间用来研究不同的框架,于是,你开始停滞不前。
帮助摆脱这种陷阱的方法之一是画一个你需要学习的路线图。例如,要想成为一个前端开发者,你的路线图可能是这样的:
进一步分解的话,你可以做一个只有HTML和CSS的功能性web页面。然后像这样一步步列出每个步骤,那么对于现在应该专注于做什么,就一目了然了。你也不会浪费时间去担心应该以后操心的事情。
如果你觉得这种路线图很有用,那么可以看看我以前写的《learning road map for becoming a front-end developer》,里面介绍得很详细。(注:对于学习JavaScript的路线,你也可以参考学习Javascript的8张思维导图这篇文章)
2.不要让自信诱骗你忘事
快速了解一个概念,也许是学习JavaScript的道路上最影响你进步的事情之一。下面请允许我解释一下。
当你读到某些东西,你觉得的确如此的,那么很可能就会直接跳到下一个内容。然后你觉得接下来这个内容也非常浅显易懂,于是继续往下看。但很快,你会发现你已经忘记了前面自认为已经掌握的内容,所以只能回过头去温习。你快速地浏览了一遍,感觉又明白了,然后继续前进。但是你又发现自己忘记了别的东西。你一直处在这个循环中,直到最终迷失了自己。你不由地气馁,想着那先休息一下吧,然而当你休息完了再回来的时候,你发现你已经忘记了所有的内容。
解决这个问题,也很简单,只需要两步:
限制一次学习的量。
实践——实际编写代码。
当你去学习一个新概念的时候,一定要试用它,摆弄它,熟悉它,甚至将它和其他概念结合起来。而且实际输出到示例代码中非常重要,因为这能帮助你消化吸收它。此外,限制一次学习的量,有助于记住资料,道理也很简单,东西越少越好记。
虽然这种学习进程会让你感觉所需的时间更多,但实际上恰恰相反,因为你不再需要走那么多的回头路。我也是经过了很多次惨不忍睹的教训才明白了这个技巧。
3.用正确的心态去做练习
很多人认为反复的练习特别无聊,所以他们通常会选择跳过或尝试走捷径。如果你快进JavaScript练习,那么最终反而需要更多的学习时间。试着让练习变得令人感兴趣,这样是不是就不会那么抗拒呢?
试着转变心态:
如果让你学习一个新的JavaScript概念,却不能试试,会怎么样?你是什么感觉?从我个人而言,我会特别懊恼。这就像一个孩子得到一个新的玩具,却不能玩一样。
当你学习JavaScript中一些新内容的时候,试着将它当作新玩具,新车,新鞋,或者其他任何你有兴趣尝试的东西。然后不要将练习当作工作,要将练习当作是玩耍。用新技能去尝试一些很酷的东西。让你自己都不由的惊叹。然后显摆给你的朋友看。
用一种游戏的心态,你会学得更快,记得更久,拥有更多的乐趣。
4.写代码的时间魔法
在学习JavaScript中最常见的问题是,找不到时间写代码。但是,与此同时,却有大把大把的时间浏览各种网站,如Facebook,YouTube,维基百科和Reddit等。
我有好几次,一开始只是想打开Facebook,看一小会,然后不知不觉就发现已经看了几个小时。这是怎么发生的呢?或许正是因为我并不打算看很长时间。万事开头难,一旦开了头,后面陷进去就变得容易多了。但是如果有人问我,是否愿意花时间在Facebook上,我会坚决地说不,因为我本身时间就不够用。然而,只允许看一会会时间往往更容易接受,然后深陷其中。
好消息是,你也可以利用同样的心理来学习写代码。一开始不要想着要编码几小时,因为你永远找不到这么多的时间。就告诉自己你要去写3分钟的代码。这样你永远也不用愁挤不出时间了。
5.思考得更慢,学得更快
这听起来貌似有悖常理,下面我会用一个小故事解释。
我的一个朋友曾经对JavaScript的某个功能感到困惑。于是,我让他详细地说一遍哪些是他知道的,然后给他解释他感到困惑的那部分。不过,当他检查代码片段的时候,我注意到有一段代码,他说得非常仓促。
“等一下!”我说, “慢点讲,每一步都详细地说一下。”
我的朋友继续给我做代码发生了什么的全面总结。
我只好再次叫住他。 “你还是太仓促了。再试一次,但这次,我希望你能从字面上去检查每一行代码,告诉每一行的代码都发生了什么。”
这次,我的朋友终于能够很好地解释代码中正在发生什么。问题的关键是,他终于可以一步一步地检查了代码片段,而不是囫囵吞枣想要一次性理解所有代码。
在类似于这样的情况下,思考得更慢实际上能让你学得更快。
6.首先用简明的语言来写复杂的代码
如果碰到一段复杂的或你不熟悉的代码,那么先用通俗易懂的语言写出来。这样一来,你就可以在写代码之前明确地知道你想要代码做什么。这么做有两个好处:
代码更易写,因为你不需要总是停下来想,你想要它表现什么。
在bug发生之前就能捕捉到,因为你对代码应该做什么有一个明确的概念。
结论
我们已经讨论了一堆如何更快地学习JavaScript的方法,而且你也可以将这些技巧应用到其他的技能上。下面来回顾一下:
不要担心以后会做什么决策,先好好深入学习。
将新技能当作玩具一般快乐地练习。
以小承诺的方式找时间来写代码,就像你一开始安慰自己只逛一小会时间网站。
慢下来,步子迈的越小,学得越快。
对了,你是怎么学习的?你有什么好的技巧吗?或者,你认为我说的全是一派胡言,唯一的学习途径就是一天12小时地投入进去?无论是什么,欢迎不吝点评。
更快学习 JavaScript 的 6 个思维技巧的更多相关文章
- OneAPM大讲堂 | 谁更快?JavaScript 框架性能评测
文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 网页性能是一个丰富且又复杂的话题.在本帖中,我们会将讨论的范围局限在前端 JavaScript 框架上,探究相对于另外一种框架而言 ...
- 学习Javascript的8张思维导图
分别归类为: javascript变量 javascript运算符 javascript数组 javascript流程语句 javascript字符串函数 javascript函数基础 javascr ...
- TKE 体验升级:更快上手 K8s 的24个小技巧
作者 王孝威,腾讯云容器产品经理,热衷于为客户提供高效的 Kubernetes 使用方式,为客户极致降本增效服务. 背景 "功能"解决是产品有或者没有一个能力的问题,有了" ...
- CSS vs. JS Animation: 哪个更快
CSS vs. JS Animation: 哪个更快? CSS vs. JS Animation: 哪个更快? 基于JavaScript的动画竟然已经默默地比CSS的transition动画快了?而且 ...
- CSS3动画 相比JS Animation 哪个更快?
CSS vs. JS Animation: 哪个更快? 基于JavaScript的动画竟然已经默默地比CSS的transition动画快了?而且,Adobe和 Google竟然一直在发布可以媲美原生应 ...
- EdgeFormer: 向视觉 Transformer 学习,构建一个比 MobileViT 更好更快的卷积网络
前言 本文主要探究了轻量模型的设计.通过使用 Vision Transformer 的优势来改进卷积网络,从而获得更好的性能. 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟 ...
- 【转载】跟着9张思维导图学习JavaScript
原文:跟着9张思维导图学习JavaScript 学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将 po 出我收集的 9 张 JavaScript相关的思维导图(非原创). 思维导图小ti ...
- 利用更快的r-cnn深度学习进行目标检测
此示例演示如何使用名为“更快r-cnn(具有卷积神经网络的区域)”的深度学习技术来训练对象探测器. 概述 此示例演示如何训练用于检测车辆的更快r-cnn对象探测器.更快的r-nnn [1]是r-cnn ...
- 【论文学习】YOLO9000: Better,Faster,Stronger(YOLO9000:更好,更快,更强)
原文下载:https://arxiv.org/pdf/1612.08242v1.pdf 工程代码:http://pjreddie.com/darknet/yolo/ 目录 目录 摘要 简介 BETTE ...
随机推荐
- ubuntu12.04 gitlab搭建
最近在尝试内部搭建gitlab,wiki这些工具...我使用的官网的gitlab-ce包一键安装,自己搭建的ubuntu12.04 server服务器. 分配253地址,放在办公室的小角落. 配置过程 ...
- 在VMware下正确克隆CentOS6.5的打开方式
引言 想必用VMware Workstation软件安装虚拟机,作为一个爱"折腾"的攻城狮肯定是千千万万遍的事情.无论是学习还是工作之中,我们都会遇到需要在一台物理主机上运行多台虚 ...
- swift 动画合集
本例参照objective-c的动画合集进行swift的转换,objective-c地址参照地址https://github.com/yixiangboy/IOSAnimationDemo 1.基础动 ...
- jQuery学习笔记(控件位置定位、尺寸大小的获取等)
想做一个幽灵按钮出来,效果大概如下图: 当点击按钮的时候,会有四根线条从四个方向飞入,经历从“无-有-无”的闪入过程. 那么我的设计想法是,先在HTML中定义一个按钮,然后在jQuery中设计按钮点击 ...
- Jquery day02
jquery day01回顾 语法: $("选择器") , $(dom对象) , $("<div>") 选择器: 基本:#id.ele ...
- 云时代的分布式数据库:阿里分布式数据库服务DRDS
发表于2015-07-15 21:47| 10943次阅读| 来源<程序员>杂志| 27 条评论| 作者王晶昱 <程序员>杂志数据库DRDS分布式沈询 摘要:伴随着系统性能.成 ...
- 用CMake设置Visual Studio工程中预处理器定义值
构建VS工程时预处理值是不可缺少的,如动态库的导出配置等.在通过CMake构建VS工程时,可以通过CMake命令进行定义,下面讲三种应用. 字符集:默认装填下VS工程是多字节字符集,如果需要使用Uni ...
- IE8下标签float导致的bug。
前几天帮朋友写一个页面,今天在IE8下面发现一个很奇葩的问题,给a标签添加了float:left之后a标签内的图片不显示了,去掉float:left之后就能正常显示. 代码: <!DOCTYPE ...
- 登陆+注册(三层+sql语句)
啰嗦:今天面试,遇到这个上级测试,很容易的,因为一个错误,居然最后没做出来,心累 回到家,1小时做完,我特么还加了密,我还验证,可是上天不给我一次重来的机会啊 很垃圾的,小白可以看看,大神可以轻喷 首 ...
- Eclipse 4.2 (Juno) 'Cannot create a server using the selected type' in Tomcat 7 - Stack Overflow.html
[太神奇了,真的可以呀] 原文:http://stackoverflow.com/questions/13423593/eclipse-4-2-juno-cannot-create-a-server- ...