这个20小时学习编程的方法,我没告诉你

古语云:欲速则不达。对于编程初学者而言,心态太过急躁,反而越容易丧失信心,放弃学习。格拉德维尔在《异类》一书中更是提出,一个人要成为某一行业的精英,至少需要10000小时的时间。

 

但Josh Kaufman却认为,你想掌握一项技能,只需要20小时就够了。

 

难熬的20个小时

 

Josh Kaufman这样阐述他的观点:

 

如果我们能在最初的20小时内,熬过初学阶段的不适感和挫败感,我们其实能很轻松的掌握一个全新领域的技能。

20小时有多长,每天花两个小时学习,只需要十天的时间,就可以掌握一项新技能,这一规则适用于任何技能,学习编程也不例外。

 

看似做起来一点也不难,20小时嘛,也就是不到一天的时间,但20小时想要学成某一技能的前提是,持续的高效率学习,这一点就很难办了,就算是经过刻意练习的高手,每一次进入学习状态,也只能保持1-1.5个小时专注且高效的学习状态。对于普通人来说,这更是望尘莫及。

 

这还不算刚学时,出现的不适感和挫败感的影响。20小时高效的学习,真不是一件简单的事情。

 

学习要有仪式感

 

那么,Josh Kaufman所说的“20小时定律”,我们该如何应用到学习编程的过程中呢?我们又该如何保证自己的学习过程,一直是最高效率的呢?

 

健身这一行当中,有一个很特别的派系,他们被称为“器材党”。什么是器材党呢?简单的说,就是没有健身器材就不想锻炼的一群人。跑个步,没跑步机不想跑,就算是到公园跑路,也要有耳机、手环、跑鞋、运动衣裤一系列设备。

 

 

尽管很多人都在鄙视器材党,认为太过花里胡哨,整天迷恋那些健身器材和设备,却忽略了健身的本质,其实不然。

 

当器材党们穿上运动裤、戴上耳机手环的时候,会有一种特别想跑步的冲动,他会想着如何规范的做热身运动,如何让自己更跑得更科学,效果更好。而没有任何设备的跑步者,这些意识往往比器材党们弱。

 

这些运动设备,就是跑步的仪式感,它们会给主人一种强烈的心理暗示,将主人的专注力、反应能力、运动能力提升到一个较高的水平。

 

在报纸还十分流行的年代,父辈在看报的时候,总喜欢冲一杯咖啡或者泡一杯茶,有的还喜欢躺在摇椅上,或者翘起二郎腿,悠闲地翻看着报纸。为什么看个报纸也要有这么强的仪式感?

 

 

看报纸是为了娱乐,而无论喝茶还是躺摇椅,都能强化这一目的。

 

同样,学习也需要仪式感,我们需要来强化学习的这一目的,让自己更加专注的做这一件事。

 

那么,怎么让学习变得更有仪式感呢?

 

首先,必须塑造一个利于学习的环境。

 

美国心理学家菲利普·津巴曾做过一个实验。他让24名志愿者参与为期两周的监狱生活,一半人扮演狱警,一半人扮演囚犯。实验第一天,大家一如往常,认为只是一个实验而已。但越往后,所有人都慢慢进入了状态。扮演狱警的人开始认为这些囚犯真的有罪,开始对他们使用暴力,而囚犯也开始暴动。

 

 

令人惊奇的是,等到实验结束时,他们恢复到了自己原先的身份,有些狱警和囚犯,却成了很要好的朋友。

 

《孙子兵法》多次提到如何借助环境取得胜利,孟母为了孟子能得到一个良好的教育环境,不惜三次搬迁。无数的事实都在告诉我们,环境对一个人的成长,有多么重要。

 

所以,现在请将你学习的地方好好整理一番,桌子摆上几本书,放上一本笔记本和一支水笔,最后再准备一个杯子,让手机、耳机这类与学习无关的东西,统统远离书桌。

 

