一个正确的编程学习方法
在我们十几年的求学生涯中,关于知识的获取基本上都在执行以下步骤:学习课本上给的教程案例,练习课后的配套习题,如此反复,直到通过考试。
自然而然的,很多人会把这种学习方式映射到编程上:学习基础语法,练习几个小的教学案例,如此反复,直到认为学会编程。
长此以往,很多人都会陷入一个瓶颈:自己的编程水平似乎到达上限。
造成这个结果的原因之一在于他们用学生思维的方式学编程,而不是用开发者的思维学编程,也就是说这种学生思维应用到编程学习会极大的束缚程序员的提升。
那怎么样才是程序员该有的编程学习方法呢?
在我看来,费曼学习法是程序员提升编程能力必须掌握的一个方法。
什么是费曼学习法呢?
简单来说就是以教促学,每当你认为学会或者掌握一个知识后,去给别人讲明白,通过这种方式对自己做一个检验。
为什么提升编程能力需要掌握费曼学习法呢?
李笑来曾经分享过一个观点,他说教育主要分为 3 个环节——
1、 教:我们最常做的读书、学习、听课等
2、 练:就是练习,大量练习,重复练习
3、 教练:在练习过程中遇到问题,教练帮忙指出来,然后继续练。
1、2 不断循环,直到把知识、技能练熟,能用到实践中,帮自己做成一些事情,创造价值。
以此作为参考,编程的学习也是可以分为 3 个环节---
1、学:就是学习模仿优秀的项目,阅读优秀的源码
2、练:就是练习,找 demo、小型项目、开源项目,大量重复的敲代 码
3、教:就是教练,通过写教程或者视频的方式给其他人讲明白一个项目
1、2 两点属于被动学习,吸收效率在 10% 至 30% 之间,而 3 属于主动学习,也就是费曼学习,吸收效率高达 90% 。
也就是说,我们在学习编程的过程中,为了提高学习效率,可以主动的去写技术博客分享,注意是写技术博客而非技术笔记,笔记是给自己看的,博客是给别人看的,在这个过程中,表面上你是在教会别人,事实上你通过教会别人的方式来逼自己查缺补漏,你可能以为你懂了,结果发现无法表达出来,事实上还是没有理解透彻;你以为你讲明白了,别人一问,发现还是有遗漏点。
以我个人为例,我的算法水平是什么时候开始突飞猛进的呢?
答案就是这两年我写了一些算法分享的文章,并且是通过动画这种费力的方式希望能让小白都看懂,在这个过程中,我很容易发现,如果我自己没有深刻理解题目,即使一刷可以 AC,隔段时间也是会出现一脸懵逼的情况。
希望今天的这个分享能对你有所启发,觉得内容对你有所帮助的,还请点个「在看」支持,谢谢各位啦~
·················END·················
你好,我是程序员吴师兄,程序员与自媒体双料博主,GitHub 70k star,知乎 10w 关注,公众号 25w 粉丝。
很开心与你相遇,希望和你一起成为更厉害的程序员,一起进步!
一个正确的编程学习方法相关推荐
- java编程学习方法_在线学习Java编程的最佳方法
java编程学习方法 1.简介 Java是使用最广泛的编程语言之一. 根据Github的最新报告 ,Java被列为仅次于JavaScript的第二大最常用的编程语言. 掌握Java的人有很多话题. 好 ...
- 【代码猴子-培养正确的编程态度和方法】--《编程匠艺》
转来的! [代码猴子-培养正确的编程态度和方法]--<编程匠艺> 从 博客园-首页原创精华区 作者:小伦 有 41 人喜欢此条目 作者: 小伦 发表于 2010-06-16 15:22 ...
- 最快速的编程学习方法究竟是什么?
最快速的编程学习方法究竟是什么?这是许多初学编程者的问题.1.不要放过任何一个看上去很简单的小编程问题--他们往往并不那么简单,或者可以引伸出很多知识点: 2.如果不是天才的话,想学编程就不要想玩游戏 ...
- 最可贵的努力,是选择一个正确的方向
转载自:http://mp.weixin.qq.com/s?__biz=MjM5ODAxODQ0MA==&mid=205946648&idx=5&sn=fdd2d35d3b17 ...
- 为什么企业选择年底裁员?如何选择一个正确的公司!
为什么很多企业选择年底裁员? 首先分析一下裁员的原因: 1.你能力不行,在公司吃闲饭 2.减少公司成本 3.公司换血,需要新的人才注入 普通情况下,这些因素裁员很正常,只能怪自己不争气,成为末尾被淘汰 ...
- 编程一个最简单游戏_一个关于AI编程的游戏
点击上方"机器学习与统计学",选择"置顶"公众号 重磅干货,第一时间送达 周末推荐一个正在玩的游戏,挺好玩的. <异常>是一个关于AI编程的游戏,在 ...
- 零编程基础学python-如果是一个纯0编程基础的小白,如何学Python
Python 可用的地方非常多.无论是从入门级选手(爬虫.前端.后端.自动化运维)到专业级数据挖掘.科学计算.图像处理.人工智能,Python 都可以胜任.或许是因为这种万能属性,周围好更多的小伙伴都 ...
- 用户自定义一个异常,编程创建并抛出某个异常类的实例。运行该程序并观察执行结果。
用户自定义一个异常,编程创建并抛出某个异常类的实例.运行该程序并观察执行结果. 例:用户密码的合法化验证. 要求密码有4-6个数字组成.若长度不落在这个范围或不是有数字组成.抛出自己的异常. 要求: ...
- 疫情之下,将业务迁移至云端会是一个正确的选择吗?
突如其来的疫情给所有人的 2020 年都打了一个措手不及,尤其是针对那些业务重点放在线下,且现金流不是特别充裕的企业.这个假期,我们已经听到了太多由于企业现金流紧张而导致倒闭.裁员.降薪等等事件,尤其 ...
最新文章
- 脚本路径问题_dirname
- 安装Linux双系统取消快速启动,为什么在双启动时禁用Windows 8上的快速启动?
- Java对象容器——集合Set
- Spring MVC 启动
- 《TCP/IP详解》笔记----第二章 链路层
- 时间轴ui设计_我应该在UI设计上花更多时间吗?
- python对英语的要求_学python需要英语基础吗
- 表格数字乘以百分比怎么算_Excel输入多位数字之后有了“E”,用文本格式一步到位,恢复原状...
- 书柜的尺寸(bzoj 1933)
- ENVI分类格式转TIF
- Lua - 从指定时区提供的时间戳、时区的 UTC 时差,转换为对应当前本地 UTC 时差后的时间
- 艾司博讯:拼多多怎么设置团长ID?团长权限?
- 面试知识储备:新浪微博Android客户端的实现
- python中ttk和tkinter_Python Tkinter ttk组件及用法(附带实例)
- 【SQL面试】窗口函数如何实现【累加】?
- MySql中设置utf8编码方法
- js绘制菱形(空心和实心)
- C语言中打印图形问题
- shouldoverrideurlloading为什么有时候不走_心理学:为什么很多看似不般配的人,往往都能走到最后?...
- c语言找出链表中倒数第k的数,查找链表中倒数第k个结点