这个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已经有14年的历史,在期间,我们见证了无数编程爱好者的学习经历,有成功转行成功的,也有实现了自己的编程梦想的,但更多的人,不是选择了放弃,就是正在放弃的路上。
残忍的真相
在我们的今日头条专栏中,一共有193人购买了《 Python零基础入门到爬虫实战》,而单节播放量最低仅78,除去头条的算法推荐,真正学完这门课程的人实在太少了。
是我们的教程质量太差吗?不是。如果你去查询一下其他平台的数据,只会发现都一样。
线上如此,线下如何?
一名参加过线下培训的同学,曾这样坦言:
我们那个班60多人,学完就剩20多人,学完立马找到工作的有12人,一年后还在IT行业的只有7人。
计算机专业工程师对口工作的比例,又有多少?
一名科班毕业的程序员回忆道:很遗憾,也没想想象中的那么高。
我记得当年班里大概也就一半一半软体软件的吧,其他的或者考公,另一考研,还有些去做销售去了。当然,就业率100%,当时有七人签不到三方,然后辅导员把他们全部签到了朋友的一个轮滑俱乐部里面。
选择比努力重要?
马云曾说:“互联网时代,选择比努力更重要。”
是,他们就开始不断的钻研,如何才能做到更正确的选择。可惜到头来的结果是:
选择比努力更重要,很对!怎么选择?不会!选择一会儿就放弃,流泪!
马云说的所有话,都有他的道理,有时那句著名的“我从来没碰过钱,我对钱不感兴趣。”站在某个特定的角度,是对的。
而“选择比努力更重要”,错了吗?也没有。但几乎所有人都忽略了一个事实,马云是某种的人?他首先是一个很努力的人,其次才是一个很会做选择的人。他已经把努力当成一种自然而然的事情。努力,被他过滤了。
只有努力了,才有选择的权利,选择后,同样需要努力。
很多人听说IT行业很吃香,就执拗的选择了IT,你是对的,互联网依然处于蓬勃发展时期,到处都充满着机会。
可是,选择了走上编程这条道路之后,80%的人都选择了放弃。
编程难只是借口
最近在看卡耐基《人性的弱点》一书,他指出了一个发人深省的观点:99%的情况下,不管犯下多严重的错误,有人都会优先归结于他人。从而,卡耐基举了几个例子:
一名臭名昭著的杀人犯,枪杀了一名让他出示驾照的警察,却声称自己是在正当防卫。
一名黑帮头目曾说:“我把人生中最好的时光奉献给人们,而我得到的却只是骂名。”
所有的罪犯大都认为自己没错,都在为自己的罪行找各式各样的借口,这就是人性的弱点。
学习编程没多久,就说编程太难,我的天赋不足,学了记不住等等,事实,这些理由太过冠冕堂皇,都是借口罢了。我们从来不会让主动给自己施加负负罪感,经常通过各种理由让自己心安。
编程实在太难了,所以我学不会,这是没办法的事。
努力的人都成功了
努力一定成功吗?
我们想,大部分人都会回答:“不一定。”
一个搬砖工想成为项目经理,为了这个目标,每天搬砖几个小时,十年来,他还是一名搬砖工。
一个网站编辑,已经工作了3年,这3年来,他矜矜业业,上司教给他的任务,他都很努力的完成了,可直到目前,他还是一名编辑。
这样的例子很多,但不知你有没有发现,我们对“努力”是有偏见的,即努力就是不断的做重复性的工作。
这并不是真正的努力,花费足够多的时间,不断的寻求突破自我,这才是真正的努力。
10000小时定律认为,要成为某个领域的专家,需要10000小时的努力,这里说的努力,指的就是用10000小时的时间,不断的超越自我。
可如果在搬砖的同时,他在思考,如何才能提高效率?于是他不断革新自己的搬砖方法,直到后来发明了机器,他成为了这一领域的专家。
你还觉得努力不一定成功吗?
学编程按部就班,习惯了Ctrl + v,Ctrl + c,主管说怎么开发就怎么开发,从来没有自己的想法,996五年,到头来还是一名临时,你真的努力了吗?
真正,了,他们没你想象中的那么不堪和落魄。
放下你的目标
我们很喜欢同学们有自己的目标,目标就是前行的动力。你能给自己定一个目标,说明你是一个做事有条理的人。但我们也很容易,过高的目标和功利心,会战斗残你的信心。
学完中国近代史,你可能对溥仪这个末代皇帝很感兴趣,想了解一下他的经历,于是你开始翻阅《我的前半生》,想看小说一样,看着溥仪的自传。
一个月后,老师突然布置了一个作业,要求同学去看《我的前半生》,并写出读后感。你能完成这个作业吗?
我们想,对你而言,应该不是什么难事,因为你已经按照自己的意图,看完了整部自传。
这个顺序颠倒一下,会是怎样的?
老师先布置作业,要求看书。这时候你再看,可能很难看下去。因为无时无刻你都在想,我该怎样写好这份读后感?根本静不下心来细看,只会想着如何将作业更好的完成。
学编程也一样,当你开始学编程时,就想着未来要写一段类似的程序,做多厉害的程序员的时候,你的关注都不会放在当下,久而久之,就会开始厌烦,为什么我学了这么久,还是不能成为一个技术大牛?
一名教育家告诉他的学生,自己是如何训练自己的毅力的:
年轻时,当我决定做某件事时,我总想做得最好,却每次都达不到预期,总是坚持一个一两天就放弃了,负罪感使我更容易放弃。后来我发现这样非常糟糕,大学同学已经取得了不小的成功,他们有自己的创业,有的就职于某大型企业。我自信能力不比他们差,只是毅力太差,做事不够坚持,于是我打算训练自己的毅力。
一天晚上,我想到了一个方法,我将一堆纸裁剪成365张卡片,规定自己每一天在一张卡片上写上一个随意的字。
期间,我很多次都试图放弃,但回头一想:只是在卡片上写一个字而已,30秒就够了,于是我又开始动笔,每一次完成目标,自己就更加自信了,以至于一年后,我的目标达成了,我依然保持着这一习惯,每天不写一个字,就会手痒得不得了。
每天,我至少学一个HTML标签,只要这个目标达到了,我就成功了。至于多学的部分,只是我给自己“加餐”而已。
最后,总结一下这里所提到的,学习编程需要注意的几点:
1.学习编程,“坚持”很重要,坚持到最后的人,都成功了;
2.不要把“学编程很难”归因于基础差,而应该看到自己的长处;
3.首先,要让自己成为一个努力学习编程的人,这样才有选择的余地;
4.刚开始学习编程时,目标不要太高,给自己徒增压力;
奉劝那些想学编程的人2
在学习编程前,我们喜欢上网去找答案,某些“我26了,学编程晚吗”,“程序员有前景吗”,“基础差能不能学”。
每每看到这些问题,我们都很头疼,可作为一家编程学习平台,W3Cschool又有责任来解决同学们提出的问题。可这些问题,根本就没有标准答案。说都能学吧,万一你学不会,肯定来怪我们忽悠人。说不行,不要学了,万一你很感兴趣,以后能成为大牛,我们岂不是抹杀了一个未来的技术人才。
所以,今天我们特地开了这一篇文章,解答一下这个问题。
到底听谁的
我们拿“ 26岁了,学编程晚吗”这个问题模仿。
假如该问题下有以下这么几个回答:
一个计算机博士说:“现在竞争那么大,26太晚了。”
一个刚找到工作的程序员说:“不晚啊,我今年就26。”
一个40多岁的老奶奶说:“不晚啊,你看,我现在还在学编程呢。”
我想,绝大部分人都会听信计算机博士的话,因为他是这方面的专家,说的话当然很有分量。
这里开始,就犯了一个错误,跟随“只买贵的,不买对的”是一个道理。为什么这么说呢?
之前看到这么一则笑话:
我听专家说吃泡面用纸盒不健康,老子当时就笑了,你懂吃泡面吗?老子都混到吃泡面了,还在乎健康?
专家错了吗?真没错,撕开泡面盖的时候,纸筒边缘会起一些毛边,很容易在喝汤的时候,吃到肚子里去。
可为什么看到这一则笑话,我们就想笑呢?
专家忽略了一个事实,大部分人吃泡面,最主要是要解决“肚子饿”的问题,而不是健康问题。
产品设计中,有一个原则,即只采纳主流用户的意见,而不听专家用户的意见也是这么一个道理。主流用户想要少花钱,还要吃饱,满足就好了,至于营养问题,就不再考虑范围了。
所以,计算机博士说的话,并非是什么,应该被过滤掉,不应该考虑。
去年有这么一则新闻,一名82岁的日本老奶奶开发游戏,获得了苹果CEO库克的赞扬。这名老奶奶60岁才开始学编程,激励了很多编程初学者。
“你看,人家60岁才开始学编程,你才26你说晚?”抱这种观点的,确实也能给很多编程初学者信心。但W3Cschool还是想说,这种鬼话也别信。
60岁才开始学编程,还开发出了APP,并且会见了库克,得到了他的表扬,试问世界上有多少人做到了这些呢?并没有几个。老奶奶学编程这件事,是个特例,如果你以此为目标,一定会大失所望。
所以,还是跟你经历差不多的人,他们的看法和经历是怎样的,再判断一下大部分人是不是都这样,排除特例,很容易得到一个很好的答案。
别想太多
学编程这件事,真的别想太多,如果你真的想学,那就去做。不想学,别被一些利好的消息,硬着头皮学下去。
马云在一次台湾的演讲中,纳入创业时,曾这样一篇:
我不太喜欢MBA的创业模式,总是先去分析,这个行业有多大,未来前景很好,所以要切入这个行业。这个基本都不靠谱的。其实我很快就能分辨出一个人创业,是狼还是一只狗。狼是根本不在乎行业有多大,他杀进去,就只想做自己想做的事。
我发现很多风险投资,做一个ppt做得非常漂亮,开头就说这个行业有亿亿利润,好像这个一万亿跟你有关系,跟你没关系。
学编程也是一样的道理,想学就去学,不想学就别勉强,哪有那么多弯弯绕。
每个人的心理黑箱
在心理学中,这一现象被称为“心理黑箱效应”。
试想一下下面两个场景:
发了一条消息,一个小时过去了,女朋友还没回复
老板说:“你来我办公室一下”
几乎所有人都会往坏的方向想,很少人会这么认为:是不是女朋友太忙了,没时间回?老板叫我去办公室,估计只是想和我聊聊工作进展吧?
编程初学者,几乎都会有自己的心理黑箱,总是在想,万一我学不好怎么办,找到工作怎么办,变得太多,就放弃了学习的打算。
这无关对错,这是人类的本能。在远古时代,人类必须往最坏的方面去打算,才能生存下去。
睡觉时,可能被野兽吃掉,于是就有了爬到树上去睡,或者建个围墙的好方法。领地出现了其他部落的人的脚印,是不是要入侵了?赶紧召集族人备战。
刘慈欣在《三体》中所说的“黑暗森林法则”也是一样的道理,两个文明在相互碰撞后,首先想到的是干掉对方,而不是共同合作进步。
无论是远古人类还是黑暗森林法则,他们都做好了最坏的打算,但都用最积极的心态去应对。
反过来再看看很多编程初学者们,说编程太难,就不敢学了,殊不知在其他行业,还是有洪水猛兽在等着你。一直躲,一直逃,终究一事无成。
好像越说越鸡汤了……总归一句话:做好最坏的打算,以最积极的心态去面对。
最后总结一下此处:
1.一旦遇到问题,请过滤掉专家的意见,只跟随跟你有类似经历的人的意见,并且还要过滤掉特例。
2. 学不学编程,完全确定是否想学,其他的别多想。
3.做好最坏的打算,以最积极的心态去面对,而不是逃避。

浙公网安备 33010602011771号