营造出一个浓厚的学习环境,可以帮助你更快的进入学习状态。

 

其次,打一套太极拳,这并不是在开玩笑。

 

 

尽管整个学习过程中,绝大多数人都会产生精神疲劳,但因为久坐的关系,也会产生少量的身体疲劳。所以在学习前,缓慢的运动可以推迟身体疲劳的产生。

 

美国著名精神病理学佳布利尔证明了,健康状况良好,经常坐着工作的人,他们产生的疲劳,百分百是由心理因素引起的。

 

长时间学习,并不会产生真正的疲劳,而是由于自己的情绪开始慢慢发生改变,开始产生烦躁、厌倦、焦虑等负面情绪引起的。所以,精神疲劳是可以自我调整的,而身体疲劳,却只能由时间恢复。

 

这就是为什么W3Cschool建议在学习前,舒展筋骨的原因。但这里面也有一些禁忌,你可以打一套太极拳,也可以做一些舒缓的动作,严谨打降龙十八掌和乾坤大挪移,大量的能量消耗,会产生身体疲劳,估计还没刚开始学习,就已经想到卧室里躺尸了,又怎么可能有利于学习呢?

 

最后一步,花上两分钟的时间静坐。

 

 

静坐需闭上双眼,且心无杂念,什么事都不干,什么声音都不听。用两分钟的时间,感受一下时间的流逝,这两分钟将会无比的漫长,以至于会让自己无比的期待真正学习的开始。

 

完成以上三步,仪式感已经建立了。

 

20小时学的是什么

 

网上流传着一张图,讽刺那些妄想在很短时间内,精通编程的人。

 

 

21天都不能完全掌握C++,那20小时是如何做到的呢?

 

W3Cschool一直在倡导和建立一种健康积极的学习方式,反对浮躁和速成。说到这里,一定有人很疑惑:“你们家的微课,学起来很快啊,难道不是速成?”

 

 

一个必须解决的问题,出现了。速成的速度很快,高效也会让学习的速度加快,如何区分两者?

 

这个问题并不难回答,如果学习成果与目标相符,那么这个工具、学习方法就是高效的,如果与目标一致,但往后你还需要费心费力的去重新学习已经掌握的知识,那便是速成。

 

W3Cschool的微课便是奔着高效的学习去的,当然我们现在还做得不够好。为此,我们在5月份启动了“微课重造计划”,将实战引入微课,并且做大量的优化工作,完善课程和新增课程。

 

与上面的例子相似,21天精通C++与20个小时学会编程,前者追求速成,后者则是追求高效。

 

而且两者的目标也并不一致,前者追求达到精通的地步,而后者是达到入门的级别。

 

Josh Kaufman认为,在一个人进入一个全新的领域时,最难渡过的便是前20小时的学习过程。在这一过程中,他必须面对扑面而来的不适感,以及挫败感,这些负面情绪,很容易让人产生厌烦和放弃,如果我们能尽可能的缩短这一过程,在这一过程中,尽可能的掌握更多的知识,对今后的学习十分有利。

 

修复了一个bug

 

前文我们提过,精神疲劳是高效学习的一大杀手,我们渴望学习,却没过一会儿就会产生疲劳感,这就像是一个程序员写了几个月的程序,期待它能运行起来时,却因为一个bug,导致整个程序无法运行。

 

这个bug是一定要被修复的。

 

 

日本作家村上春树已经坚持跑步几十年了,这让很多人都疑惑不解,为什么自己跑步总是三天打鱼两天晒网,每次坚持个把月就选择了放弃?

 

这便是高手和普通人的区别。

 

村上春树坚持了几十年,无一例外的,每一次跑步,他总是在自我感觉良好的时候结束,这让他对第二天的跑步充满着期待。

 

 

而普通人的跑步呢?今天兴致勃勃的开始跑步,跑到感觉很累了才结束,第二天跑步前就心生畏惧,还是很累的时候才结束,如此恶性循环。于是,心里开始产生精神疲劳,每次想到跑步,都倍感压力,自然坚持不了多久。

 

