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

一些常见的学习方法误区

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,你掌握所有的东西就都变了,你也就陷入了丢西瓜捡芝麻的误区了。不知道我这样,是不是把这个问题说明白了。:-)

IT人学习方法论(二):学习误区的更多相关文章

  1. thrift学习之二----学习资料积累

    自己没有仔细安装,从网上搜的安装技术文章,在此做个备份,以防后面用到: http://blog.csdn.net/hshxf/article/details/5567019 http://blog.c ...

  2. JVM学习——学习方法论&学习大纲

    2020年02月06日22:25:51 完成了Springboot系列的学习和Kafka的学习,接下来进入JVM的学习阶段 深入理解JVM 学习方法论 如何去学习一门课程--方法论 多讨论,从别人身上 ...

  3. IT人学习方法论(一):学习方向

    07年的时候曾经讲过一节Webcast,名叫<使您成为Windows专家的一些学习习惯 >.直到最近,还经常收到听众关于这一节课反馈和心得的电子邮件,可见学习方法论是大家非常关心的问题.因 ...

  4. IT人的自我导向型学习:学习的3个维度

    看到大家对我的文章赞了不少,看来大家还比较喜欢看.园子里的一些朋友和我说:”终于又看到你要在园子里发原创文章了.几年前就受益匪浅,经过几年的成长分享来的东西肯定也是精品.“ 感谢大家对我的信任,如果你 ...

  5. IT人的自我导向型学习:学习的1个理念和2个心态

    本文更新版本已挪至  http://www.zhoujingen.cn/blog/2484.html ----------------------------- 写这一个系列之前,我定位是与高效学习有 ...

  6. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  7. 新手学习WEB前端流程以及学习中常见的误区

    学习web前端编程技术肯定是以就业拿到高薪工作为主要目的的,可是高薪不会那么轻易拿到,这是一个最简单的道理.没有付出就没有回报,在整个学习web前端编程技术的过程中,你需要付出时间.精力.金钱.废话不 ...

  8. 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记

    注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...

  9. Java多线程学习(二)synchronized关键字(1)

    转载请备注地址: https://blog.csdn.net/qq_34337272/article/details/79655194 Java多线程学习(二)将分为两篇文章介绍synchronize ...

  10. ARM架构与体系学习(二)——3级流水线

    ARM架构与体系学习(二)——3级流水线 标签: 存储嵌入式汇编c 2012-04-18 00:44 5414人阅读 评论(4) 收藏 举报  分类: ARM7(16)  版权声明:本文为博主原创文章 ...

随机推荐

  1. 用 FragmentManager 替换时使用 GoogleMaps 崩溃 app

    我要用下面的代码来加载的片段的项已被选定在 NavigationDrawer,然而 MapFragment 包含它里面的谷歌地图片段和它崩溃后试图打开它第二次. 这里是我使用的代码: @Overrid ...

  2. iOS开发——UI进阶篇(十七)CALayer,核心动画基本使用

    一.CALayer简介 1.CALayer在iOS中,文本输入框.一个图标等等,这些都是UIView你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个其实UIView之所以 ...

  3. dispaly:table-cell,inline-block,阐述以及案例

    display:table 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符.dispaly:table-row 此元素会作为一个表格行显示(类似 <tr> ...

  4. phpcms如何判断用户是否登录

    首先要获取userid  <?php         $userid= param::get_cookie('_userid'); ?> 然后再判断是否为空 {if $userid}    ...

  5. 【Networking】gRPC golang 相关资料

    参考资料: Golang gRPC 示例:  http://www.cnblogs.com/YaoDD/p/5504881.html grpc golang学习心得(1)----安装与测试:   ht ...

  6. SQL 执行计划(二)

    最近总想整理下对MSSQL的一些理解与感悟,却一直没有心思和时间写,晚上无事便写了一篇探索MSSQL执行计划,本文讲执行计划但不仅限于讲执行计划. 网上的SQL优化的文章实在是很多,说实在的,我也曾经 ...

  7. SQL Server 流程控制

    流程控制语句: BEGIN ... END WAITFOR GOTO WHILE IF ... ELSE BREAK RETURN CONTINURE   1.BEGIN ... END BEGIN ...

  8. XML文件的读取----cElementTree

    XML文件如下: <?xml version="1.0" encoding="UTF-8"?> <tokenxml> <token ...

  9. adb 服务端口2037被占,导致adb和appium无法工作

    症状1: 命令行运行 adb 相关命令,提示如下: adb server is out of date. killing...ADB server didn't ACK* failed to star ...

  10. c# 获取系统版本,获取net framework 版本(Environment 类)

    1.获取当前操作系统版本信息 使用Environment.OSVersion 属性 获取包含当前平台标识符和版本号的 OperatingSystem 对象. 命名空间:  System程序集:  ms ...