书城管理周鸿祎:人生就是不停的战斗
8027800000006

第6章 编程是门技术活儿

互联网观察家林军在其《沸腾十五年》一书中,曾把周鸿祎、丁磊等人归为“极客”:都是技术出身,熟悉并极度忠实用户感受和体验,才华出众。但都是“bad boy”,不擅处理人际关系,口无遮拦,毫不掩饰自己的情绪和观点。

极客是美国俚语“geek”的音译,该词被用于形容对计算机和网络技术有狂热兴趣并投入大量时间钻研的人。很长时间,在西方文化里极客的意思一直偏向鄙意,在PC革命初期,极客开始衍生为一般人对电脑黑客的贬称,他们具有极高的技术能力,对计算机与网络的痴迷有时会达到不正常的状态。但随着互联网的日益普及,极客走向了历史舞台的中央。

极客们像宗教信徒一样强烈信仰电脑技术改变世界的力量。极客有四大标志人物:苹果的创始人史蒂夫·乔布斯,微软公司创始人比尔·盖茨,Facebook创始人马克·扎克伯格,谷歌联合创始人拉里·佩奇,他们都表现出对技术异乎常人的狂热追求,并凭借此留下了神一样存在的令消费者顶礼膜拜的传世作品。

周鸿祎自己也坦诚:“从骨子里来说,跟李彦宏、雷军等人相比,他们可能更成熟,更容易去驾驭商业的成功。而我骨子里不是一个商人,我是一个对技术着迷的程序员和注重用户体验的产品经理。”为了自己的理想,周鸿祎也曾经像个十足的极客,为技术痴狂过,付出过。

很多程序员都曾这样感慨和抱怨过自己的生活状态:“干得比驴累,吃得比猪差,起得比鸡早,睡得比狗晚,看上去比谁都好,五年后比谁都老。”周鸿祎也有过为了编程对着电脑一坐就是十几个小时的经历,正是因为早期做程序员的时候用眼过度,如今的他不能盯屏幕太久,很多邮件都是让秘书打印来看。去过他办公室的人都知道,那里只有酷炫的音响,却没有电脑。但是,周鸿祎却表示,“我一直很自豪曾经是程序员”。

周鸿祎上大学的时候,正值中国程序员崛起的时候。当时,IT业最耀眼的明星是王志东、求伯君、严援朝和朱崇君,这些充满个人英雄主义和爱国情怀的早期程序员创造的业绩,激励了很多程序员进行软件开发。

编程,对喜欢的人来说,是快乐;对不喜欢的人来说,可能是炼狱。周鸿祎属于前者。直到今天,写软件依然是周鸿祎的最爱。“没日没夜,历经千辛万苦,把一个软件做出来了,跑起来了,那种感觉,比挣了好多钱、战胜竞争对手的感觉更愉悦,非常爽!”

而大学四年,周鸿祎对于计算机编程知识,则近乎如饥似渴。

周鸿祎当时上的是西安交大的特种班,专业要求很严。其所在的班级实施能上能下的制度,学期考试如两门课不到70分,就转到普通班,这使得周鸿祎不得不把基础课学好。他后来回忆说:“除此之外还有一个原因,就是我在高中的时候就编程,但那时候没有理论指导,只是靠兴趣,凭感觉,因此遇到了很多问题。当我在大学开始学习后,所学课程让我明白了很多困扰已久、百思不得其解的问题,所以内心产生了学习的欲望。这样基础打得扎实,课程学得也好,而且不是为了应付考试。现在想来,我很多灵感都是来自于学校打下的坚实基础。”

除了重视学好基础课程之外,周鸿祎还花了很多时间去实践。当时没有现在这么好的条件,但周鸿祎在学校一直利用任何机会在计算机上做开发和实践。为此,他不知道与机房看管员斗智斗勇过多少次。

程序员必须要积累足够的代码知识,才会有感觉。写程序一方面要读别人的程序,一方面要模仿,一方面要自己写,三者缺一不可。大学时期,周鸿祎读的最多的就是源码。通过读这些源码,对语言的本质有了很深的了解,进而才能超越语言本身。比如当时新推出了Pascal的图形工具箱,很多人只是为了用它,但周鸿祎却将源码通读。对于他而言,“大师级的软件作品就像唐诗三百首一样,读起来是艺术的享受”。后来,他还先后细读了C语言的库函数源代码、MFC类库、Delphi的源码和类库。

周鸿祎还是一个善于思考、触类旁通的高手。当时同学们都在迷电脑游戏。周鸿祎个人也非常喜欢电脑游戏。但是他的喜欢和别人不一样,他不是玩上瘾,而是琢磨上瘾。面对一个好游戏,他喜欢琢磨这个游戏是如何制作的。比如Doom,他曾经仔细研究考虑它的三维图像和二维贴图是怎样处理的。别人的项目和软件,都会引起周鸿祎的好奇心,他会忍不住去思考这个东西是怎么来的,大多时候也琢磨不出个什么结果来,但是这种思考和学习相结合的习惯,让他学起来特别有效率。

整个大学,周鸿祎都在以各种形式如痴如醉地学习、践行编程的无穷乐趣。大二的时候,周鸿祎参与过学校课题组的一个项目,是国内的程控交换机检错系统,他被分到自动报警中的屏幕显示出错中部件和电路图的模块。在此之前,有学长曾尝试把二千多张图纸输入到计算机中,可是毕业设计做了几个月,也就画了几张图,不了了之。虽然当时没有什么经验,但周鸿祎首先花了很多时间思考这个问题。后来受苹果电脑上画图系统的启发,他写了一个画图程序。这个程序可以画元件,连接元件并加标注,而且还可以把线路图按照数据库的形式存储到计算机里面,并能很方便地调用。最终这个项目取得了非常大的成功,同时也奠定了周鸿祎的软件思维模式,就是如何创建通用的解决问题的方法。

周鸿祎没有把自己的兴趣只停留在编程上,他对编程以外的很多事情都有兴趣,包括攒机器、装软件、做培训。为此,他还花了很多时间到一些公司学习各种技能。这些与编程无关的事情看起来很无聊,但一方面提高了他同他人沟通的能力,另一方面也让他知道了客户和企业的需求。

从1990年写第一个商业化程序开始,周鸿祎既做过产品设计,也做过系统集成;既做过编码工作,也做过系统分析。他还亲自带过很多的程序员,把刚刚大学毕业的学生培养成为软件工程师。

正是大学四年铆足劲儿打基础,近乎痴狂地学习编程知识,积累了深厚的底蕴,周鸿祎才拥有了敢与天下英雄叫板的底气。