2009年1月19日

如何成为优秀开发人员[2]:关于自学能力

  通过本系列上一篇帖子,你应该已经搞清楚自己是否【确实】有兴趣从事软件开发工作。现在我们来聊一下开发人员的自学能力(终于开始介绍实质性的东东了)。


★自学的重要性


  为啥我把“自学能力”排到“兴趣”之后捏?因为大伙儿都明白,IT这行知识的更新速度巨快。有很多新玩意儿在你读书的时候还没有发明出来呢?退一步讲,即使某个新技术在你上学的时候已经发明出来,你的计算机老师也未必会教你(或许他/她自己也不懂)。再退一步讲,即使你上学时的计算机老师比较牛,会把当时新出来的某个技术教给你,但是你将来工作中需要用到的新技术未必就当年老师教给你那个......
  上面啰嗦了一大堆,无非想说,你工作中终归会需要用到某个新技术是你以前没学过的。所以,自学能力是非常重要滴。以此相对照的是:国内的大多数开发人员都比较缺乏自学能力(这个也跟国内的教育体制有关)。所以,对于立志成为优秀开发人员你,需要先搞定自学能力这个东东。


★自学的主动性


  我把国内的开发人员按照自学的主动性不同,分为如下几类(你顺便想想自己属于哪一类):

◇抗拒自学者


  这类人不愿意自学(部分人是由于懒惰、另一些是由于抵触新事物)。当工作中要用到某项新技术而需要自学时,他/她就找若干理由推诿。我估计这类人占的比例不多,万一你正好属于这种人,那还是趁早改行,别在这个行业浪费青春了(因此也别再继续看这个帖子了)。

◇被动自学者


  这类人平时没事不会想到去自学新东西。只有当上司逼着他去学某某技术,他才勉为其难地去学。我建议这类人也不用继续看这个系列的帖子了,找个凉快的地方呆着去吧。

◇需求驱动型自学者


  这类人自学的动机和方向是基于需求驱动。比如因为工作中要用到 XX框架、XX库、XX软件,然后就利用业余时间找资料去看。如果你属于这类人,就得考虑考虑向第4类人转型。

◇计划型自学者


  这类人自学的动机和方向是基于自己的规划。【定期】看看自己的知识结构有什么缺陷、将来自己想朝什么方向发展、最近哪个新东西将来会用得上 ......然后给自己定一个学习计划。
  如果你属于这类人,恭喜你。


★自学的常用招数


  现在,咱们来聊聊和自学有关的几个【常用】招数。

◇搜索引擎


  由于使用搜索引擎是互联网时代的必备基本功,搜索引擎的重要性我就不多废话了(千万别跟我说你还不懂得用搜索引擎啊)。

◇百科类网站


  此处所说的“百科类”例如:中文维基百科百度百科 ...
  百科类网站,顾名思义,就是拿来当百科全书使的。当你听说某个时髦的新术语,但又不甚了解,这时候就可以用上百科类网站了。各种专业术语一般都可以在百科类网站上查到比较具体的解释。不过百科类网站的功能也就仅限于此,当你需要深入了解某个技术时,它是远远不够的。

◇订阅“BBS、Mailing List、Blog”


  这3种东东的特点是具有一定的交互性,而且大都支持软件订阅。通过订阅一些专业的、针对某个领域的“BBS、Mailing List、Blog”,你可以了解该领域的实时动态、了解该领域的热点话题、了解该领域的发展方向。你自己如果碰到疑难杂症,还可以在上面找人问(运气好的话还能交几个朋友)。
  为啥我特地强调【订阅】捏?因为使用订阅可以让信息自动跑到你面前,省去了打开浏览器挨个访问网站的麻烦(因此也节省了时间)。这3种东东的局限性是:难以通过它们【系统性】地掌握某个比较复杂的技术(比如你要学习某个有一定复杂度的编程语言)。

