自学编程,学完新的又忘旧的,该怎么办?
一个普遍的现象
在学习时,我们常常遇到一个现象:学了新内容,转头又忘了旧内容。以自学 python 编程为例,即便你已经完成 python 基础功入门,只要在持续进步,比如开始接触各种各样的库,该现象依然频发。
这不是某个自学者特有的问题,这简直是持续学习过程中的必然。
针对该现象,我整理出来 3 个锦囊,邀请也在持续学习的你一起打开看看,是否能有效解决“学新忘旧”的困境。
锦囊①给知识分类
我们以“需要记忆到何种程度”作为标准,来给自己所接触到的知识做一个分类。A类是牢牢记住的,B类是常用的于是放在手边方便随时检索的,C类是无需记忆,等到用时再去搜即可。
对知识的分类可能是主动的,也可能是被动的。你既可以主动选择把哪些知识化为A类并刻意重复,也可以被动地跟随多次重复自然而然地掌握。
对知识的分类是动态的,视学习程度和阶段而定。最初自学 python 时,单单记住 print() 或者字符串的增删改查如何操作就很费神;但随着我们的进步,部分知识转变为了牢固的基础功,部分知识依然夹生,但能轻车熟路知道哪里检索可得。
对于持续进步的 python 自学者来说,新知识先进入C类,再进入B类,最后进入A类。但A类其实持续消耗一个人的脑内存,会有容量的上限。当你已经掌握了基础功甚至进阶技能时,再往A类塞新知识开始感到明显吃力,又或者任何时候当你主动往A类塞知识并感到吃力时,就没必要强塞了。
在对学习成效感到焦虑时,检视自己对所学知识的分类。如果你忘掉的是C类的用法,没啥可焦虑的。而居然忘掉了A类,那就好好捡起来做功课。这就引出了第②个锦囊。如果忘掉的是B类知识,那就把做好整理归纳,这就引出了第③个锦囊。
锦囊②重复是必然的
在学习的过程中,重复读,重复练,重复用,甚至重复造,是每个学习者必经的过程。匠人需经历过无数次重复,学编程也如此,不可能学一次、用一次就完全掌握。
作为学习者,要么主动遵循记忆曲线,主动重复去读或练前段时间接触的新知识、夹生知识;要么被动接收“用时发现自己忘了”的信号,然后再重复捡起来。后者看似消极,但其实也非常有效。曾经学过练过的,大脑都有痕迹,当你第2次、3次重复时,依然有印象,重新掌握的速度也会快起来。
这时不得不再提第①个锦囊。比如,你已经掌握了基础功,正为了自学爬虫而了解几大爬虫相关的库,你对这些库完全陌生,你不知道谁和谁都有哪些特性,也不知道自己最终会反复用到哪些方法,或者掉进哪些坑里……于是你尝鲜然后不小心忘掉,并没有什么不妥。反复踩同样的坑……搜索同样的问题并练习同样的代码……是很多人在接触新知识时会经历的过程。
小孩子练习走路,还要跌到在地无数次呢,但在大人眼中,小孩子颤颤巍巍的样子多可爱啊。在自学编程的时候,我们大脑中所对应的那个部分,就是个初生的孩子!稚嫩是必然的,重复摔倒也是必然的,完全没必要用成人的标准要求自己在每个新领域都是高手表现。
还有一种特殊情况是,有的人新学知识时,总是一股脑往前冲,忘了“重复”的必要性,回过头好像自己读完了,记住的也寥寥。没事,回过神来,刻意重复吧。
锦囊③整理归纳,写学习笔记
总是逐新知识而去,旧知识欠缺必要的整理归纳,当然很容易忘掉。不妨认真写学习笔记,并公开发表为文章。为什么学技术的牛人中,写作能力强的大有人在?为什么刘未鹏大佬的好文“怎样花两年时间去面试一个人”提到博客的重要性?程序员最初的写作,通常都是学习笔记,很多技术大佬也常年写新的学习笔记并广为流传。作为新手,在学习的过程中,千万别丢了整理归纳、写读书笔记这个锦囊。
学习笔记有不同的写法。一种写法,复制粘贴并汇总该知识点的方方面面,复制粘贴完了,其实自己也没啥心得和深刻印象。另一种写法,以未来的自己为读者,记录自己如何获取、使用该知识点的。第二种写法,在过程之中就有许多思考,产生取舍、整理、归纳等思维活动。写学习笔记时,你的大脑工作量越多,该知识点从C类转为B类甚至A类的可能性越大。
同一个主题的学习笔记也可重复进行。这种重复是因为你在不同时期,你对知识的掌握程度、侧重的点都已经发生变化。重复写同一个主题,也能让你再次复习,重新整理归纳,并常常发现,原来许多夹生的知识点可能早已默默转变为牢牢记住的了。
好啦,以上就是我为自己备好的③个锦囊。如果对你有用,一定要告诉我!自学python不易,此路应携手前行。