admin管理员组

文章数量:1531793

2024年3月30日发(作者:)

【“金山”程序员团队的四大修为】金山打字通手机

版2018

这是一部讲述金山企业史的书籍。作为中国最大的通用软件

企业,金山历经坎坷,走过了风风雨雨20年。这是怎样的一个

团队呢?我们从程序员的素质要求一窥金山团队。本文选自该书。

“技术立业”最终依靠的是优秀的技术人员。经过19年的沉

淀和积累,金山目前程序员已经超过1000名,其中包含大量对

技术执着甚至是狂热的编程高手。

金山具有浓郁程序员文化,求伯君和雷军都是程序高手出身。

因此,对于程序员的要求会更高。金山是如何定义并打造这些优

秀程序员的呢?

在求伯君看来,优秀的程序员至少要具有以下品性:第一,

要能吃苦。写程序是一个很辛苦的活,熬夜,加班,吃方便面是

经常的事情;另一种苦是,以前盗版严重,在中国做程序员工资

不会很高,“没法高,高了养不起。”第二,要有天赋。“在中国,

有天赋的程序员很多。”第三,是信念。“失败时要能坚持。像我

就写了很多失败的软件。”第四,要爱这一行。“不给钱都愿意写。”

第五,是团结。“现在程序都很庞大,以光盘为单位。没有合作精

神,一个人做不出什么好软件。我们当时单枪匹马可以成英雄,

现在已经不行了。”第六,要逢上机遇。“我是赶上了电脑刚进入

中国,一切都是空白的机会。”

修为一:坚韧不拔

写程序往往是一个漫长的过程,没有任劳任怨、吃苦耐劳和

不甘寂寞的精神,在日复一日写代码的过程中,很容易中途放弃。

金山的程序员被要求的第一个修为就是个性执着、坚韧不拔。那

些最优秀的程序英雄们都已经用他们的切身经历说明了这一点。

从2003年夏到2004年底,开发网游《封神榜》的烈火工作

室一直处于紧张研发的阶段。原词霸事业部的程序高手、现任烈

火工作室总经理的刘鹏说:“烈火17人两个春节都没有休息,五

一、十一、周六、周日全都在拼,历经13个月。最终公开测试

时,烈火也才达到32人,完全是一帮没有游戏制作经验、只有

梦想和激情的人组建的团队。那时候大家只有三种工作状态:坐

在办公桌前,坐在会议桌前,躺在办公桌下”。刘鹏还透露了一个

“秘密”,就是当初没有招聘一个女孩,在后半夜闷热的办公区大

家都是光膀子度过的。

对技术的狂热追求的同时,往往也伴随着最艰苦卓绝的开发

过程。“很多人把写程序看成是一种生活技能,而不是真心喜欢。

这种后果会导致很难坚持。一些开发人员在面临选择的时候常常

会选择眼前利益以及轻松的工作。但总体上来看,做一个程序员

能吃苦是必要条件之一。”雷军说。

修为二:知识全面

计算机技术日新月异,优秀的软件企业不是在和同行赛跑,

而是在和时间赛跑。微软在全世界已经设立了一大批的研究院钻

研那些未来可能会引领潮流的新技术;GOOGLE允许员工每周花

20%的时间抛开手头工作,从事自己感兴趣的技术研究。

对于程序员而言,在具备坚韧不拔的精神之外,技术全面、

涉猎广泛也是必须具备的修为之一。特别是金山业务线偏多,既

有办公、杀毒、词典等通用软件,又有网游的娱乐软件,还有爱

词霸社区等网站产品,各产品对技术的要求跨度很大。2003年,

为了集中优势兵力打《剑侠情缘网络版》这场歼灭战,雷军抽调

了其它部门8个技术总监中的5个加入到珠海网游研发队伍。他

们虽然做的是普通程序员的代码撰写工作,每个人都能迅速上手

投入到工作当中。最终,《剑网》一举成名。

对于金山的普通程序员而言,哪些技能是必备的呢?雷军在

接受《程序员》杂志采访时说:

“从技术人员的角度来看,我觉得最重要的是数据结构,它最

能体现开发人员的基本素质。

首先是标识名的命名习惯。标识名命名习惯决定程序后期的

