分享我编程 “不忘” 的十几种方法javascript
你们好,我是鱼皮。css
最近私信收到最多的问题就是:我学编程的时候记不住代码,老忘怎么办?前端
好比这位小伙伴,学编程一个月了,问我咋背代码:java
其实,我本身的记性是很是很是差的,因此我才在选专业的时候弃法从码。程序员
我在最开始学习 C 语言编程的时候,也是敲一次忘一次,很痛苦。但我又不想放弃,因而强迫本身去记忆代码,渐渐地把学编程变成了背单词。但花了不少时间,好不容易把单词背下来了,却仍是写不出代码,这就让我逐渐怀疑人生。面试
后来和前辈们的交流中,我发现记不住代码是很正常的,倒不如说能记住代码的人不太正常(太聪明、记性好)。算法
因而,我改变了本身的学编程方法,再也不背代码,提升了学习编程的效率。编程
今天就分享下个人编程 “不忘” 大法。后端
分为四部分:先分享一些通用记忆方法,再是面向学编程的记忆方法,还给出了忘记代码后的解决方法,以及一些必需要记忆的内容。性能优化
本文大纲:
如下方法,能够帮助咱们养成记忆的好习惯,不止编程,适用于全部知识的学习。
相对枯燥的代码和理论,咱们更喜欢看故事。试着把知识点编成有趣的故事,或者和某些人或事进行关联,可以加深印象。
好比我给你们分享编程经验的时候,会提到个人老弟小阿巴,就是为了加深你们的印象,一看到熊猫头就想到 bug,还有什么 “从前有匹马叫代码”,以及一些用故事讲技术的文章和视频,都能起到强化记忆的做用。
对于本身感兴趣的事情,咱们记忆会更容易。
好比我从前爱打游戏,数学公式记不住,但却能精准记忆怪物的血量伤害和装备的爆率。
因此想更轻松地记忆,最好能培养本身对这件事的兴趣,或者用更有趣的方式来学习,好比上面说到的看故事、看图解、看短视频知识分享。
咱们在记忆时除了须要动脑外,还能够利用好感官,好比搭配一些肢体动做。
关于这点,也不用刻意,每一个人都有本身的习惯和小动做。好比有人喜欢用手比划,有人喜欢抚摸下巴,像我则是喜欢在背书时挠头,有的时候把头发挠掉了,看着这根头发,我就感受知识记得更牢了。真就我变秃了,也变强了呗。
除了感官外,人脑经历过的事物,思考过的问题,体验过的情感和情绪,练习过的动做,均可以成为咱们记忆的内容,帮助咱们关联记忆碎片。
记东西不能死记硬背,要思考,要理解,这点真的是从小听到大,就很少说了。
咱们在学习时,最好按照体系去学习记忆,而不是东瞅瞅、西瞧瞧。
能够把零碎的知识整理成大纲、学习路线、思惟导图等等,按序、分点地去记忆。
老读者应该发现了,我如今就常常在本身的知识分享文章开头放上一张思惟导图,就是为了帮助你们快速了解文章结构,从而加深印象。
通常状况下,天天早上和晚上临睡前,是记忆的最佳时间。
我从小养成的一个习惯是:天天睡觉前会躺在床上回忆一遍本身今天作过的事情,的确有强化记忆的效果。
此外,考试周或面试前,我会把复习内容做为文档存到手机上,睡觉前打开 WPS Office 或者一些文档语音朗读软件,让音频伴我入睡。次日早上起床前,能够先打开音频,闭上眼睛,听到知识点时本身在脑海中再回想一遍,真的有奇效!
不知道你们有没有据说过遗忘曲线(艾宾浩斯曲线),就是说咱们在学习中的遗忘是有规律的,而且遗忘的速度先快后慢。
观察曲线,咱们发现,不少短时间记忆消失地很快。因此不能 光记不忆
,要趁热打铁,学完知识后抓紧应用,而且按照曲线,每隔一段时间复习一遍,才能留住所学知识。
上面的方法能够帮助咱们更好地记忆知识,而下面的方法更聚焦于帮助咱们学习编程,提升效率。
首先,对于学编程来讲,千万不要去背代码!
原本编程知识这辈子都学不完了,背代码的话下辈子都学不完了。
学编程时,咱们应该:记住有什么,你能作什么,而不是具体怎么作 。
举个例子,如今让你设计一个电梯调度系统。你只须要据说过有个东西叫 电梯调度算法
,以及它能实现电梯的有序调度就好了,而并不须要记住怎么写代码。等到要作的时候,去搜该算法具体的实现就好了。
再举个例子,如今前端的类库那么多,假设让你作一个网页动画效果,那你在此前只须要知道 Animate.css
库能够实现,等用的时候查文档就行了,并不须要把它的每一个类、每种用法都记下来。别忘了,代码更新换代很快的,即便有的东西你能记住,但它也有时效性。
尤为是对于编程的初学者,不要去背代码,你只须要知道某个函数大概能作什么事情,我要完成某个功能时能想到它(甚至是能搜到)就能够了。
另外,刷算法题目的时候不少同窗理解不了就直接死记硬背,其实记忆算法没有问题,但你要记的不是某段代码,而应该是一类题目的 解题套路 。
学编程时,必定要多记笔记,不管是看书、看文章仍是看视频。
可是请注意,笔记不是什么都记!
有些同窗怕本身忘记视频中老师讲的知识,直接把老师的原话一句句地敲下来,一个视频暂停几十次。看似笔记上内容不少,但其实真正有用的、你能记住的东西不多,并且很浪费时间,大可没必要。
不要忘了,笔记是 给你本身看的 ,是为了帮助本身复习的。我记笔记时,重点在于记思路、记流程、记关键节点。
好比我看一个前端项目实战教程时,我会记录老师设计系统的思路、以及实现系统的关键操做步骤,而且在看完视频后本身按照笔记的步骤去回想、去操做,而不是把老师写的每一行代码都记下来。还有就是记录老师重点强调的细节,尤为是一些坑。
记笔记还有个好处就是记录本身的学习过程和进度,虽然会花一些时间,但性价比是很高的。
想学好编程,必定要多写代码多实践。不少同窗理论玩的很 六、视频看的又多又快,但看完视频后仍是不会写代码、没思路,大几率是由于敲的少了,都是纸上谈兵。
像我初学编程的时候,就是只看不写,最后约等于没看。
后来,我修改了本身学习的节奏,通常看视频学技术时:先看理论部分,了解某项技术它是作什么的、有什么功能;而后看实战,跟着老师看一集写一集,而且看完一套视频后,必定要对照笔记本身再作一个项目,把视频中讲到的重点技术进行综合运用。
不要以为写项目浪费时间,想要学好编程,就必定要多作项目,能够帮助你更好地理解技术、加深印象。
另外,经过实践,能够帮助你理解不少枯燥的理论。好比当时咱们上计算机组成原理这门课,基本全是理论,上课听的只知其一;不知其二、昏昏欲睡,也根本记不住。
直到后来老师带咱们到实验室,使用开发箱实际操做,经过接线点亮电路小灯,实现指令集运算,才真正帮助我记住了课堂上讲到的知识。
我是从一本程序员修养类书籍接触到的 卡塔
,官方的解释是:卡塔是指 “形”,即招式套路,练习时必须按形进行。
简单来讲,就是每日练习。
想要学好编程,天天都要写一些代码,作一些训练。好比学前端的同窗能够天天用 JS 来实现一个小功能,学后端的朋友的能够天天书写几条 SQL 语句,巩固 SQL 语法。此外,如今程序员找工做很是看重基础算法和数据结构,想要学好这些,咱们也应该坚持天天刷 1 - 3 道题,坚持过就知道这到底有多重要了。
相比快乐,咱们更容易记住痛苦。因此学编程的时候,必定要多写代码,尤为是要多遇到 Bug,多解决 Bug。摔得越痛,飞的越高。
好比我曾经经历过一个线上事故,由于资源未释放致使服务停机,直接影响了现金收益!因此直到今天,我时刻记得要释放资源,不要再翻车了。
除了不经意间写 Bug 外,我还会 主动试坑 。就写代码的时候故意去尝试一些可能出现的操做,好比把函数参数的类型从 A 改成 B,而后分析对函数的影响,不少状况下,会有意想不到的收获,说不定就发现了一个知名框架的 Bug 呢?
和上面提到的兴趣同样,若是写程序能给咱们带来激励和正反馈,咱们就更乐意、更主动地去完成它。
对我来讲,本身主动去作的项目更容易记住,好比我至今都能想起大一时主动作的国家级创新创业项目用到了哪些技术、有哪些不足;但却想不起来大四时被要求作的图像处理毕业设计都有哪些功能了。
除了主动以外,压力也能帮助咱们提升编程学习效率,加深记忆。
好比我在腾讯实习期间,有一周上线时间很紧张,那一周基本天天工做到凌晨,因此印象尤其深入。
有的知识你觉得本身会了,但没办法把它讲出来,就是不理解,这样很快就会遗忘,面试时还会吃大亏!
因此最好能把本身写过的代码、学到的知识分享给他人,可以极大地加深对知识的理解和印象,还能帮助本身发现不足。
分享的途径多种多样,好比写文档、写博客、对着小黄鸭去讲、参与演讲、录制视频等。
像我刚开始学编程大概半年多的时候,就创建了本身的我的博客,在上面记录本身学到的知识。如今来看,虽然当时写的真的是太烂了!但也为我现在作知识分享作了铺垫。
我真的是很享受学习知识而且对外输出的过程的,持续学习,持续输出。说个好玩的事,大学的时候骑着我小电动车带室友一块儿上课的路上,我都会跟他扯一通技术。分享真的是能够激励本身不断进步,而且帮助到更多人的!
这也是不少同窗忽略的一点,学了一个技术、作了一个项目后,就赶忙把他们像炸弹同样丢掉了。其实,你本身学过的、实践过的知识都是值得珍藏的宝藏。
我在学校时,每作完一个项目,都会展开回忆,从当初想作这个项目开始、到当时的思路、实现过程、遇到的坑等,而且还会分析本身作的好或很差的地方,再加上一些心得感悟,整理汇总成一篇博客文章。
同理,学完一门技术时,我也会把这个技术的关键知识点汇总成博客。
如今工做了,我依然保持总结的好习惯,本身会写日报、周报、月报、年报等。如今回过头来看,也是一笔不小的成就,要否则谁还记得本身一年前干了啥呢?
我知道不少同窗追求完美,想把什么都记住,惧怕从此忘记重要的知识。
其实对学编程来说,忘记是很正常的,并且彻底不可怕!
我建议你们索性少记一点,不要给本身太大的记忆负担,即便忘了,咱们也有下面的方式来解决。
首先,必定要注重积累,整理本身作过的事。
像我会整理本身写过的代码,这样等要用的时候,直接去找,而后 CV(复制粘贴)大法好。
我会整理本身写过的文章、看过的好文、好句子、好表情,打造本身的语料库、素材库,随用随搜,省去了大量记忆量。
我还会整理本身踩过的坑、写过的 bug,而且将解决方案也一同整理,即便下次再遇到一样问题,也能高效解决。
忘了某段代码怎么写、没有思路、或者遇到问题了,那就去网上搜索一下;忘了某个框架的特性、函数的参数、用法,那就去看框架的官网文档就好了。
难道还要别人帮你搜索嘛?
程序圈里有个梗:有位程序员骂一段代码特别辣鸡,结果最后发现是本身写的。
这是每位程序员都会遇到的事:
为了防止此类沙雕事件的发生,咱们应该适当地给代码添加注释,像个人话常常会放一些设计思路、设计文档连接、做者等等:
/* * 功能:三连 * 思路:请参照文档 xx.cn * 做者:狗鱼皮 */
function sanLian() {
console.log('感谢三连')
}
复制代码
还能够适当回顾下本身写的烂代码,说不定就有什么优化灵感了呢?
除了注释外,作项目必定要写文档,把项目背景、选型过程、设计思路、实现方案都写清楚。不只能够帮助本身总结工做,还能给其余项目的参与者指引和帮助。
最好把产品说过的一些话也记录上,防止往后产品改需求。
最后,虽说学编程不靠背代码,但等到找工做的时候,一些面试的考点仍是必需要记住的。不过在背面经、背考点时也不要像背课文同样死板,仍是要加上本身的理解,多实践。
好比经典面试题:MySQL 如何性能优化?
死记硬背固然能够,但有时间的话,更好的作法是本身实践一下 MySQL 的优化手段,而且记录优化的效果,好比性能提高了百分之几等等,这样天然就能记住,跟面试官聊的时候也更有底气。
以上就是本期分享,但愿你们能养成好习惯,多敲多练,别再强迫本身背代码了!
最后再送你们一些 帮助我拿到大厂 offer 的学习资料:
我是如何从零开始经过自学,拿到腾讯、字节等大厂 offer 的,能够看这篇文章,再也不迷茫!
我是鱼皮,点赞 仍是要求一下的,祝你们都能心想事成、发大财、行大运。