中国程序员的文化模式

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

转载自: http://huangjien.iblog.cn
 
本文的中国程序员指的是在中国大陆境内(不包含港澳台和其他华语地区)的软件开发人员,他们通常会被划分为初级程序员、高级程序员、系统分析员和项目经理。他们的年龄通常在20-40,20—30岁程序员占总人数的80%以上,而其中26岁以下的又占一大半。收入水平在国内属于中等偏上,文化水平较高。

由于是在大陆地区,他们普遍是无神论者,无信仰;绝大多数为工科出身,主要来自计算机、自动控制、电子、应用数学等相关专业,因为大陆大学的职业性教育使其他专业的学生难以进入这个领域,男性比例偏高。习惯用二分法分析问题,受传统儒家、道家思想影响深刻;他们的工作习惯把他们培养成了实用主义者和完美主义者。

由于在大学中的职业性教育特点,造成他们普遍轻学术,重应用,自学能力低,创新能力低的特点。一个直接后果就是能够非常快的进入工作角色,而难以有所深入、创新;而其他专业的毕业生进入软件开发行业后,由于自学能力弱和缺少必要的全面的计算机基础知识教育的原因,除个别特例外,计算机专业毕业生普遍反映与他们有可以感觉得到的沟通问题;并且,即使是计算机专业的毕业生,在某项技术上,如果没有实际项目经验,即使经过很长时间的自学,也往往不得要领;所以,雇主往往在招聘时,需要某种技术人员时,有实际项目经验成为一个重要指标,而不是象西方国家看重综合素质。这都是职业性教育造成的恶果的佐证。 

目前,中国程序员的总人数非常庞大,但在计算机基础理论上毫无建树,在计算机软件的主流产品中,没有一个是国产的,甚至在构建在产品之上的流行框架,也没有一个是中国程序员的成果;20年来,他们都在学习语言、理解框架、构筑应用,应该承认:中国的计算机软件开发、应用水平并不高。中国程序员们目前主要从事系统集成类开发、外包开发的下游和测试工作,“学术性”的研究职位非常少,专门研发人员并不太多。这意味着虽然有一定的入门门槛,但是在入门后不太长的时间内(1-3年)就可以达到发展的“天花板”,而很难找到其他出路或再上升到一个更高层次。而他们的工作更多是一种他们戏称的“体力活”的简单代码开发,显然有一些经验的年轻人在这方面更有优势,他们之间的“体力”上的激烈竞争使这个行业从业者成为当今预期寿命较短的异类一族。而几乎所有的软件企业对更新员工技能的投入都极低,因为可以很容易招聘到有特定技能的人,并且确实在系统集成方面的培训都只对新人有用而对有经验的员工只是常识,而更高级的培训都超越了企业目前的需要,没有立竿见影的效果。

所以,在程序员中普遍存在一种“30岁”或“35岁”焦虑,这不是空穴来风,而是他们对未来不确定性的焦虑。由于行业收入和社会认同对刚走出校园的大学生很有吸引力,有大批人员加入了这个行业,后来的年轻人会对先行者产生强大的压力。先行者无法保持个人技能持续提高,也就无法让薪水持续上涨,除转入管理(作项目经理或创业作老板)外,基本就只能转行了。

在疲劳的工作、工作压力以及对未来的焦虑的联合作用下,中国程序员们一般都有轻度抑郁表现:失去兴趣和快乐感、容易疲乏、总想不高兴的事、思维和反应迟钝、自责自罪、工作学习和创造能力明显减退;躯体症状是:睡眠障碍、疼痛、乏力、胃部不适、食欲欠佳、心慌气急,以及各个系统的症状。不过,由于都是成年人,心智都比较成熟,一般不会有严重后果。
 
中国是一个以儒家思想为主流,辅以道、法、佛家思想的国家,各种思想经过上千年的互相影响、融合,已经有些难以分清彼此。有个调侃就说:“中国人平常是儒家,得志了变成法家,失意了就变成道家了。”中国程序员基本都是一个教育体系中的产品,在文化思想上非常相似:全部都是无神论者;表达感情时趋向于间接、含蓄、内控的表达方式;组织归属感强,采取协调、和谐的态度,时常表现出中庸、折衷、妥协、世故,而不走极端的性格,在群体中尽量采取顺从团体的态度,不愿在团体中把自己的地位显露出来;组织程序、原则的训练基本为零;倾向于相信命运,爱用两分法来作判断,系统逻辑为非此即彼,人行为模式是谦虚、谨慎、抑制,甚而是稍有退缩。

但是,这种文化的另一方面使他们在坚持自己的观点上会有很强的韧性,加上对组织程序、原则的训练少且不重视,在观点遭到反对时,会在行动上表现出非此即彼的强烈的不合作态度,保留意见就同时保留了实力,激烈一些的就会想办法调离出团队;但在表面上,不会表现出强烈的态度,甚至有时会让反对者感到他相当好的合作态度和善解人意,在遭遇不合作造成的困难时不会发觉原因,感到莫名其妙。不要被此蒙蔽,这是儒家这种“耻感”文化的特征:保护自己的面子,给别人留面子,可这不表示同意对方观点。内敛的特征常常让对方最后感到反对者在玩“阴”的。

