直面现实,坚守理想(by 李建忠 ,原文链接)
《CSDN开发高手》的编辑约我写这篇文章,缘于前不久我在个人blog(http://blog.dreambrook.com/jzli/)上写的《认清现实,才能找回理想》一文。当时写那篇文章是在阅读孟岩先生blog(http://blog.csdn.net/myan/)上的《放弃理想,未必能成就现实》一文之后有感而发所得。孟岩先生在《放弃》一文中的主旨是在说由于通用软件的高复用性,而国际研发巨头在上面有巨大的投入和优势,所以劝我们大家放弃这条陡峭的道路,而专攻行业信息化。这种思路有"田忌赛马"的影子,但也不完全相同,因为我们在行业信息化方面只能说差距不像通用软件那么大,而决然不敢说有什么突出的优势。同时中国作为一个世界大国,要想在数字时代成为一个世界强国,前提是必须成为一个软件强国,那么我们的发展策略就不能是偏执一隅,而应该全面出击。中国软件业的薄弱不是由于我们没有在合适的时间找到合适的方向--可以说在这个创新的时代遍地都是方向,任何一个方向上我们都可以也应该有所作为,我们真正的问题出在了软件人才的成长环节上--"摇篮、自学、提高"三个阶段,对应着"教育、出版、培训"这三块产业短板,我看到太多太多的程序员在这上面栽跟头。这也是我在《认清》一文中的观点。
两篇文章出来之后引起了很多朋友和网友的共鸣和讨论。可惜的是我在《认清》一文中的"破坏性"批判较多,而鲜有建设性的意见。大家的讨论也让我对这一问题有了更进一步的思考和认识。但是在本文中我不拟再谈教育、出版、培训等体制和环境,而只是想谈一谈单个的程序员个体如何来应对这样的现实环境。我之所以只想谈谈程序员个体的应对策略,是因为中国的教育、出版、培训等体制和环境的恶劣问题由来已久,也有很多有识之士对此有过深刻的思考和积极的建议,但要解决它们绝非一日之功。比如著名学者李开复老师在他的《给李岚清副总理的信》一文中(可参见开复老师专为中国学生建设的网站http://www.kaifulee.com/)对中国大学教育的问题已经写得非常清楚,其中提的建设性意见也非常好。这封信写于2001年10月,但是如我们所知,几年过去了,开复老师在信中提到的诸多问题依旧存在,而且有些问题还更加严重。比如我们天天喊"科教兴国",可我们的教育投入长时间不及联合国教科文组织建议的一半,列在全世界倒数的几位,比非洲穷国乌干达还低,匡论我们教育投入中严重的结构不合理现象。再比如北大法学院的"甘朱事件",广西招生丑闻中北航计算机系教授的恶劣行为等等个案。中国大学教育的问题多如牛毛,IT作为一门发展迅速的高科技学科呈现的问题尤甚。现实的困境大家都看在眼里,记在心里,问题是面对这样的困境我们怎么办。
中国的现实是你不能去等这个社会改造好了之后来坐享其成。改造社会做不了,我们恐怕也等不到遥遥无期的文艺复兴,但是我们可以从自身的改造做起。"达则兼济天下,穷则独善其身",这是千百年来中国知识分子群体对国家社稷和个人发展所秉持的信条。开复老师有"兼济天下"之达--虽然这样的"兼济"效果并不如想象的那么好,但毕竟有些许推动作用--而我们只有"独善其身"之穷。孟岩先生说的好"现实总是别人的,只有理想是我们自己的"。 作为一位对软件业深怀感情的学长,我乐意和大家在这里分享一些个人的体会和思考,谈一谈作为目前的IT在校生以及刚入门的程序员如何来克服这些现实的困难,从而在入门阶段就认清现实,打好基础,不要再走很多前辈所经历的无谓的曲折道路。
我在《认清》一文中曾经描述了当下大部分IT人的成长道路,相信很多人都深有感触,可以从中找出许多自己的影子。这当然不是IT人的宿命,如果能对现实有清醒的认识,不为现实所迷惑,及时调整自己,激流勇进,未尝不能成就自己的人生。
比如大部分学生刚刚从繁重的高中学习中解脱出来进入大学校园,一般对大学都充满了神秘感,尤其对大学老师更是充满了敬仰和膜拜。尊师是应该的,但是盲目信师、甚至崇师就不好了。由于现实的教育投入严重不足,我们的师资本来就非常匮乏,再加上现代IT技术日新月异、纷扰繁杂,在浮躁的学风下愿意在课堂上耕耘奉献的优秀教师是少之又少,即便是想遇到一个合格的老师也并不容易。君不见有多少课程是四平八稳的照搬陈述?有多少技术的真知被很多老师一带而过?有多少本来应该碰撞的火花被死气沉沉的课堂所淹没?很多学生听了一段这样的课程之后往往就开始失去了对课程的兴趣,并进而怀疑自己。事实是大家的能力不够、智力太差吗?完全不是!既然大家已经进入了大学,那么掌握这些课程的智力水平绝对不成问题,这个起码的自信一定要有。是的,也许很多老师的水平比你高,但是他/她并没有达到足以教授你知识,提高你学养,洞开你技术之门的水平。
那么遇到这种情况应该怎么办呢?要勇敢地否定掉这些不合格的老师,自信地走出课堂,利用一切自己能够利用的资源(比如图书馆,互联网,计算机协会等)来提高自己。不提倡崇师,是指不要迷信那些不合格的老师,但决不等于鼓励大家放弃该老师所讲授的那门课程。我们现在的IT教育课程固然设置的不够合理,但是基本上来讲,很多IT基础课的学习对于一个IT人的成长还是很有必要、不可或缺的,切不可因为对老师的否定而嫁祸于相关的课程。写这篇文章的时候,正好在电视上看到一个访谈节目在讲著名物理学家杨振宁先生到清华大学去为大一本科生讲授物理课的事情,深为杨先生的高瞻远瞩而生敬意,也为清华大学这样的举措叫好。不过具有讽刺意味的是杨先生这么做的动因却是现在很多教授不愿意"屈尊"为本科生上课,耐人深思,也是不争的事实。
否定掉不合格的老师容易,但是真正走出课堂之后如何建立起一套适应自己的自学体系并不容易。自学是我们提高自己的一个很重要的环节,更是IT人的一项基本素质。事实上,即便你遇到优秀的老师,甚至是名师,你同样需要培养自学能力。自学的方式方法有很多,许多也因人而异,但是其中有一条很关键的线索深刻影响着自学的效果,这就是图书。为什么说图书是一条很重要的线索呢?很多人认为计算机是一门注重实践性的技术学科,所以非常重视动手能力。是的,计算机的学习是一项实践性很强的活动,动手能力非常重要。但"实践性"和"动手能力"并不意味着天天编写一些花里胡哨的软件就是履行了其实践性了--不得不承认这是一部分IT在校生和初学者的误区。实际上,每一项技术都有着深刻的理论渊源,技术背景,协议规范。没有通过阅读而得来的有素的理论提升,而陷身于代码的汪洋大海中,不说得不偿失,也至少是进阶缓慢。事实上,在计算机学科方面,如果一个人有了理论提升,想让他不动手都难--很简单,计算机学科的魅力之一就是你可以用自己的双手立即来验证自己学到的理论。所以动手实践在计算机的学习方面并不是一个大的问题,阅读图书才是其中一项重中之重的活动。
明白上述道理并不难,但是只明白这个道理远远不够,甚至会从此而跳进无底的陷阱。为什么这么说呢?因为由于传统教育的问题,大多数学生对书籍达到了盲目相信,嗜书如命的地步。似乎只要是和自己领域相关的书,都是富含知识的宝藏,都一定要读个遍。此乃大错特错,正好掉进了出版商编制的陷阱里。君不问你手中拿的花花绿绿的图书都是怎么产生出来的?你手中拿的图书的作译者是否真的参透了书中的内容,甚至在这个领域是否懂得比你多?你手中拿的图书讲了大段大段的条条框框,但是否真正触及到了技术的本源?在没有搞清楚这些问题之前,千万不要动任何念头去购买、阅读它,即使有人白送也要坚定地拒绝。一本书的市价几何?读一本平庸乃至劣质书所得到的损失几何?孰轻孰重,需要仔细掂量。
事实上,对于一门课程或者技术的学习,如果能够遇到该领域的经典之作往往事半功倍;否则事倍功半,甚至彻底葬送掉一个人对某门学科的信心。假如你读了10本C++方面的书,仍然不知道default constructor、copy constructor、assignment operator等这些基本的技术存在,那么你以后基本上再提起C++便会望而生畏。但如果你有幸读到一本C++领域的经典之作(比如C++ Primer),那么你在C++上的基础和信心便会彻底得到夯实。一本好书和一本平庸之作,给人带来的价值差距乃天壤之别。
可惜的是在国内目前的出版环境下,技术图书的陷阱非常大,不负责任的劣质之作充斥着图书馆和书店,平庸书籍更是无计其数,"遇"到一本经典之作的概率非常之低。不要迷信"主流是好的"这句中国式的太极语法,中国技术图书界恰恰就是"主流是差的"。那么这时候,选书的功夫就异常重要。事实上,选书是成为优秀IT人才非常重要的一项素质,我甚至认为在中国当下的出版环境中懂得选书比读书更为重要--哪个优秀的IT人没有读过几本经典的书籍?没有几个敬仰的技术作家?决无可能。
那么怎么才能挑选到优秀的图书呢?结合自己的经验笔者总结了以下几种方法:
第一、读书评。优秀、尤其是经典书籍一般都会有该领域的专业人士在期刊杂志上为其撰写书评。这样的书评一般会有图书内容、定位、特点、作译者的介绍和评价等等,比较客观,也比较专业,对于选择优秀图书非常有帮助。但是时下也有部分出版社看到大家对书评的重视,故意雇用一些写手来为某些平庸书籍造势,所以除了读书评外还要结合下面几种方法。
第二、看网络。现在各大技术图书网站都很注重网络书评的建设,因为它的互动性非常好,很便捷。不足之处是缺乏引导,评书很多时候变成了吵架,失去了书评的客观性和公正性。还有一些技术社区,也经常性地有一些图书评介。这些对于发现优秀图书也很有帮助。因此如果是中文图书,那么大家在购买阅读它之前是不是能到China-pub、Dearbook等技术网络书店先看看书评。如果是外文书或者翻译作品,是不是也能到Amazon网站上看看它的书评(Amazon网站的书评机制非常好,通常比较客观)。
第三、问师长。有时候主动请教身边的师长,过来人,以及技术好的同道介绍一些该领域的经典之作也是非常有必要的。实际上你会发现有时候你在一个师长那里学到的东西并不多,但有可能就是某天他给你推荐的某本好书彻底改变了你,让你感谢一辈子。这一点都不奇怪,阅读好书本身就是一个请名师上门的过程。
第四、看作译者及序言。作译者是图书信誉的最终保障。无法追溯责任的出版社可以拿自己的信誉开玩笑,但是一个优秀的作译者断然不可能拿他的信誉开玩笑。至今来讲,我好像还没看到哪个被我认定的优秀的作译者出来的作品下降至平庸之辈,虽然偶有下滑,只不过是有时候我们的期望过高,但很难掉出优秀之列。优秀的作译者还有一个特点就是他们都喜欢为自己的书写一段序言来概括图书的内容,为读者点出一些和图书相关的重要事宜(比如阅读方法、术语交待等)。一个劣质的作译者是断然不敢写序言的。理由很简单,他们并不懂自己产出的作品,根本写不出来这样的序言。基本上到了一定层次,大家只需看作译者及其序言就可以判断一本书的含量。
希望大家能够记住上述几种选择技术图书的方法,让这些方法成为大家日后选择任何一本技术图书时的一种惯性。断不可因为书皮的质量、封面的设计、书本的厚度来选择图书!有了好书,怎么读就是一个等而下之的问题了--好书的特点是你随便怎么读它收获都很大:)
关于培训方面,其实问题和教育一样多,但它又披了一层市场的外衣。以个人的经验来看,应该对一些所谓的技术认证保持基本的冷静,而应注重自己真正内功的提高。IT类技术证书目前在国内技术圈早已是臭名昭著,有了这样的一纸证书有时候反倒让人怀疑你的道德诚信问题,根本证明不了你有多高的技术能力,它们对于一个正常的IT专业出来的本科生来说几乎无任何裨益。即便在某一项技术领域确实需要短期内提高自己,需要参加培训,那么在选择上要慎之又慎。就像选择图书时要重点看图书的作译者一样,个人以为选择培训时主要的关注点应该是讲课的老师。
说了这么多,简单归纳起来就是:尊师,而勿崇师;选书,而勿嗜书;认人,而勿认证。直面现实,坚守理想,希望广大IT人走出自己人生的光辉道路。