本文是“CSDN专家看台”在2007.12月的一篇专访,原文在这里:http://www.kuqin.com/itlife/20071229/3176.html
也许是由于《Delphi源代码分析》,也许是《大道至简》,也许是他的博客、项目,也许是他的培训讲座……总之我们知道了周爱民(网名:Aimingoo),而且我们会很中肯的说一句“嗯,这哥们在程序员圈里有点名气。”作为一名程序员,他如何看待职位、荣誉和名气;他如何如何积累和感悟技术;如何把握自身的质变呢……带着诸多问题,CSDN记者采访了他。周爱民回顾十余年职业历程和技术发展,道出了他的看法。
记者:你现任上海盛大网络平台架构师、主导并参与过很多项目、拿过Borland公司授予 “Borland Delphi产品专家”等称号和荣誉、出过书、在开发界也有不小的名气……作为程序员,你如何看待职位、荣誉和名气?
周爱民:
职位并不等于荣誉,做架构师也没什么,只表明你可以做这件事而已。个人能力的不同,有些能做主程,有些人能做项目经理,但他们换个位置就不见得能做好。所以架构师也只是这样一个位置,只是个性、能力等方面的要求有所不同罢了。至于荣誉,例如“Borland Delphi产品专家”,我经常把它看成是老朋友们的关照。当一个人把荣誉放下之后,心里就空了,就知已而后勇了。当一个人被荣誉填得很满的时候,就认不得方向,不知进取了。这样的阶段我也有过,但有幸能从朋友们那里学到做人做事的方法,渐而渐之的克服,也就对荣誉、名气之类的看得淡些了。
但名气这个东西,还是要的。有名气其实是好事,因为有些事是得有些知名度才能去做的。只是不能因此而变成了追名逐利之徒。名气其实是负担,是责任。就象CSDN出名了,就得做与这样的知名度相符的事,做有影响力的事。这是CSDN的责任。否则,为啥不去做小论坛呢?反正大家都是主页+论坛+BLOG嘛。但反过来说,出名是虚的,做事是实的。没有人因为出名而把事做好,相反会因名气而把事做砸。盛名之下,还是要做实事的。勤勤垦垦地,一朝一夕地做实事,一是得人尊重,二是充已实质。
说到尊重这个东西,其实比名气重要。别人敬服你,只是尊重你,而不是因为你有名。网络之浮华,名人多了去了,却不见得都那么受尊重。所以做人是做品,不是做名,也不是做秀。
记者:“十余年软件开发、项目管理、团队建设经验”,说长也不长。但从《Delphi源代码分析》和《大道至简》包括论文等能看到你对技术方面有很深的体会,最主要的是个人很深厚的感悟。很多人十余年做不到你这点。能否请你谈谈你是如何积累和感悟技术的?
周爱民:
我常说我读书不多,但这并不等于不好。因为读得少了,就可以读得细些。同样的道理,经历的长短,也并不等于积累的多少。因为积累的关键在于反思与回顾。如果一个人做了十年工作,十年后与十年前所做的毫无二致,那积累也是零。所以积累的表现在于改进。现在大家都说在讲知识管理,这家也在推,那家也在上。但是知识管理的根本,不是那些制度、文档与程序、流程,而是企业的、个人的反思与回顾,以及在这些反思回顾上的改进。所以知识管理也好,个人积累也好,不在于有多少,而在于思考了多深,在于知而后改,知而后进的程度与力度。
有些东西是套话,或者看起来象套话。如同上面这些。但是也可能是真实的感受,一如我之此时。其实十年来,我做了些什么呢?我感受了些什么呢?只是几件事,只是几次大的思考与反省。我就是这样进化的,做久了就停下来看看,停下来想想。想不明白就去看书,看不明白就去做事,然后再想。做程序如此,做人如此,做久了,就现在这样子了。
在过去的这十余年中,你将自己的程序生涯划分为几个阶段?什么情况下你会感觉到自己的技术到了质变的程度?
周爱民:
这个问题所涉及的阶段性的变化与情绪,是可以为别人参考的,所以我多谈谈。
我印象深刻的是有一些,例如我的第一份工作。从拿到合同到工作,一切顺利。做的时候也自然尽力。但过了半个月,工期过了一半,活还没有做完的样子。同事一句话说:这是你的第一份工作,你必须做好,否则就没人信任你了。自此恍然大悟:我已经是个大人了,我得为自己做的事负责。面对我的职业、事业或工作,我没有任何可以推脱的理由。从此便有了所谓的“职业精神”。
这个虽然不是技术的质变,但是是人生的蜕变。总得从孩子变成大人,从学生变成职员。在这样的阶段中,你得保持警醒。如同上面这个故事,如果我不警醒,同事的提醒充耳不闻,那么我就可能会在事业中不停碰壁而不自知。要知道,在职场上,不见得有人会可怜你是个学生,也不见得有人会真心的提醒你。如果你不自醒,不自警,那不醒事的不开化的,自然会被赶出圈子。这就是所谓竞争。
再来说技术的质变。我写《Delphi源代码分析》的时候,只是一个技术上的强手。写它的目的也很单纯,就只是想写而已。也没有认为自己会从此走上一条什么道路,或者因此而荣华锦织。写的效果,也只是在技术上的精进而已。真正给我质变的动因,在于因为写这个书的缘故,有一天要去做个Delphi的培训,在做了几十页的PPT之后,我突然问了自己一个问题:你在做什么。
对自己的拷问,使得我展开了新一轮的反思。再早一次的反思,使我从一个21岁的区域总经理走回专职程序员,而这一次,我来到了工程领域之外——我这句话的意思,是说立时让我站在“工程”之外去看工程。如同换位思考一样,我象一个第三者,站在我与忙忙碌碌的工作之外,去重新视看这一切。
这一次思考产生了《大道至简》一书的原型,也就是那张EHM图。后来我在工程领域里的思想与方法,就进入了所谓“知律而变”的阶段:因人、因事、因一时之需而处理工程的枝节。所以《大道至简》的英文名是“灵活工程的思想(thinking in flexible engineering)”,原因也在这里。
从《大道至简》中对工程本相的探索走回技术,是另一个过程。这来自于另一个思考,是王昊说的一句话(王昊DelphiBBS总版主,《大道至简》一书提到过他)。他说“程序=算法+结构+方法”,本质是把“程序”名词动词化了。也就是说,我在《大道至简》中所讲的,是“做程序”的本质,而不是“程序”的本质。我的第三本书是《JavaScript语言精髓与编程实践》的,就是抱着探索这种“程序的本质”来写的一本书,已经完成并交给出版社了,大约是08年的1月份出。
回顾上面的话题,我是在什么情况下“感觉到自己(的技术)到了质变的程度”呢?往往的,就在自已的或者别人的一句发问。我对一个“茫然未觉的问题”有着异乎寻常的敏感,和洞悉它的欲望。所以当我猛然反省或朋友提点时,会立时如“醍醐灌顶”,从而让自己走向另外的一个阶段。我想——依我对这一过程的了解来说——这其中最重要的,就是时时醒觉,就是让自己处于聆听的状态,听自己的声音,或听别人的声音。这种醒觉并不是在不停的编程中获得的,也不是在不停的阅读中获得的。而是安静下来,停下来,把自己空出来,然后就获得了。
记者:哪些因素会驱使你会选择转移技术方向或者继续深挖?
周爱民:
我想我不会停下在技术方面的探索。我在BLOG上写过:“工作是实践,著书是研究。做不好实践,就做不好研究。因此好好工作是前提——我不想我对软件的思考变成无源之水,那样的话,还没有流到大家的面前,就已经干涸了。”所以在具体的工程、技术、架构上的实践对我而言是必须的、必然的。
至于方向,如果我还在软件行业,那么方向就从来也没有变过。不是说今天写程序、明天做架构就是改变方向了。这所谓的方向是什么,取决于你的视野是什么。
记者:对于程序员的技术发展和职业规划能否给大家一些建议呢?
周爱民:
- 不要急。
- 不要只做不想。
- 听别人的话,即使你不想听。
- 订一个五个期的目标,写一个一年期的计划,然后回顾它。
- 学好中文,学好写文章,学会打标点符号。
- 把工作当成事业做,天天都在做事业,才会成功。
- 理论看不懂,就去实践;实践遇到问题,就去看理论。
- 参加一个开源项目,如果没你感兴趣的,就自己发起一个。
- 保持自己对某一件事物的热心、执着,即使这件事与你是不是程序员毫无关系。
- 成功不能被复制,但失败总在不停复制。看看别人是怎么倒下的,你可以更早地成功。
记者:关于CSDN即将开幕的SD2.0大会,你最期待哪位专家和哪场课程?
周爱民:
太多了。老实说,我感兴趣的领域很多。但听讲课与工作一样的——你不能每场课/每件事都参与。
除了我近期非常感兴趣的话题,例如Andrei Alexandrescu的“Lock-Free Data Structures(无锁数据结构)”,以及Ivar Jacobson的“够了——让我们实践吧”,还有“多核计算中的分布式数据结构”之外,我大概会走到某个地方,站下来听听,然后决定是否继续听下去。对了,云风的话题我很感兴趣,作为同业者,我想知道网易是怎么做的,以及云风是如何思考一些领域内的问题的。因此我想我会去听听他的《大世界网络游戏服务器的构架》。