那种情怀──论技术人的读书、学习与氛围
2016.01.09 10:47:00
我喜欢阅读技术书籍、掌握感兴趣的技术,过程中,也是有不少磕磕碰碰。而多年养成的积淀习惯,觉得应该对自己的读书与学习感触做个梳理。
这篇感悟,算是对自己心路历程的一个归纳总结。此外,也有不少人问我,读书应该怎么读才有效?这个问题还真是因人而异,我的心得,八成也只能是“仅供参考”而已。
一. 学习的前提
江水三千里,情怀两三行。读书与学习,也需要满满的情怀......
不得不说,我以前并未发现自己爱阅读,甚至在n年前跟LP谈恋爱时,还被LP说:“你这么年轻,又是学计算机专业的,还成天不读书不学习,怎么跟得上技术的发展呢?”嗯,这句话刺激到了我。
那时候,开发技术比较单调,IE又是一家独大,写Web基本上掌握好ASP就足够了,再深入点也就是添加点ActiveX控件,整点JavaScript跑马灯,做出来的效果在那个年代已算是“云兴霞蔚过钱塘”。
没有深入学习的动力和方向,也就不会想着去学习。被LP刺激后,我也想着总不能就这样安于现状吧?那时候互联网还很原始,上个网还要去图书馆拨号,一小时价格貌似挺贵,网速却赛似蜗牛。因此当时掌握知识的途径主要是一靠上书店发掘,二靠杂志报刊订阅。无意中,很巧合地在「电脑报」上看到了一块豆腐篇幅的PHP介绍,开源、Unix文化、C风格,冥冥中就感觉这东西比ASP有趣。说实话,那时还并未指望在工作中怎么去用到它,就抱着了解一下的心态,也有点儿“扮”给LP看的味道。
豆腐块大小的介绍怎能满足学习的需要?于是我就去书店逛了逛,发现了书店里唯一的一本PHP书籍── 《PHP 核心编程》 ,当时是PHP 3!
没想到的是,后续借助LAMP,开发出来的东西满足了大量的业务场景需求。当然,由于IE的垄断地位,很多时候还是离不开ActiveX的。但那时候的技术趋势已经逐步明显,互联网发展起来,号称响应互联网需要的Java技术包括Servlet/JSP也开始流行。这些都是后话,要花好多笔墨的,暂且不表。
回顾上述历程,我只想说明以下两点:
- 学习需要有驱动力。 这个驱动力也许是外部压力,也许是内在驱动,比如为了生活得更好一些,为了个人更好的发展,以及自身对技术的浓厚兴趣等等。否则,学习缺乏持久恒心。其间还涉及到一个个人安身立命与兴趣关系的话题,可参考我早前的这篇博文:「守住心中的一亩田」──“ 吃饭家伙优先 ,安身立命乃刚需, 温饱解决后才是考虑个人兴趣的时候,别本末倒置”;
- 浓郁的技术情怀──这点非常关键。 我至今仍对PHP充满情感,这种情怀很难说清楚,但大抵是源于初次遇见PHP时那种“一见钟情”的“震撼”。想想当年PHP 3的面糊式代码,以及PHP 4起OO的特性增强,到现在Laravel、Yii、FuelPHP等各种支持RESTful特性的PHP框架争奇斗艳,发现PHP也是蛮拼的...... 一个技术人,必须拥有技术情怀,才能在技术路上持久前进。情怀,说白了就是一门技术其所在社区、应用领域、带给你的价值与舒适度,以及技术风格等因素对你的综合影响力。 读书、学习,亦如此,有技术情怀,才能静下心来学习。
二. 如何读书与学习?
有了主观的态度,接下来才是各种动作。
我在读书和学习过程中,遇到的各种问题林林总总,归纳起来大致如下:
▶ 不知道怎么挑书、看哪些书,无从下手
这要分两方面看:
一是对自己需要掌握哪些技术没有清晰的认知,现在的技术流不比当年,各式各样的技术让人眼花缭乱应接不暇,如我在「守住心中的一亩田」一文中所讲:“每种技术看宣传看介绍都是美好而吸引人,如果只是为这些迷人的“噱头”所牵引,最终很可能热情无法持久,并要吃不少苦头”。这主要源于对技术流选择以及自身技术前途的茫然,一会儿想学C++,一会儿觉得大数据有前途,或者一会儿觉得MongoDB好,一会儿又发现MySQL新版本也支持JSON了。 这时候建议你好好梳理自己的选择,而且一旦敲定了方向就不要变了, 要知道现在的各种技术流已经不是一门语言这么简单了,几乎都有一系列的技术栈在对应,比如LAMP,掌握下去可是要花费大量精力和时间的,转变方向成本代价巨大,非同小可。技术选择,也需要有“曾经沧海难为水,除去巫山不是云”的情怀......
二是对各种琳琅满目的同质化书籍选择无从下手。光是Python的书就不下二十部,到底该选哪本合适呢? 嗯,现在的书评不能看,讲Python的书,评论却是快递包装质量很棒......囧rz......还有有的给5星有的给差评......那如何是好吖?这还真是个问题,建议:
- 看作者、看译者、看出版社口碑──这点比较主观和粗线条,但往往效果很直接;
- 看看有没有靠谱技术人的书评,有时还是能在网络上看到一些技术专家发表的书评的,这会比较靠谱;
- 别怕麻烦,尽可能去书店走走,翻翻看 ──这点对于同质化书籍的判断往往最有效,所谓同质化,就是阅读人群定位与内容大多重叠,选择时不知道哪本好。除了实体书的感觉,通过实地翻阅,相信能够帮助你做出相对具体的选择,这也是我喜欢上书店的原因之一。 这条是我认为最重要的 ;
- 若是翻译的书,则上Amazon英文站点看看原版书的评论,老外的很多书评很详细,也比较负责任;
- 上微博、微信、QQ问问一些有经验的专家。
▶ 刚开始看书时还好,但看着看着就发现思路混乱了,不是忘了前面,就是感到继续读下去比较吃力
依我的理解,如果就按着顺序一路看下去, 看到200页时,就会发现前面的好多概念都给忘掉了(而看英文版时,估计七八十页的时候就会有遗忘) ,而现在的技术书籍,很少就只有200页的。出现这种现象实属正常,人的接收和记忆都有个过程,那如何避免记忆丢失呢? 道理很简单,就是:“好记性不如烂笔头”! 要勤记笔记,比如我在阅读《css设计指南(第三版)》这本书时做的学习笔记:「选择符汇总」 。做笔记要把握好两点:
- 一定要 记自己的理解,特别是自己对问题点、混淆点、关键点的理解,也就是对自己有帮助的成分 。千万 不要记成了“流水账” ,那有点像把书抄了一遍,最终还是忘得快;
- 不要怕做笔记耽搁阅读进度 ,急于求成的结果必然是适得其反。
此外,大凡技术书,一般在前六章里,就把基础核心概念介绍得八九不离十了,再往后,就会转入增强的主题。而往往这时候是阅读的关键期,好比长跑运动员的“极点”现象,有一种坚持不下去的吃力感觉。但,没办法,你必须得坚持!如何坚持?且看:
- 把书的内容,按基础部分和增强部分划界, 在前面的基础部分,尽量打牢基础、多思考,实践书上的例子,甚至凭借自己的思考做些额外的例子,同时把心得记在读书笔记上──这能够降低后续进入增强主题的门槛,同时方便将两部分的内容衔接起来;
- 宁愿在基础部分多花点时间, 务必打牢基础;
- 在两部分衔接点处可以适当放慢速度, 一是回顾前面的基础,二是调节一下节奏,但时间一般不要偏离两天以上,所谓一鼓作气。
▶ 中间容易被其他事情打断,要么别人告诉你这书不好、这门语言不值得学;要么耽搁了好几天去做别的事情去了,等回来时发现思路断了
中间过程的延续性很重要。其实,静下心来想想看,技术领域也是蛮浮躁的,掌握技术的过程很容易被各种舆论所影响,比如React更先进、PHP是最好的语言(注:这里指的是贬义)等等,特别打击学习积极性,并诱惑你转向别的技术,好比狗熊掰棒子。但也正如我在「守住心中的一亩田」中讲的:“ ......赶时髦并不总是好的......有定力、有主见,耐得住寂寞、挡得住诱惑,不朝秦暮楚 ”,这点很关键。
学习过程切勿中断,好比学英语,停了一天感觉语感就下降不少。说其他事情耽误了阅读进度八成是藉口,要知道,地铁上、旅途中,都可以找到时间见缝插针的,因为“时间像牙膏一样总能挤出一点的”。 你可以阶段性延缓进度,但千万不要中断。
▶ 读不下去,烦躁
嗯,这是个乱花渐欲迷人眼的技术世界,我等都是凡夫俗子,总要受到环境的各种左右和影响,也就难免会浮躁和烦躁。但养成好习惯更重要,甚至能做到本来是一颗烦躁的心,而一旦进入阅读状态,就能让自己平静下来。 这点没辙,只能靠自身修为了,即使再烦躁,也要坚持阅读,尽量让自己进入阅读状态。
▶ 总想在所读书中找到所有的解
好多人抱着找一本最佳书籍,将一门技艺掌握得透透彻彻的想法,这种理想主义者的要求是不切合实际的。 一门语言、一门技术,要知道作者本身也不可能百分百掌握,甚至有可能他的理解也有误,那么,怎么能要求他写得面面俱到呢?! 书籍的作用是引导,说白了仅此而已,道行高深与否得靠个人修炼,不是书能够解决的,这是投机的想法。 因此,应该以客观的态度看待书籍,才能有实在的收获,否则就像好多老头老太相信什么“神药”能够包治百病,最终迷失了自己。
掌握一门技术,我觉得至少要有三样材料:一本系统的教材,一本进阶的资料,还有相应的官方文档/手册(比如PHP手册的重要地位,无视其的开发者都称不上真正的PHPer)。其他的,就靠大量业务实践活动的演练,以及求助网络了。
▶ 碰上了烂书
哎,我也遇到过烂书,还不少,啥“nightly release”就是“夜晚运行”o(>_遇到这种情况只能祈祷自己早日认清,早日换本书看了。
此外,如果有可能,可以考虑看英文原版书。
世事如水无常,看书本无规则。关键是找到合适自己的路子,这才是最重要的。比如经验丰富者,看书往往不必从头至尾,只需挑选章节,一目十行他就能得到他想要的内容,而这对初学者而言当然不合适。以前还看到:“数学家华罗庚有一种奇特的读书方法。他拿起一本书,不是从头至尾一句一字地读,而是先对着书名思考片刻,然后闭目静思:设想这样一个题目,如果要让自己来写应该怎样写……想完后再打开书,如果作者写的和他的思路一样,他就不再读了。一本需要十天半月才能读完的书,他一两夜就读完了。”
总结一点,读书学习的过程,各种感悟会在相应的时机出现,天长日久,便会形成自身独特的阅读情怀、技术情怀......
三. 技术氛围
不能贪求任何东西,一旦喜欢就执著在那里,应该心无挂碍......
现在的技术流越来越多,可供选择的余地也越来越大。在移动互联时代,营销是商业驱使下的必然手段,除了产品营销,技术营销也越来越普遍。同时,大大小小的技术圈子也不断涌出来,犹如武林门派,有江湖就有纷争,每个门派都极度推崇自己的技术流,对自己崇尚的技术津津乐道,并乐于布道和举办各种大会、沙龙。
铺天盖地的营销、狂热之下,许多所谓的清规戒律、最佳标准及推动者都出现了,而其中混杂着良莠不齐。当然,这并非总是问题, 但在各种资讯过载的时代,你必须要有清醒的认识,切不可太过陷于其中,否则将给自己带来莫大困扰。 这点也在「守住心中的一亩田」 提到了。
每个程序员都梦想掌握两三种必杀技,都希望能够“一招鲜吃遍天”。 但 自己的路终究要靠自己把握,圈子里的人和清规戒律并不总是对的, 被拿来调侃的PHP也仍是一把倚天剑。
随波逐浪到天涯,最终的结果就是你肯定会飘到天涯。
掌握好一个技术流,坚持下去,不断实践并深入,积以时日你就能拥有浓浓的技术情怀,同时在时机成熟的时候,不断丰富自身的复合技能。