程序员自我学习-《学习怎么学习: 如何自我教育》
在这个飞速变化的世界里, 学习的能力是至关重要的,软件开发人员如果选择固步自封,忽视自己的技能发展, 那么他们很快就会落在后面,错失未来,只能被派去维护过去的系统,由于不断的新人涌入这个市场, 甚至未来过时的系统也不需要你维护了, 你就需要学会如何学习。
如何学习?,你真的知道?
回想下,学生时代我们大部分人是如何学习的,也许就像下面这样的。
“晚上吃完饭, 看完电视, 看看手表,啊,已经很晚了, 可要看的书,要做的功课,还没做呢! 开始沉思。。。。。。10秒后,嗯, 没关系,还有明天呢,明天肯定会看书 ”
“第二天,一觉睡到大中午, 吃完午饭,又看了集美剧, 想起了要看书,于是,泡好了新茶, 铺开了书本, 准备了高档的笔记本,正襟危坐的要开始看书了”
“时间滴答滴答 。。。。。半小时后,拿起了手机把朋友圈,知乎,豆瓣,微博 刷了遍, 于是。。。。。。。一小时过去了, 开始看书”
“在看书-刷手机-看书-溜达-看书-吃零食-刷手机-看书。。。。。。。的循环中,半天过去了, 书大概翻了个10几页”
于是,我们都花了一些时间, 看了些书, 只是把书本前面的部分翻了一遍又一遍
WHY?
也许是书的内容很枯燥, 也许是我们不能专心, 但更深层次的原因是我们不感兴趣, 这个过程没有吸引我们。
我们是否思考过自己是如何学习的? 学习真正的含义是什么 ? 我们几乎都是下意识的倾向学习我们感兴趣的东西, 我们很容易记住竞技游戏中每一个技能, 每一个操作。 我们全身心的投入其中。 如果仅仅是让我们去背下来这些技能,操作,过不了多久,我们可能会忘记的一干二净, 可当我们亲自的玩几遍, 我们就记住了。 如果再进一步,教给别人怎么玩, 我们的理解会更深,记的更牢了。 尽管每个人的的学习风格千差万别,但是通过动手实践和教会他人,我们能学的更好,
再进一步,我们也许坚持下来,看完了书,看完了教程, 但还是没有学会, 举个例子, 你可能看遍了教你如何正确骑车的书,也看了别人汽车的视频, 也培训了正确骑车的机械原理,但那时你从来没有骑过自行车, 那么当你第一次骑车的时候你一定会摔倒,你可能无所不知,熟悉汽车的机械原理,知道哪种自行车最好,但是直到你将自己所学的东西勇于实践,你才算真正学会了骑自行车。
同理, 许多软件开发人员拿起一本关于编程语音或者框架的技术书, 从头到尾地读上 一遍, 就像奢望他们能吸收其中的所有信息吗? 最后的情况可能是借助这种方法,你能快速积累该主题的全部信息, 但你仍然没有真正的学会它。
实践! 这也许才是学习之道。
实践可能是最好的学习知识的最后方式了, 在你还不能了解某个主题的全部信息时,实践让我们学会如何操作, 进而发挥自己内心深处的创造力和好奇心,这是初级实践。 一段时期的初级实践过后,我们理解了主题的主要信息后, 转而了更深层次的高级实践, 这个阶段,我们才真正的掌握了知识, 吸收了更好的信息,思考更有意义的事情。
如何实践呢? 不妨尝试下 ”十步学习法”。
《软技能- 代码之外的生存指南》这本书的作者 John Z. Sonmez,提供了一种他归纳的可重复自学体系 “十步学习法”, 其背后的逻辑是,解决自学面临的3个主要问题:
1. 如何开始
2. 学科范围
3. 基础知识
学会 “如何开始学习一门技术“ 可以说是一项挑战,而且往往能难找出那些所谓” 篇幅只占20%, 然而有效性却达到80%” 的内容。 另外, 要总结一门技术的应用广泛程度的简单描述,是很难的, 通常你需要阅读一本一整本书甚至几本不同的书籍之后才能获得此信息。
“十步学习法“ 体系:
第一步 : 了解全局
第二步:确定范围
第三步:定义目标
第四步:寻找资源
第五步:创建学习计划
第六步:筛选资源
第七步: 开始学习,浅尝辄止
第八步: 动手操作,边玩边学
第九步: 全面掌握,学以致用
第十步: 乐为人师,融会贯通
”十步学习法“的核心点是,”聚焦学习范围,让你关心学习范围“, 最终学会如何自我探索,主动教学。
第一步 : 了解全局
了解全局很难, 因为存在 ”未知之未知“ ,即 你根本不知道自己不知道。 有很多开发人员将”未知之未知“留在将来学习,这样可能会导致学非所需, 要么力不能及。
探究某个主题之前,对其有所了解,这一点非常重要。 你需要对自己所学的有一个基础的理解, 通常可以通过网络搜索来完成大部分的研究, 如果碰巧有一个该主题的书,你可以大致了解下其介绍内容, 粗略的浏览一下内容,但不要再这一阶段耗费大量时间。 我们这一步的目的不是要掌握该主题, 而是对这一主题的相关内容有一个全局性的了解。 比如:该主题是要做什么的, 其范围有多大。
第二步:确定范围
学习过程中,大家很容易犯的一个错误就是试图解决太大的问题而把自己搞得不堪重负,例如: 全面掌握物理学是不切实际的。因为这一主题太过庞大,也不够聚焦,你不可能在有限的时间里学会与物理学有关的一切--穷尽一生也没可能, 因此, 你需要明确自己的学习范围,让自己的关注点落脚到更小也更可控的范围里.
下面的表格,看如何将庞大的主题分解为小而聚焦的主题
| 初始的主题 | 可以分解为子主题 |
| 学习C# | 学习C# 语音的基础知识,掌握如何创建一个简单的控制台程序 |
| 学习摄影 | 掌握针对对人像摄影的数码摄影知识 |
| 学习Linux | 了解如何设置 和 安装Ubuntu Linux, 以及如何使用它的基本特性 |
另外,这一步明确范围要考虑时间因素。
第三步:定义目标
在全力以赴之前,明确成功的标准很重要, 好的成功能给出一个正向反馈, 描绘成功的样子有很多的积极意义。好的成功标准应该是具体的,无二义性的。
下表是一些的 好的成功标准,和不好的成功的标准 。
| 不成功的标准 | 好的成功标准 |
| 我可以使用我的数码摄像机拍出好的照片 |
我可以使用我的数码相机里面所有的功能,能够清晰地描述这些功能是什么, 并且知道如何何时何地地使用各种功能
|
| 我学习了关于C#语言的基础知识 |
我可以利用C#语音的主要功能写出一个小的应用程序
|
| 我知道如何使用HTML去构建一个网页 |
我可以使用HTML5 在网上为我自己创建一个主页,展示我的简历和我的代表性工作
|
好的成功标准也能让你向着既定目标不断前进。
第四步:寻找资源
学习资源应该是多种多样的, 现在互联网上各种资源随处可见, 你几乎可以针对自己感兴趣的任何主题,找到大量资源。
信息来源:
- 图书
- 博客文章
- 在线视频
- 专家,或者对你所想要学习的内容已经熟知的人
- 播客
- 源代码
- 示例项目
- 在线文档
第五步:创建学习计划
学习是一个自然的过程, 从A开始,到B ,再到C , 这个顺序本身对学习的价值不大, 但你需要找出最短时间内A-Z 的正确路径, 并且到底沿途的重要地标。
打造自己的的学习计划,一个好方法是观察别人是如何教你感兴趣的主题的, 翻看第四步找到的图书资源, 如果5位不同的作者都把内容分解为相同的模块和顺序, 那我就会遵循这一的方法制定自己的学习计划。 但并不意味着你只要复制一本书的目录就可以称为其为自己的学习计划了, 有的书的内容超出你的需求, 有的书的结构很差劲, 通览你收集到的全部资源, 你就对自己需要哪些内容以及如何组合这些内容有更清晰的认识。
第六步:筛选资源
通常,为了学习一个主题, 看 10本书, 50篇博客,是不现实的, 并且其中包含大量重复内容, 你需要做的是精简, 在你第四步找到的资源里,找出哪些能覆盖你的学习计划,你还应该看看评论, 找出其中质量最高的资源。
一旦完成这一步, 你就可以准备前进到学习计划中的第一个模块, 在你试下自己的目标之前, 你还需要为每个模块重复第7步到第10步。
第七步: 开始学习,浅尝辄止
大多数人在学习的过程中通常会犯两类错误: 1,第一种是知之不多的情况下, 盲目开始, 即学的太快 2, 第二种是在行动之前准备过多, 即行动太晚, 要在这两者之间取得平衡, 这一步在于过犹不及,你会很快就失去自控力,开始消化计划学习中列出的所有资源, 但是 , 你会发现,如果你能经受住这样的诱惑,你会取得更大的成就,你要专注自己所需的, 能在下一步动手操作的最小量的知识, 你可以浏览参考材料, 或者每章的摘要,或者各种简介, 这些信息足以让你对自己要做什么有基本的认识。
第八步: 动手操作,边玩边学
在这一步,你无需提前了解全部内容, 你要做的首要的一件事是亲自操作和亲身体验, 采用这种方法,你通过探索和实践进行学习, 在操作的过程中, 你的大脑会自然的产生各种问题, 它是如何工作的, 如果我么做, 会发生什么, 我该如何解决这个问题? 这些问题引导着你走向真正重要的方向, 当你回过头寻找问题的答案时, 不只是这些问题引刃而解, 而且你记得的东西比你学习的东西要多得多, 因为你所学到的都是对你很重要的东西 。
第九步: 全面掌握,学以致用
好奇心是学习特别是自学的重要组成部分, 当我们还是孩子的时候, 我们就处于主要由好奇心驱动的快速学习期, 我们想知道世界是如何运作的, 所以我们提出问题, 四处寻找答案,借此来了解我们所处的世界, 但是,随着我们日渐长大,大部分好奇心也随之消失, 我们把世界上的一切看着理所当然,结果,我们的学习放缓, 我们觉得教育非常枯燥, 并不令人着迷。
这一步的目标就是让我们找回好奇心驱动的学习, 这第8步中, 你通过动手操作发现了一些尚未找到答案的问题, 现在,是时候回答这些问题了, 在这一步中, 你要利用先前收集到的所有资料, 今日深入学习。
为了有效利用自己所选的资料,为上一步产生的问题寻找答案, 阅读文字, 观看视频, 与他人交流都是必要手段,这能让你沉浸在学习材料中, 尽可能的汲取知识。
不要害怕回头再去操作, 付出更多, 因为这不仅能让你找到问题的答案, 也能让你学到新东西,给自己足够多的时间去深入理解自己的主题, 你可以阅读,可以实验,可以观察,也可以操作。
不过请记住,, 你依然没有必要把收集到的所有资源全部仔细看一遍, 你只需要阅读或观看与当前所学相关的部分, 我们很少有足够的时间把一本书从头读到尾, 这些资料只是帮你自学, 基本上你可以以解决在动手操作之中发现的问题为主要目的。
最后, 千万不要忘记了, 你在第3步中定义的成功标准, 试着把自己正在学习的内容与最终目标关联起来, 你掌握的每个模块, 都应该以某种方式推动你向着终极目标前进。
第十步: 乐为人师,融会贯通
大多数人都不敢为人师, 当你在思考自己知道的东西(或者你认为自己知道的东西)是否值得教给别人的时候,很容易陷入自我怀疑,但是,如果你想深入地掌握一门学问,想对这门学问做到融会贯通,那么你就必须做到 “好为人师”, 除此之外,别无他法。
在现实中, 你往往只要超前别人步, 就可以成为他们的老师, 有时候, 比学生超前太多的 “专家”反而不能得心应手地 ”教“,因为他们无法与学生产生共鸣, 他们忘了初学者是什么样子, 很容易专注于他们认为简单的细节。
在这一步你要走出自己的舒适区, 将自己学到的知识教给别人, 要想确认你掌握了某些知识, 这是你唯一的办法, 同时在你教别人的过错中,也能启动查缺补漏的作用。
你可以有多种方式将自己所学的教给别人。 重点在于你要花时间将自己所学的东西从你大脑提取出来, 以别人能理解的方式组织起来, 在这个过程中,你会发现,很多你自以为掌握的知识,其实并没有摸透。
教授知识的途径
- 写博客
- 创建教学视频
- 发表演讲
- 与朋友或爱人进行对话探讨
- 在在线论坛上回答问题
以上内容 参考自 《软技能- 代码之外的生存指南》

浙公网安备 33010602011771号