可维护性。现在我们看到很多参加奥林匹克竞赛的程序员,常常

能非常快速的写程序,但是做出来的软件很难维护,这就无法应

用到实践的工程和项目当中。

第二是数据结构的定义和常量的定义,这两者对于开发人员

来说是良好的编程习惯。数据结构的定义很大程度上决定了程序

的可维护性和可扩展性。

接下来第三点是算法的说明、描述及测试子程序。

第四点,我们在强调BugFree,也就是调试能力以及编写无

错代码的能力,一定要常常不忘做边界条件判断。

高级一点的开发人员,要注重第五点,程序框架设计的合理

性。

第六点是程序的运行效率,这对于一个开发人员来说,已经

到达一定高度了。更高的境界则是在开发程序的时候,还需要具

备产品规划的能力,换句话说,良好的编程习惯能帮助你走向成

功。”

修为三:完美主义

“优秀的程序员,其实并不在于技能的熟练掌握,而是需要有

良好的素质,有追求完美的精神。真正的好程序员不是为了完成

任务,也不是为了交付产品而工作。他们想要发挥自己的极限,

尽自己的最大努力把程序做得更好。”雷军说。

“热爱编程、个性执着、追求完美”是金山对程序员的要求。

完美主义并非要求“十全十美”,而是在现有的基础上实现“更好”。

在雷军看来,优秀的程序员都应该是完美主义者。

在金山,从求伯君、雷军等曾经是程序高手的管理者,到董

波、陈飞舟、赖立高、吴越等等,在他们的程序生涯中,都是眼

睛里容不得丑陋代码的完美主义。此外还有许多程序员,也许平

时不修边幅,可以整个冬天都穿同一件夹克,但他们的程序却整

洁得让人嫉妒。

不放过任何瑕疵,有任何问题都要修改。陈飞舟曾经有一段

时间,在珠海金山的楼里面三个月没有出来过,便是为了让金山

毒霸的蓝芯引擎更加完美;金山毒霸的刘海峰,曾经无数次修改

程序乃至一个月没有回家睡过觉,直至被称为铁人。正是这些对

程序品质的无止境追求才使得金山历史上不断涌现出深受用户

欢迎的软件和游戏产品。

任何事情其实都有一个度,完美一样有度。所以,追求完美,

是指不断提升拿捏完美的“度”,不断提升程序质量的“度”,是在

追求一种不同的境界。

修为四:团队协作

随着技术发展越来越快,程序越来越庞大。单枪匹马、拿着

10万行代码闯天下的个人英雄的时代已经过去了,团队协作成

为程序开发的基本要求。单个的程序高手也许能够创造出奇迹,

但是不一定能为企业创造出好的业绩。如何让大面积的程序员都

成为高手,对以技术立业为核心战略的金山而言是至关重要的问

题。

并非每个程序员都有天赋异禀,因此通过培训、学习来提高

编程实战、团队协作能力是必不可少的环节。从2007年3月开

始实施的程序员“魔鬼训练营”计划就是一种非常独特的培训方

式;此外,新组建的金山实验室也已经开始探索软件开发的前沿

技术,研究成功将给全公司共享。关于程序员训练营和实验室,

前面已有详细描述,在此不再赘述。

在自己就曾经是程序员的求伯君看来,程序员团队的管理其

实并不容易:“第一,你要尊重人家,知识分子都有一种‘臭脾气’;

第二,要给程序员一个能够发挥的环境,不能卡得太死。写程序

和写文章一样,思路打开了,一天都用不了;没有灵感,一个月

也不一定能写出来。”

令求伯君和雷军骄傲的是:珠海金山的程序员队伍非常稳定,

在金山四五年以上的优秀程序员非常多。这不仅是金山倡导的程

序员文化、互相学习的文化有关,也与金山研发基地的地域选择

有关――这或许是诸多对金山研发队伍之所以稳定的分析报道

中最容易忽略的因素。

一个优秀的、具有团队协作精神的研发团队,既要有足够的

培训提升能力,又要有和谐舒适的工作氛围让人身心愉悦从而保

持队伍的稳定――金山的经验值得借鉴。

本文标签: 程序员程序技术工作团队