◇看书(包括电子书和纸版书)


  当你要系统性地掌握某个比较复杂的技术时,首选方法是:找一本针对性的好书。由于每一个具体的领域,都有N本书可供选择,这时候如何取舍就非常重要。如果你选的书比较差,不但看起来吃力,甚至会把你带到沟里。这时候你就得利用搜索引擎或者专门的网站(例如豆瓣亚马逊)来识别好书与坏书。关于如何鉴别一本书的好坏,我在帖子《如何选择 IT 技术书籍》里有深入讨论,这里就不再啰嗦了。
  再来说说电子书和纸版书。首先电子书的资源非常多,大部分国外出版的IT书都可以在Internet上找到免费的电子版。另外还有电子书还有如下好处:便于携带、能全文搜索、能共享、能备份、还省钱。从目前的发展趋势看,电子书占据主流地位只是一个时间问题。基于上述理由,所以我很喜欢看电子书(可惜大多数人都没有看电子书的习惯)。你如果还没有形成看电子书习惯的话,要开始培养了。
  说完电子版和纸版,再来聊聊中文版和英文版。英文版相对中文版的优势就如同电子版相对纸版的优势一样明显。国内懂开发又文笔好的IT作家寥寥无几,导致国内出版的IT技术书籍要么翻译国外(翻译过程一般会导致1-2年的滞后、翻译质量还未必好),要么粗制滥造。所以,你如果不能流利地阅读英文书,赶紧恶补英语吧!

  上述4个招数,如能熟练运用,从此自学无忧矣!


下一个话题,准备聊一下“设定个人发展目标和计划”。

