IT人学习方法论(二):学习误区

之前我们讨论了“学什么”的问题,今天我们来谈一谈“怎么学”的问题。磨刀不误砍柴工,我们要提高学习效率,首先需要找到自己学习方法上的误区。

一些常见的学习方法误区

1)资料导向型

现在就停止阅读这篇文章,打开“你的电脑”,看看一你的硬盘上是否一个名为“XX资料”的文件夹,我相信,这里面一定保存着大量你精心收集的电 脑教程、电子书、培训材料、课程视频等等。我敢打赌,绝大多数的IT人都会在自己的电脑上保存一个或者几个这样的文件夹,其中内容往往经过精心分类,数量 在几GB甚至几十GB之巨。请再扭头看一看你的书架,你所购买的各类计算机书籍、杂志,是否已经把书架堆满了?你买的书籍种类,是否已经涵盖了从编程、 Windows管理、Unix/Linux一直到美工和PhotoShop?

这是很多人都会经历的一个“资料导向型”的学习误区。你现在可以仔细统计一下,你电脑中的资料和书架上的书籍,有多少是从来没有看过的?有多少是看过超过1/3的?又有多少是真正看完并且对你的技术和工作产生了实质性帮助的?

我这里想提出一个概念,叫做“有效学习时间 ”,意思是说在学习所花费的所有时间中,对自己掌握新知识、大脑思考和学习新技术、动手操作并且积累经验直接有关的时间 。回顾我们的学习习惯,当开始一项新知识或者新技术的学习时,我们往往是从买书和在网上收集资料开始,据我统计,在学习时,我们有50%时间在收集资料、30%时间在整理资料、20%时间在翻看资料 !也许这样的数字有些夸张,但是你可以回顾一些自己最近的学习过程,看一看是否满足这样的80/20分布,统计一下自己的“有效学习时间”是多少。

“有效学习时间”的多少,直接决定了你的学习结果和效率。有的人在IT行业沉浮多年,涉猎领域广泛,电子版的资料和各类的图书“汗牛充栋”,但 是常常觉得自己非常迷茫,很多技术都不够精通和深入。这时,需要从学习的基本效率和学习的有效时间上反思一下了。保存在硬盘和书架上的并不能直接成为你的 能力,不是硬盘有多大,知识就有多丰富;也不是书架有多高,技术就有多牛 。你需要大量的“有效学习时间”,把这些转化为自己的积累。我说的语言可能非常直白,甚至不给人留面子,但却说的是一个朴实的道理。

2)似懂非懂型

这种类型,换句话说,就是不求甚解。一些IT的概念和产品,往往是比较容易理解的,粗略的翻译一下书,心里也许就知道个十之八九了。可是,IT 技术和产品往往是跟特殊的环境和场景相关联的,懂得概念,并不见得能够在应用上融会贯通。有些朋友看书非常快,不留意书中的细节,只是圂囵吞枣,一目十 行,把一些大概的知识点和概念记住了,就以为已经掌握了。

我写的这些误区,其实很多都是自己经历过的。以“似懂非懂型”这个举个例子,我讲一个我自己经历过的故事。刚毕业的时候在微软的技术支持部门工 作,起初是负责Office/Outlook产品的支持,后来逐渐开始接触Exchange Server。当时书看了不少,各种试验没少做,客户的问题也能大概的解决。后来曾经有一个机会,去面试Exchange产品的高端技术职位,本以为自己 对这个产品已经非常熟悉,可是没想到被真正的专家一再考问,很多细节立刻变得模糊,对一些自己以为非常清楚的模块也没有办法说的太深入。我想大家也许都有 这样的经历,认为自己已经懂了,或者觉得这些不太重要,但是就是这些似懂非懂,或者你忽略的地方,在某个特殊时候会跳出来找你的麻烦。“出来混得,迟早要还”,这真是至理名言阿。似懂非懂,归根结底还是不懂。

因此,如果你认定要学好一门技术,就要抱着打破沙锅问到底决心,不给自己的知识结构上留下漏洞。 资料导向型这个误区说的是学习要有足够的效率,要把握“有效学习时间”,似懂非懂型这个误区,就是说学习的结果和质量,花费了足够的有效学习时间,必须保 证产出的结果是一个过硬的,经得住检验的知识结构。

3)丢西瓜捡芝麻型

前面说了学习需要建立一个“经得住检验的知识结构”,这并不等于你需要对所学技术或者产品的每一个细节都烂熟于心。过于关注细节,就犯了“丢西 瓜捡芝麻”的错误了。有些人学Linux,要对每个命令的参数都仔仔细细的背下来,有的人做Windows的网络管理,却非要花时间搞明白活动目录的数据 库结构,甚至有人曾发email给我,说决心要把Exhcange的Database接口和物理结构给反向工程出来。

想想前一篇blog中我引用庄子的话吧,“吾生也有涯,而知也无涯,以有涯随无涯,殆也 ”。在这些细节问题上死磕,无异与浪费生命啊。话又说回来,到底如何定义西瓜和芝麻?学习,到底需要学到什么样的深度?这其实也是一个非常难以把握的问 题。我们在前一篇blog讨论了“心法”和“招式”,在具体的一项技术或者产品的学习过程中,如何定义“西瓜”和“芝麻”呢?我是这样理解的:

西瓜,就是宏观层面的概念、方法、最佳实践,一些短期之内不会随着产品的变化而变化的知识;一些可以活学活用,体现产品设计思想的理念;它可以是一些技术细节,前提是掌握这些细节是会对产品的设计、优化或者故障排除等方面发挥作用的。

芝麻,往往是一些需要机械性记忆的信息,或者一些被厂商封装在“黑盒”中的部分。把Linux的命令悉数的背诵下来,并不能让你成为专家, 反向工程厂商的“黑盒”,也只会做一些徒劳无益的努力。

读到这里,可能读者对“芝麻”和底层原理这类“心法”级别的学习会产生混淆,深入地探究一个系统的内部,难道不是提高技术能力的方法嘛?其实, 这是有区别的。我前文所提到的底层原理这类“心法”级别的知识,是指独立于任何厂商产品的理论知识,是放之四海皆准的真理,是现在、未来,当前版本和以后 N+1版本都用得着的知识;而我说的“芝麻”,是指特定产品的细节和被厂商有意封装底层部分,是那种今天学完,明天就过期作废的东西。比如说,学 Windows,你可以看操作系统的教材来获得“心法”,这样的知识,即使微软出了Windows 3000,你也用得上;但是如果你去反向工程ntoskrnl.exe,即使搞出了一个所以然,只要微软发一个Service Pack,你掌握所有的东西就都变了,你也就陷入了丢西瓜捡芝麻的误区了。不知道我这样,是不是把这个问题说明白了。:-)

上一篇:纯净版linux (debian)挂载VirtualBox共享文件夹


下一篇:React架构、设计思想