对于刚接触编程的人来说,大量的语法、逻辑、英文单词、信息技术知识会让人很难消化完全,但如果将其化整为零,那还是用几种有效的学习方法去记忆与巩固编程能力。这里,以我学习Python用的学习方法为讲解思路。
一、
首先,编程是属于工科,属于信息时代的工程学,在数字世界构建各种项目。所以,动手练习最能提升编程的技能。前期的一些知识学起来比较简单,对Python而言更是如此,不要因为简单一下就懂而忽略动手的过程,眼高手低是掌握不了编程的。到了网页开发的部分,动手练习更是直接让你在浏览器就得到反馈的结果,然后掌握合适的调试Debug技巧就可以网页开发上完全入门了,可以看一下我篇文章《Flask网页开发流程与调试的总结》。如果,对于学了Python,觉得一下子学了很多,又忘了基础知识的人可以找一些小的语法练习题,做一下语感的练习。
二、
接着,学会记笔记。很多开源项目、包与模块都有自己的文档。开始时,无论是网页开发的Flask、数据分析的Pandas,还是机器学习的Sklearn,这些很实用,而且功能很多的框架都有很大的文档,这种类包的文档,两个加起来都有一本书那么厚。所以,没有必要记住一个包的全部功能。你可以把常用的知识截取下来,加上自己的注释。我就是用为知笔记这款软件去管理不同领域、不同知识的笔记,用法有很多大家可以网上搜索,一开始就把它当成能一键收录网页资料的资料库就可以了。以上,就能帮我们在需要时,通过关键字能找到资料就行。
以上的笔记或资料库只是相当于人的外脑的功能,让它记忆一般常用,但又不用记住的知识。另外,而且信息时代,人们工作之后,越来越少用纸笔去记笔记了。这时,最好的替代方法是用思维导图软件。复制粘贴、手机拍照不代你记了笔记,更不代表有思考。因为,会用纸笔记笔记的人必然在写的时候有所思考与记忆。而制作思维导图的过程,一步步建立自己的分支,就是思考的过程。下图就是我学Python制作的目录思维导图,分支还连着十几张不同内容的思维导图:
导图的分支记下思考过的笔记,关键的代码,也是将代码块、附件加到思维导图里。看别人的导图能看到别人的思路,但没能很好提升编程的技能,所以要自己亲手制作思维导图。
三、
然后,可以通过公开发面关于编程的文章,也有助于巩固知识。因为写是最能调动人的思维的,写代码也同理。这里要提到“费曼学习法”,当你能把一个知识很好地解释给别人听的时候,说明你对该项知识有一定程序的掌握。最近,我的博客里写了那么多关于技术类的文章就是实现就个过程,把自己的记忆与技能再次巩固。当然,不同的编程文章有不同的写法。如果是针对一个问题的解决,则要把问题的成因、背景,出现的问题,解决方法的步骤,总结出来。如果是对于原因的解释,我更加倾向使用比喻的方式,让人理解。如果经验之谈,我则喜欢用杂文的方式。如果是算法原理这种,我打算用一层层递进的写法去解释。
四、
另外,关于英文单词的记忆,我觉得,因为它们不是作为交流的元素,而是作为工具的元素。交流语言是要通过听说读写,加上场景来掌握。而编程语言,更是通过读写来掌握。所以在用变量名时,不要总想着用简略的字母或数字来代替,尽量用完整能表达变量意义的单词。学习一些新工具的函数时,还用它的方法、属性和函数名组合一起,来巩固,例如:data_grouped_sum=df.groupby('name').sum()来加强对编程英语单词的认识。
五、
最后,关于数据科学的部分。这部分,编程技巧性就没那么强,也就不那么想工科。因为做机器学习、深度学习应用部分,就是建立模型、训练模型、预测与结果检验这四步,难就难在特征工程和对算法的理解上。算法原理是理科,需要大量阅读,思考理解,最后把做关键呈现一步写出来。而特征工程更多是经验,对不同的数据集,有不同的处理方法,也会一些固定套路。在学习特征工程的过程,可以把不同数据处理方法的经验总结文章收录到自己的资料库,反复阅读即可。
原文连接:《如何记忆和巩固编程知识与技能》