这种态度显然不适合团队合作,传统上中国的管理方式是“制衡”,通过平衡各方面利益和力量保持稳定;传统上的优秀的治理者更多时候是“耍手腕”的高手。因而对中国人使用现代西方的管理方法经常无效,团队的进取能力显然不足,维持则比较容易。而软件研发却通常都需要团队的很强的进取心,系统集成则次之。

这种管理上的失灵或部分失灵导致的一个现象是:在项目中遇到难点不可怕,中国程序员的单兵作战能力是很强的,但是遇到规模问题就糟了。我们知道,技术能够部分消解规模问题,但不能彻底解决规模问题;技术不可能替代管理。所以,中国的项目组,项目经理往往是高手,或者是项目组的首席程序员,这样才能保证他的意图能正确实施。在软件开发由于某些新技术的出现而使程序员个人能力得到极大的扩大时,中国软件开发界会及时地反映,变得非常活跃;而技术普及之后,竞争转换到规模水平上时,恶性竞争就会立即展开,程序员们会感觉不好,感到沮丧。这恐怕也是中国软件业特别喜欢追逐新技术的原因吧。

“耻感”文化在程序员这个职业上造就的另一个特点是:尽量避免内部直接竞争。程序员这个职业有一个特征:程序员们把他们的程序看作他们的外在延伸,事实上,的确有很多人把程序比作他们的子女。批评他们的程序会遭到强烈的反弹,给人的印象是他们都有些犟,不愿承认自己的错误;实际上这被看作是在批评他本人,会被他进一步延伸为个人的失败,他当然不能轻易接受;如果你批评他们的衣着,他会很虚心的接受的,并且铭刻在心,遵照执行,还心存感激。中国有句古话“文无第一,武无第二”,评价谁的文章更好是很难的,评价武艺则比较简单,打一架就行了。评价程序本来就是很难的(跟评价文章一样),并且在有可能“伤人“的严重后果情况下,项目组内部一般不评价每个人的程序如何,也一般不用竞争的机制来选择程序(本来人手就不够),伤面子对中国人是很严重的事情;不过,如果展开竞争,会是相当激烈的(保住面子更加重要),激烈程度很容易失控,达到破坏掉项目组的程度。所以,如果不是某个人写的程序差劲到了离谱的程度了,一般不会有人说什么的;但是,当某人离开了项目组,可以随意评价而不必顾及他的面子时,评价是不可避免的,而且往往是负面的比较多(可以借贬低对方提升自己的面子)。而对外部竞争时,由于不需要顾及对方面子,则可以不客气得多。如此一来,可以想见,一些软件工程手段:走查,内部评审等就势必难以展开,即使展开,效果也会由于顾及同事面子等考虑大打折扣。在这种会议上,中国程序员比国外程序员的活跃性差很多,本人参加这种会议时总是观察到,一般都是老外在不停发言,国内同事一声不吭,有时干脆关掉自己这边的麦克风。文化产生的效果何其明显!可是在另外一种会议上,比如技术交流,技术学习会议,项目框架初步讨论、研讨等学术研究交流型会议,只要不涉及评论他人的成果,中国程序员们还是非常积极的,简直判若两人;唯一的不足是组织纪律性差,如果主持人控制会议能力不足,会被不停打断或者离题。所以,在组织前一种会议时,主持者一定要注意引导向后一种会议的研究型风格,把评审变成更优方案的探讨,寓贬于褒,或探讨方案长处和弱点,只要不太伤面子,不做根本性否定,方案的主人自然会取长补短做出调整的。
 
另一个国人不适合软件开发的特点是由“修齐治平”的观念造成的,“学而优则仕”是它的一个直白的解释。中国人的一般观念是:在一个岗位上做的好了,就应该提升到这个岗位的管理者的位置上。所以,程序员们努力工作多半是为了提升到不做程序员的位置上,不是像印度人有安于现状的淡泊,也不象日本人甘做螺丝钉,也不象西方人士为了兴趣爱好而狂热;没有信仰在这里成为一个缺陷,而有信仰的人往往更加有韧性,不容易浮躁,不轻易跳槽。而程序员要做到优秀是需要持续的学习,获取经验;统计数据表明:中国程序员平均从业时间为4年,美国为14年(2003年数据);这么大的差别,足以使两国的软件水平拉开几代的距离。从根子上看,这是中国人内心的等级观念造成的,学习和技术只是获取财富和地位的敲门砖。但在程序员这个职业上,这种传统思想是非常有害的。

而较长时间的教育使这些传统在他们内心更加深刻,交流少的技术工作使他们大部分在与行业外的人接触时表现得比较内向,自尊心强,自认为要优于对方;交谈时往往绝不谈及他们真正核心的工作内容。对批评的接受能力弱,容易夸大其辞,不愿意做与计算机无关的任何工作(当他还是一个程序员时)。
 
2005.11.04 初稿
 
2005.11.08 二稿


乔 2013-07-05 11:02:11

[新一篇] NASA公布高清圖片:地球之夜

[舊一篇] 程序員的四個境界
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表