一个正确的编程思维
在我们十几年的求学生涯中,关于知识的获取基本上都在执行以下步骤:学习课本上给的教程案例,练习课后的配套习题,如此反复,直到通过考试。
自然而然的,很多人会把这种学习方式映射到编程上:学习基础语法,练习几个小的教学案例,如此反复,直到认为学会编程。
长此以往,很多人都会陷入一个瓶颈:自己的编程水平似乎到达上限。造成这个结果的原因之一在于他们用学生思维的方式学编程,而不是用开发者的思维学编程,也就是说这种学生思维应用到编程学习会极大的束缚程序员的提升。
那怎么样才是程序员该有的编程思维呢?
在我看来,费曼学习法是程序员提升编程能力必须掌握的一个思维。
什么是费曼学习法呢?
简单来说就是以教促学,每当你认为学会或者掌握一个知识后,去给别人讲明白,通过这种方式对自己做一个检验。
为什么提升编程能力需要掌握费曼学习法呢?
李笑来曾经分享过一个观点,他说教育主要分为 3 个环节——
1、 教:我们最常做的读书、学习、听课等
2、 练:就是练习,大量练习,重复练习
3、 教练:在练习过程中遇到问题,教练帮忙指出来,然后继续练。
1、2 不断循环,直到把知识、技能练熟,能用到实践中,帮自己做成一些事情,创造价值。
以此作为参考,编程的学习也是可以分为 3 个环节---
1、学:就是学习模仿优秀的项目,阅读优秀的源码
2、练:就是练习,找 demo、小型项目、开源项目,大量重复的敲代码
3、教:就是教练,通过写教程或者视频的方式给其他人讲明白一个项目
1、2 两点属于被动学习,吸收效率在 10% 至 30% 之间,而 3 属于主动学习,也就是费曼学习,吸收效率高达 90% 。
也就是说,我们在学习编程的过程中,为了提高学习效率,可以主动的去写技术博客分享,注意是写技术博客而非技术笔记,笔记是给自己看的,博客是给别人看的,在这个过程中,表面上你是在教会别人,事实上你通过教会别人的方式来逼自己查缺补漏,你可能以为你懂了,结果发现无法表达出来,事实上还是没有理解透彻;你以为你讲明白了,别人一问,发现还是有遗漏点。
以我个人为例,我的算法水平是什么时候开始突飞猛进的呢?
答案就是这两年我写了一些算法分享的文章,并且是通过动画这种费力的方式希望能让小白都看懂,在这个过程中,我很容易发现,如果我自己没有深刻理解题目,即使一刷可以 AC,隔段时间也是会出现一脸懵逼的情况。
不同的思维方式,会导致不同的行为模式,进而影响最终的结果。
希望今天的这个分享能对你有所启发。
版权声明: 本文为 InfoQ 作者【程序员吴师兄】的原创文章。
原文链接:【http://xie.infoq.cn/article/7243a162121b55e46c81bc8aa】。未经作者许可,禁止转载。
评论