很高兴你能看到这篇文章,这至少说明你是一个爱学习的人。关于学习的方法论有非常的多,但是不是每一个方法都适合于你。当然也包括我即将要分享的内容,我们可以从这些方法论中总结出适合我们自己的方法,来提高我们的学习效率。
在我刚刚做程序员的时候,我的技术总监他对我讲过这样一句话,以至于过了8年我依然记忆犹新。他讲:"你要学会学习再学习"。从小学到初中,从初中到高中...,十几年的学习经历,我还需要去学习如何学习吗? 事实告诉我:”是的,我需要“,结合我自己的学习经历,我把我的学习方法分享给你。对于不同阶段的程序员,有着不一样的学习方法。我将对不同阶段程序员的学习方法进行总结,今天先来分享入门程序员的学习方法。
入门程序员
你是否听过一万小时理论?一万小时理论是讲:”一个人想在一个领域达到高手的境界,他的练习时间就是必须超过一万个小时,任何行业都不例外“。如果你想入门做个程序员,那这个理论并不适合这个行业。方法不对努力白费, 举个简单的例子:”一个干了10年保安的大爷,他能成为保安届顶流吗?不,他一定不会,但他可能成为保安队长,他能找到一个在保安亭里面睡觉最舒服的方式“。
如果把学习分为 自然主义和结构主义
,值得注意的是不要用自然主义的方法去学习本应该属于结构主义去学的东西。那什么是自然主义?什么是结构主义?
自然主义的核心是 模仿
,结构主义的核心 创造
。如果是练习书法,当然使用的是自然主义,你去临摹字帖,一笔一划的去练习,这个叫模仿。
结构主义侧重结构和交互关系的认识,要透过表面去寻求底层的关系。这是为什么?为了创造。而编程本身就是在创造,创造一个功能,创造一个程序,创造一个互联网的世界。结构主义告诉我们要学会举一反三,要有灵活的思维去应对各种变化。
在学习编程的过程中,我们会看视频学习,也会看文档学习。通常视频和文档会讲述一个案例一种方法。我们要做到的是举一反三,而不是用自然主义的方法去死记硬背视频或者文章中的案例。我们要用结构主义的方法去理解,要知道它的技术要点是什么(What)?为什么要用这种技术(Why)?以及他未来的应用场景在哪里(Where)?这个场景在实践操作的时候怎么做(How)?要去探索而不是去临摹。
作业与练习
掌握了合适的学习方法,你的学习肯定是有效的,但是不一定是高效的。怎么让有效变成高效?学习速度和效率的提升可以分为两个阶段,一个阶段是避免无效学习,那学习的速度和效率自然会有提升。另一个是尽可能通过更好的学习方法来把有效变成高效。
先来聊聊什么是无效的学习。给大家讲个例子,曾经带过一个朋友学习编程,学习的方式那就是看视频学习,在学习新的知识的时候看视频更容易让我们理解,他学了一段时间却只是略懂皮毛。后来我让他坐我旁边学习,我发现他在看视频的时候,会这跟着视频一个字母一个字母的敲代码,他每敲一个字母都要瞅一眼视频。我认为他学习的是如何使用键盘打字母,而不是编程。
在看视频学习的时候,至少要把视频中的代码敲两边。
第一遍 临摹。你可以看2分钟视频或者看视频中敲了一段代码,暂停视频然后根据自己的理解以及记忆,把刚刚的代码自己练习一遍,如果你发现自己想不起来了,在去看一眼视频,然后继续凭着自己的记忆完成这段代码。这个过程我们不断的再加强自己的记忆和理解。
第二遍 提取。我们看两个小时的视频,或者看了一关。需要把今天所学习的内容整理成笔记,在整理笔记的同时把我们自己的代码案例也逐个的加入到我们的笔记中。写笔记的同时我们也完成了第二遍的练习,而第二遍练习我们需要思考更多的东西,要去举一反三,大胆的尝试不要怕错误的出现。而整理笔记时,我们要站在一个讲师的角度完成,带着教学的心态去整理,如果一个小白他不知道某个知识是什么,能否通过你的笔记快速了解并且学会它?如果可以那么这就是一份合格的笔记,因为在过了一个月以后你也会对你今天所学习的内容感到陌生,当你翻查自己的笔记时,你会发现你就是当初那个小白。
为什么看一段视频再去敲代码?为什么要整理笔记?知识存储在我们的大脑中,每一次检索知识,并提取出来都会加强我们对知识的记忆。我们在看视频的同时就已经在加强自己的记忆了,如果只是过了一遍视频,不去练习这样的学习是低效,过几天你会完全忘记自己学了什么。在未来如果不经常使用也会逐渐的忘记,而你站在教学心态所记录的笔记就是最好的知识积累,我们可以通过笔记快速的掌握这个知识,不是再去花一天的时间去看视频。
任务驱动与刻意练习
有人说编程太难了我学不会,而我说:”编程是每一个人都能学习的技术“。他已经被编入了小学生的教材。邻居家的孩子都已经在线上学习少儿编程了。
成年人学习不需要兴趣
之前我也经常劝别人学习编程要有兴趣,当然我们经常说:“兴趣是最好的老师”,如果你有兴趣那当然最好了,在《刻意练习》这本中也提到兴趣驱动十分重要,但我认为成年人学习不需要兴趣。人做事的驱动来自两个方面 一个方向是内部,兴趣他就是很强的内部驱动,当然还有虚荣心。另外一个来自外部,也就是完成任务的奖励,你学会编程后的高薪就业,以及你现在写出来的程序,像朋友同学炫耀的虚荣心,就像游戏一样通关后角色会有奖励,而且每次还都有随机的奖励,来驱使我们对完成任务有一定的期待,学习也应该以任务来驱动,阶段性任务能让我对目标更加明确,对完成任务有一定的期待。
为什么程序员最好的学习方式是项目驱动学习
项目驱动学习是程序员最好的学习方式之一,项目通常是多人合作完成,每个人负责不同的模块和任务。如果分配给你一个你不会的任务,你要必须去学会它,除非你想换个工作,工作的压力迫使我们需要快速成长。
在每一天你的学习任务中,你可以先看看今天要完成的作业,这是你的任务也是一个明确的目标。带着你对作业不解的疑惑,开始今天的学习。在学习中寻找解决问题的答案。而作业恰恰可能是未来项目中的一个简化的小模块,在我们试着去完成作业的同时,也是在不断的从我们的大脑中检索知识,是一个实战场景的练习。作业是来检查我们是否学会了知识,是否会应用我们所学到的知识,当然你也可以根据作业举一反三想想其他场景。
刻意练习
《刻意练习》是一本书,它讲述了成为杰出的人才并非是一种天赋,而是没有掌握正确的方法。杰出是一种人人都可以学习的技巧,成为杰出人才的关键,在于刻意练习。刻意练习总共分为4步:
- 定义明确的特定目标,积跬步以致千里;
- 保持专注,把全部注意力集中于你的任务上;
- 需要反馈,反馈会帮你搞清楚哪方面不足,离目标有多远;
- 走出舒适区,不走出舒适区永远无法进步。
而结合我们的学习,明确的目标就是今天我们要掌握的知识点和要完成的作业。我需要保持专注去学习,把全部精力集中在我们的教程上,完成作业后你就需要反馈,需要有人告诉你哪里好,哪里不好。你需要知道你距离目标真实的差距,收到反馈我们需要改正它,作业的难度以及收到反馈后不断的去优化自己的代码的过程,就是在不断的挑战自己的舒适区。
别吝啬,你在帮助别人的时候也在帮助自己。
- 费曼学习法的核心就是,通过向别人清楚的解释一件事情,来明确自己是否真的弄懂了这件事。
在学习的路程中通常我们不是一个人孤独的前行,当有同学问一个问题时,你应该踊跃的帮助他,因为你在给他讲述的过程中,你也会遇到很多问题,比如:说不清楚、讲不明白、自己模棱两可等。这说明这个知识点你也并没有掌握,在尝试教授的过程中来发现自己的薄弱点,不断的加强和纠错,来提升自己对知识的记录,提高自己的掌握程度。
在学习编程的过程中,你经常会遇到你看懂了,但是在使用或者在做作业的时候又无从下手,或者自己明明知道怎么做就是不会写,这就是知识掌握薄弱的表现。
总结一下
成年人学习不需要兴趣,你要带着任务和明确的目标去学习,在学习的过程中你需要反馈,它可以是每天的反馈或者是完成一个实际案例的反馈,要站在一个讲师的角度记录自己的笔记。并帮助其他人来解决他所遇到的问题,来加深自己印象和检查自己的掌握程度。
评论(0)