程序员学习能力提升三要素

    |     2015年4月21日   |   观点   |     0 条评论   |    1158

IT 技术日新月异,新技术层出不穷。具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。大学毕业生所学到的知识,毕业之后 2 年内有效的不过剩下 5%——软件行业里,这种形势更明显。

我们赖以立足的,不在于现在掌握了多少知识,而在于学习能力有多强。一个善于学习的人,首先应该是一个善于读书的人,懂得如何高效地学习,并且拥有良好的心态。作者结合多年经验,把提高程序员学习能力收成三个要点。

一、要善于读书

买书是最划算的投资

古人云:「书中自有黄金屋,书中自有颜如玉。」先贤们早认识到,买书是最划算的投资。作者刚出道时工资微薄,向主管抱怨书贵、这点工资连饭都吃不起。主管说:「不要吝惜买书的钱,宁可忍着不吃饭,也不要忍着不买书,因为买书是回报率最高的投资。」

后来看到喜欢的书再没有手软。通过不断学习,开发能力提高,工资也大幅提高。一年后,一个月工资的涨幅,就足够买两年的书。一本书哪怕只有一页纸有用,潜在价值也会远远超过书本身的价格。当然,书不在多:踏踏实实消化掉一本好书,比泛泛而读 10 本普通书要有价值得多。

多读经典,也分清三类书

市面上给程序员读的书种类非常丰富。人生有涯,只能有选择性地看。软件开发方面的图书大致分为三类:

  • 浅显的入门类:标题往往是《XX 天精通 XXX》《XXX 从入门到精通》《XX 开发实战》,通常从软件安装讲起。有人批评这类书为烂书,并不公平——至少可以从中学到一些入门招式。它一般也就只能看 21 天,过后可以扔到废纸堆。刚起步买一本就够;如果你善于使用搜索引擎,几乎没有买这类书的必要。
  • 国内外高手写的实战类:实战性强,把技术和原理讲得很透彻。例如《Windows 环境下 32 位汇编语言程序设计》《深入解析 MFC》《Delphi 深度探索》《深入浅出 WPF》《深入剖析 ASP .NET 组件设计》。以前多从国外翻译或从台湾引进,现在国内高手越来越多。每个方向看两三本并通过实践消化掉,你会成为一名优秀的程序员。
  • 国外大牛写的揭露本质、有丰富思想的书:所谓经典,例如《代码大全》《编程珠玑》《设计模式》《重构》《代码整洁之道》。经典书像一个有深度、有思想的朋友,每次阅读都会有新收获,具有真正的收藏价值。它是无数人沙里淘金帮你挑选出的结果。

阅读经典并不是一件容易的事情。读者需要有丰富的开发经验,才能与作者产生共鸣。如果一本经典书你看得很辛苦,很可能是功力未够——不要着急,不妨先束之高阁,多看看实战类图书,过一段时间再回头,也许会有新的惊喜。

不要在上班时间看书

善于学习的人要善于利用一切时间。雷锋说过:「时间就像海绵里的水,只要愿意挤,总还是有的。」但从上班时间里挤时间学习时,千万注意:不要在上班时间看书。

上班时间看书不但敏感,而且非常吸引眼球。老板心里不爽:「我给你钱是让你来工作的,不是来学习的」;同事也不爽:「我们工作都做不完,瞧,这小子真闲啊」。用不了多久,你就会成为被众人排斥的异类。

二、要高效学习

只学习与工作相关的东西

不少程序员一会儿学 C#,一会儿学 Java,看了最新排行榜又觉得该学 C++。左抓抓、右挠挠,只会更痒。学习最忌三心二意:「伤其十指不如断其一指」,每门都学一点,还不如专心学好一个方向。

最实际的方向,应该跟着工作走:工作需要什么,我们就学什么。好处有三:可以集中精力钻得更深——「百招会不如一招绝」,《天龙八部》里慕容复武功博学,最后还是被只会一招六脉神剑的段誉打得落花流水;可以学得更快更深入,因为马上能在工作中运用、检验效果;学习和工作结合后,工作时间也成了学习时间,就突破了「三个 8 小时」的限制——决定人生高度的那 8 小时之外,工作中的很大一部分同时成了宝贵的学习时间。

问题是最好的学习机会

日本经营之神松下幸之助说过:「工作就是不断发现问题、分析问题、最终解决问题的过程,晋升之门将永远为那些随时解决问题的人敞开着。」工作过程中有问题是正常的,没有问题才是真正的问题。

现实中很多人千方百计回避问题,上司安排艰巨任务时也想尽办法推托。殊不知,对个人而言,问题其实是最好的学习机会。愿意接受困难工作的人,能力会越来越强,因为他们在克服困难的过程中取得了巨大进步。

三、织网式学习

知识的广度和深度都很重要。作为程序员,能深入把握技术细节,是写出优质代码的保证;对于项目经理,知识的广度更显重要——项目中碰到的问题往往具有综合性,只有具备广博的知识,才能快速分析和定位。在程序员成长的道路上,必须有意识地扩大知识面,形成更完善的知识体系。

作者曾经编写过一个网络信息采集软件:可以从具有列表页的网站中按字段设置采集信息,支持自定义字段、页面多级关联、下载附件、支持多种数据库、可视化定义等。刚开始以为只是一个比较大的功能点,后来发现这个不起眼的功能关联着大量知识点。所谓织网,就是从一个真实问题出发,把周边技术点慢慢连成一张网,而不是东一本西一本地飘。

要素 该做 不该做
读书 入门一本即可;每个方向两三本实战;功力够了读经典 囤 21 天系列当收藏;功力未够硬啃经典;上班时间摊开书
方向 跟着工作走,立即用、立即检验 跟着排行榜换语言,每门都学一点
问题 把困难任务当成学习机会 回避问题、推托艰巨任务
知识结构 从一个真实功能把周边知识点织成网 只见一个功能点,不见关联技术

一句话总结:程序员的核心竞争力是学习能力——会选书、跟着工作学、把问题当教材,再把一个功能点织成知识网。

转载请注明来源:程序员学习能力提升三要素
本文链接地址:https://ai.zhousir.top/?p=530
回复 取消