人,是一种喜欢舒适的生物。

 

学习编程如是。当我们学到一个十分难的知识点时,想破了脑袋也无法解决时,就想着,算了,明天再学吧。第二天,刚开始学习,难题又摆在眼前,学了一两个小时,难题又出现了,最后还是想,算了,还是明天再学吧。

 

精神疲劳便产生了,大脑开始认为,学习编程是一件很累人的事,渐渐地就趋势身体,不要去碰它。

 

学习编程,应该给大脑留下一个好的印象。在我们完成规定的任务量时,在自我感觉良好时,主动的结束本日的学习,就会让大脑产生愉悦感。第二天,这种愉悦感会接着来,最后再以同样的方式结束学习。这时你的大脑觉得,学习编程会让自己感到高兴,自然而然的更愿意坚持下去。

 

高效学习345

 

学习要有仪式感、让大脑充满愉悦感,都能让学习变得高效。高效的学习同样离不开以下几点。

 

不是“把学的东西用起来”,而是“为了用而学。”

 

早期智人发现火可以让食物易于咀嚼,而且会变得更美味,所以才费尽心思想要保存火,这才有了后来的砖木取火;

因为战争需要,奥本海默才研制出了原子弹;

 

假如反过来,智人学会砖木取火,才发现它可以使食物变美味,奥本海默研制出了原子弹,才发现它可以用于战争,这是无法想象的。

 

 

永远不要把学习本身当做目标,学习只是为了让自己能做某件事。

 

多次回忆,重复复述

 

著名的费曼学习法认为,如果你能将所学的知识,讲述给一个小白听,他如果听得懂,就证明你学会了。有研究表明,在学习后,大脑会在很短的时间内,遗忘掉70%的内容,多次回忆会不断的强化大脑记忆。

 

学习了一个for循环,试着讲给你的朋友听,如果他听懂了,就证明自己学会了,如果身边没有朋友在学编程,也可以讲给自己听,看看这样的描述,自己是否能听懂。

 

闲暇时间,回忆一下自己所学到的知识,同样能巩固记忆。

 

找一个或一群志同道合的朋友一起学习

 

社会发展理论认为,合作是一种有效的学习方法。他会给你施加无形的竞争压力,督促你更加努力的学习。而当你学有所成时,又可以向他人炫耀,增加成就感。

 

文末,W3Cschool真心希望,无论现在你是在学习编程,还是在学习其他知识,都能坚持下去,摘取胜利的果实。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Java需要掌握以下几个方面: 1.基础语法:Java的语法相对简单,但是需要掌握的内容较多,建议从基础语法入手,如数据类型、运算符、控制语句等。 2.面向对象编程:Java是一门面向对象的编程语言,需要学习面向对象的思想,如类、对象、继承、多态等。 3.常用类库:Java提供了很多常用的类库,如集合框架、IO、网络编程等,需要熟练掌握这些类库。 4.开发工具:Java开发需要使用一些开发工具,如Eclipse、IntelliJ IDEA等,需要了解这些工具的使用。 以下是一些学习Java的方法: 1.阅读Java相关书籍:可以选择一些经典的Java教材,如《Java核心技术》、《Thinking in Java》等,建议多读几本书籍,增加自己的知识储备。 2.参加培训课程:可以选择一些Java培训课程,在课程中可以系统地学习Java的相关知识,同时也可以和其他学习者交流经验。 3.编写实际项目:通过编写实际的项目,可以加深对Java的理解,同时也可以锻炼自己的编程能力。 4.参与开源项目:可以选择一些Java开源项目,通过参与开源项目的贡献,可以积累经验,提高自己的技术水平。 5.参加Java社群活动:可以加入一些Java社群,如Java开发者社区、Java技术交流群等,通过与其他Java开发者的交流,可以了解最新的技术动态,同时也可以得到一些实践经验的分享。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值