“程序员文化”之正名

原创 2003年08月08日 08:42:00

“程序员文化”之正名

 (本文首发于《中华读书报》8月6日号)
熊节

  我总是很愿意把“程序员”和“文化”这两个词组合在一起使用。不独是我,我相信每个程序员都希望有一种属于自己的文化。上至帝王将相,下至贩夫走卒,多年传统的职业分工和社会地位划分使这些人群都有属于自己的文化。但程序员(或者说,软件开发者),这个信息浪潮催生的新兴人群,却无意间变成了文化的荒原——至少在中国是如此。一个证据?在最大的华语软件开发专业网站CSDN.net的论坛上,你可以毫不费力地找到诸如“程序员=民工”或者这样的帖子,而且响应者众。抛开结论不谈,这样的讨论本身已经足以证明“程序员文化”的失位——你能想象建筑师们展开一场“建筑师是否等于民工”的讨论吗?究竟什么是“文化”?在媒体研究名著《消失的地域》一书中,约书亚·梅罗维茨认为,自电子媒介时代以降,文化是一个小群体独占性接触的知识,以及知识外化形成的语词。用更通俗一点的话来说,文化就是用话语营造的藩篱,是维护一个小圈子神秘感的屏障。或者可以说得更直白一些:大多数时候,“文化”这个词并不像它所表现的那么高尚,它是一个小圈子得以区分于其他人群、得以成为稀缺资源、得以获得更高待遇的武器。

  有位老朋友曾经说过一句精彩的话:“软件与软件之间的差异,不会比软件与大白菜之间的差异来得小。”是的,按照我们的设想,在信息化时代的末期,软件将无处不在。一个逻辑常识:外延越宽,内涵越窄。当软件的外延宽泛到无所不包的时候,如何期望两个“软件开发者”能够有共同的语词,如何期望他们用这些共同的语词来营造一种文化?

  这时,一本书出现在我的脑海中:Gerald Weinberg的《程序开发心理学》(清华大学出版社即出)。在阅读这本书时,我注意到一个有趣的现象:Weinberg老先生不断地强调“专业程序员”与“业余程序员”之间的分野。在他看来,尽管都是用C或者Fortran(这本书有些年头了,现在我们或许应该说“C++或者Java”)编写程序,但业余的编程爱好者与专业的软件开发者有着天壤之别。例如,校园里的“编程高手”或者计算机系的高材生,如果没有在软件企业中做过项目开发,他就只能是一个业余程序员。因为软件开发最重要的,并不是一时一地的技术,而是——套用老先生的话——心理因素。尽管PC的普及极大地模糊了“业余”与“专业”的界限,但“业余程序员……就程序开发的理论与实践侃侃而谈”仍然是“最令专业程序员们反感的”。“毋庸讳言,二者之间的差别也是客观存在的。”

  这就是了。试图从技术、从应用的角度找到程序员之间的共同话语,这本身就是一次错误的尝试。专业程序员之间必定有某种共通之处,但那必定不是他们掌握的技术或者他们面对的应用领域,而是他们作为专业程序员所具备的那种心理素质,以及他们从事专业软件开发时求解问题的方式。举个最常见的例子:业余程序员总爱讨论“Java与C++哪个好”这样的话题,甚至常常可以把问题上升到计算理论、哲学思辨一类的高层次;但在专业程序员的眼里,这根本是一个伪问题——专业程序员考虑的是在用户允许的成本条件下按时交付用户需要的软件产品,而当范围、应用域、时间、成本等诸元确定之后,几乎从来不会出现语言抉择的问题。毕竟Java与C++适宜的应用域交集极小。

  作出“业余”和“专业”的划分,我们已经在厘清“程序员文化”的道路上迈出了可喜的第一步。另一位成名多年的软件开发者、技术顾问Pete McBreen则走得更远。在他的《软件工艺》(即将由人民邮电出版社出版)一书中,McBreen借用工艺学的传统,提出了“学徒——技师——工匠”(apprentice-journeyman-craftsman)的三级划分。在他看来,大学文凭早已不能作为鉴别毕业生水平的标准,SCJP一类的认证考试代表了“six-pack”式的廉价货(six-pack指美国常见的一种廉价批发滞销啤酒的方式),外面的培训班根本教不出真正有用的东西。惟有软件开发者本身的声望——reputation,如果阅读这本《软件工艺》,你会不断地看到这个词——能够证明他的实力。软件开发者要想获得更高层次的认可,也只有靠自己在低层次的打拼,获得足够的声望。

  不知道你是否喜欢这种论调?在计算机系里混了四年的学生、自己写过几个小程序考了一张MCSD或者SCJP的“编程高手”、参加了三个月“软件工程师班”培训的学员……当他们毫无顾虑地把自己称为“程序员”或者“软件工程师”时,当他们与从业多年的程序员(至少在表面上)无法区分时,我相信这是对整个行业的损害,也是对他们自身的损害。《中华读书报》的读者,如果你恰好不是IT业内人士,请想想你对于程序员这个人群的整体印象,相信你的观点能够证明我的结论。

  所以,在我看来,这才是“程序员文化”的正道:划分人群的标准不是Java、C++、.NET……,而是“专业”与“业余”、是“学徒——技师——工匠”。惟其如此,同一人群才能真正拥有共同的话语;惟其如此,希望进入这个文化群体的人才能找到正确的方向——看看现在的初学者们吧,“Java与C#,我应该学哪一个?”,难道你认为他们这样真的能一窥程序员文化的堂奥吗?

 