24 条评论:

  1. 关于自学能力这个问题
    恰好这几天我也在思考当中,文中的很多东西恰好和我实践到的东西相互映照,让我有些豁然开朗的感觉
    比如,对于电子书和纸版书的选择问题,正好和我这几天搜索比较好的技术书籍的过程一样,我也慢慢有了这样的感觉
    国内的技术书籍的确不怎么样,实在让我郁闷
    再有就是amazon的评论系统做的实在是很好,十分有用
    不过可惜的是网上搜索到的经典书籍都有点老了,而新出的书却看不出来是否好,这和博主说的过时时间实在是有点冲突

    回复删除
  2. 楼上的同学,我建议多读一些不容易过时的经典好书。按照我在“二八原理的系列帖子”里面提到的,少数经典的好书产生的效果,顶得上多数平庸的书。

    回复删除
  3. 嗯,这个问题我也认识到了
    于是努力地选择了几本经典名著,列了计划
    准备开始学习
    博主加油啊,之后一定经常关注你的博客

    回复删除
  4. 大伙儿的鼓励就是我的动力 :)

    回复删除
    回复
    1. 2年前大学同学推荐博主后,一直默默关注中。本人软件工程专业,今年刚刚毕业,感觉自己在思维能力、政治常识、软件开发等方面都有非常大的提升空间,会一直关注、支持博主滴 ~ 点个大大的赞!!!

      删除
  5. 我想系统的学习JAVA编程语言,但找不到一本好的关于JAVA 电子版的书,希望楼主推荐一下,谢谢啦~

    回复删除
  6. 楼上的同学,《Core Java(卷1)》或者《Thinking in Java》都可以看一下。
    如果你英文还行,建议看英文电子版。

    回复删除
  7. 阅读中……
    学习中……
    认知中……
    成长中……
    进步中……
    …………

    回复删除
  8. 楼主 看过你的博文之后感触 很深!!
    挺感谢你的!现在我还是名大二的学生
    对java比较狂热,感觉自己学的挺快,
    但是越学感觉越飘,真的!!也越感觉在不咋地
    看过你的美文之后,我觉得,我知道该怎么做了。、

    非常谢谢!!
    你的文章 我决定转载

    回复删除
  9. java的数据挖掘,楼主有研究吗?

    回复删除
  10. 关于数据挖掘,以前在项目中有用过。算是略知一二吧。
    不过数据挖掘,主要是它的算法思想,和具体的语言没有必然联系。

    回复删除
  11. 少数经典的好书产生的效果,顶得上多数平庸的书。
    博主的博文也挺28的哈~

    回复删除
  12. 关于电子书,感觉记笔记不是很方便,习惯在树上写写画画的就不行了,所以经典好书还是买实体书

    回复删除
  13. 正常人类,特别是平均智商较高地区的男性,都具有强烈的主动学习的欲望,这是人类的本能,上帝造人时便赋予的,只实现生活中,会出现阻碍学习的力量,特别是在中国,这种力量简直摧毁一切,所以与其说提升学习能力,不如想办法扫清学习障碍,不过大毒瘤不到,看样子是扫不清的,所以兲朝永远就是个山寨国

    回复删除
  14. 楼主所说的自学能力正是我现在所百思不得其解的问题,现在又两种情况一种是老师教的东西很少,我们有不会的问他,他就说自己谷歌,锻炼自学能力,一种是老师很认真的教学生,把他所有自己在网上的经验,具体点,怎样翻墙,怎样去学习,包括怎样使用谷歌。前一种老师的学生的确让学生锻炼自学能力,后一种老师讲的很细,很好。我认为楼主是个很有见解的人,请您来指点一二。晚辈的向您学习。

    回复删除
  15. TO 志涛陈
    该不该向老师提问,取决于提问的问题类型。
    俺之前写过一篇博文:
    《学习技术的三部曲:WHAT、HOW、WHY》
    http://program-think.blogspot.com/2009/02/study-technology-in-three-steps.html

    假如俺是老师,学生如果问 WHY 类型的问题,俺会很乐于解答;但如果学生问 WHAT 类型的问题,俺就会让他/她自己去 Google

    回复删除
  16. The article on the activity ѕhould be
    tо оverсome the two banker's a few greeting card hands and also two greeting card palm. Likewise a new online casinos slot machines for real money may perhaps request an individual if you'd lіke a sрacе
    with the night enѕurе prior to agгеe to the room it is a
    free of chargе spacе.

    回复删除
  17. 俺属于需求驱动型自学者, 也想向计划型自学者转变, 但是有些阻碍。感觉不会的东西还很多,如何系统的检查自己的知识结构缺陷并且补习,还没有好的具体的方法。就像欠了很多人的钱,都记不清有哪些人了,当有钱的时候也不知道该先还哪个好。

    计划自学的效率也远远低于驱动自学,前者学东西不知道啥时候能用上,后者则马上能用上,而且因为用了记得就牢,而且有了实战经验,对学的东西的理解也深刻一些。

    回复删除
    回复
    1. TO FkGCD
      你问道:“如何系统的检查自己的知识结构缺陷并且补习”
      关于这个问题,建议看看俺前几个月的博文《[url=http://program-think.blogspot.com/2013/09/knowledge-structure.html]如何完善自己的知识结构[/url]》

      你提到说:
      “计划自学的效率也远远低于驱动自学,前者学东西不知道啥时候能用上”

      对于“计划型自学”,其实也可以自己给自己安排一些实践。
      通过实践,就可以加深印象,也可以发现自学过程中的某些欠缺之处。

      删除
  18. 需求驱动型学习者.要往计划型自学者转型.
    感觉好烦躁,楼上朋友讲到,学的不知道什么时候用.实际心里面是在说,学这个没用的. 学习过程的正反馈,也没办法建立.每次都变成 逼自己学习.然后逼急了就想吐.以上为循环语句.
    求相关见解.
    另, 兄长认为计划型自学者在优秀开发人员和普通开发人员中.各占多少比例?

    回复删除
  19. 想问问博主及各位热心读者:
    “需求驱动型自学”是否在“时间成本”方面更有优势(用来对付“重要但不紧急”与“不重要且不紧急”这两类学习目标)
    (可供参考的相关博文:[url=https://program-think.blogspot.com/2019/10/Systematic-Learning.html#head-2]1[/url]、[url=https://program-think.blogspot.com/2015/02/Is-Blogging-Dead.html#head-3]2[/url])

    回复删除