1.3 人
计算机是人来制造的,也是人来使用的。计算机是一种非常通用的工具,它可以用于很多你无法想象的任务。计算机运行程序,做一些对人有用的事情。换句话说,计算机只是一个硬件,除非某人(程序员)编写代码令它做某些有用的事情。我们常常会忘记软件。更经常忘记程序员。
好莱坞和类似的“流行文化”中的谣言已经给程序员造成很负面的形象。例如,我们总是看到孤独的、肥胖的、丑陋的、不懂社交技巧的讨厌鬼,并且总是痴迷于视频游戏和闯入其他人的计算机。他(几乎总是男人)可能是想毁灭世界,也可能是想拯救世界。很明显,这种漫画式人物的温和版在现实生活中是存在的,但是以我们的经验,在软件开发者中出现这类人的可能性,并不比在律师、警官、汽车销售员、记者、艺术家或政治家中更高。
思考一下你从身边生活中所了解的计算机应用软件。它们是一个孤僻的人在一间黑屋子中独立完成的吗?当然不是,创建一个成功的软件、计算机设备或系统,需要几十、几百乃至几千人扮演一系列令人眼花缭乱的角色,例如程序员、(程序)设计者、测试人员、美工人员、开发小组管理者、实验心理学家、用户界面设计者、分析人员、系统管理员、客户关系人员、音效工程师、项目经理、质量工程师、统计人员、硬件接口工程师、需求分析工程师、安全主管、数学家、销售支持人员、答疑人员、网络设计人员、方法论学家、软件工具管理员、软件库管理员等。这些角色的范围很广,不同组织使用的头衔也不尽相同,这都使人更加迷惑。一个组织中的“工程师”可能是另一个组织中的“程序员”,也可能是另一个组织中的“开发人员”“技术人员”或“架构师”。甚至有的组织允许其雇员挑选自己的头衔。并不是所有角色都与编程直接相关。但是,对于前面提到的每种角色,我们都曾见到过实际的例子,承担这种角色的人的工作的重要组成部分就是读写代码。另外,一个程序员(扮演这些角色中的一个或多个)在短时期内会和不同应用领域的人打交道,例如生物学家、发动机设计师、律师、汽车销售员、医学研究员、历史学家、地理学家、宇航员、飞机工程师、木材库经理、火箭科学家、保龄球馆建设者、记者和漫画家(这个列表是从个人经历中得到的)。此外,有些人可能在某个阶段是一个程序员,而在职业生涯的其他阶段扮演非程序员的角色。 ...