品The Tao Of Programming-享受程序员文化

《编程之道》是一本另类的计算机图书,它没有教你编程技巧,也没有教你开发工具和方法,而是用富有哲理的故事和短小精悍的语句来启发我们的思考。程序的源头来自西方科学,而“道”来自东方哲学。这本书颇有东方古典...
  • jiangtao
  • jiangtao
  • 2006年07月20日 11:51
  • 16425

尚学堂百战程序员1573题 第五章

第五章 面向对象 1. 简述面向对象和面向过程的区别和联系? 2. 对象和类的关系是? 3. 栈的特点是?存放什么内容? 4. 堆得特点是?存放什么内容? 5. 【上机】画出如下程序的内...
  • q2wxec
  • q2wxec
  • 2017年06月13日 17:03
  • 1590

未来,有关程序员的十个预言

作为程序员,我们总是身处于如万花筒般变化无常的技术世界里。我们可能也是那群能够最早感知到科技变化所带来巨大影响的人。然而,面对这一波又一波向我们袭来的技术变革,我们是否也能从中窥见一丝规律,从而使自己...
  • xiaole0313
  • xiaole0313
  • 2016年10月20日 15:22
  • 2222

程序员的量化交易之路(1)----规划开篇

其实,一直对量化交易有一定的理解和情节。早在中大读研究生的时候实验室师兄,已经去了中国平安核心投资团队,做高频交易研究的国源师兄的影响,就开始对金融世界产生了浓厚的兴趣。看了丁磊编著的《量化投资--策...
  • MiniMicall
  • MiniMicall
  • 2015年05月19日 03:30
  • 8403

“父亲节”为程序员正名——谁说程序员不会表达爱?

在大多数人的认知里,程序员的代名词就是呆板、木讷,不善交际,不懂浪漫,和文人骚客、文艺青年是截然相反的一个群体。       事实是这样吗?程序员们,你认同上面的说法吗?       你看...
  • itcast_cn
  • itcast_cn
  • 2014年05月27日 09:07
  • 1011

“父亲节”为程序员正名:谁说程序员不会表达爱?

在大多数人的认知里,程序员的代名词就是呆板、木讷,不善交际,不懂浪漫,和文人骚客、文艺青年是截然相反的一个群体。       事实是这样吗?程序员们,你认同上面的说法吗?       你看...
  • u010339531
  • u010339531
  • 2014年05月21日 17:41
  • 751

程序员文化基础学习笔记

  • 2008年10月09日 01:59
  • 46KB
  • 下载

程序员喝酒喝出的计算机文化

大家喝的是啤酒。这时你入座了。 你给自己倒了杯可乐,这叫低配置。  你给自已倒了杯啤酒,这叫标准配置。 你给自己倒了杯茶水,这茶的颜色还跟啤酒一样,这叫木马。 你给自己倒了杯可乐,还滴了几滴醋...
  • netimmortal
  • netimmortal
  • 2012年07月24日 13:39
  • 737

程序员加班文化是怎么来的?

我是一家农村电商研发部门的主管,接管研发部门后,一直都想写一篇关于程序员应不应该加班的文章,这段时间部门已经有几个年轻人都辞职了,其中有个女孩跟我说辞职原因是“男朋友心疼”。另一个男孩跟我说的辞职原因...
  • zhongguomao
  • zhongguomao
  • 2016年11月21日 08:13
  • 230

程序员文化水平闯关挑战卷

1,以下谁是二进制思想的最早提出者?    a,伏羲;b,姬昌;c,莱布尼茨;d,柏拉图。 一:伏羲     伏羲,中华民族人文始祖,是我国古籍中记载的最早的王,所处时代约为新石器时代早期。...
  • u012605629
  • u012605629
  • 2015年02月13日 21:37
  • 478
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:“程序员文化”之正名
举报原因:
原因补充:

(最多只允许输入30个字)