什么叫 “ 我是搞计算机的 ” ?

九阳豆浆机JYDZ-29
作者 陈道蓄

导言
  计算机无疑是 20 世纪对人类生活影响最大的科技成果之一 , 与同样影响深远的航天科技的伟大成果相比,计算机技术对于普通人日常生活的影响是直接而显著的 , 它在短短几十年中,渗透到人类生活的各个方面,同时也就产生了一大批人在职业上被称为是 “ 搞计算机的 ” 。

  本文试图从计算机软件的角度来探讨计算机作为一个 “ 行当 ” 是否包含了太多的内容,以至于有必要区分其科学、技术、工程以及应用等不同的方面 , 并希望这会引起计算机从业者,特别是计算机教育工作者更深入的讨论,让我们的人才培养更有针对性,效果更显著。

  计算机领域是个在大众高度关注下的领域,许多介绍计算机技术和应用的刊物出现在街头报刊亭中,这个行业中的许多头面人物几乎像文体明星一样具有公众显示度。但是,作为一个学科,公众头脑中的计算机专业有多大的准确性呢?

  我们先看看大众视野中的计算机技术。 PC 、 Windows 、 office 、因特网、 WWW 以至于 Linux 、奔腾这些名词会随时从没有任何专业背景的人口中脱出,五彩缤纷的视频效果是不少中学毕业生希望进入这一专业的重要动力,而要更 “ 专业 ” 一些,恐怕想到的也就是 “ 编程 ” 了。

  另一方面,如果我们选择近四十年来图灵奖的获奖成果作为在专家的视角下这一领域最有影响的进展的一个标志,那么远不止是一般公众,即使是 “ 搞计算机的 ” ,对其中大多数人和成果都不那么熟悉。从 1966 年开始到 2003 年共颁奖 38 届,有 47 位获奖人,其中有 15 人主要成果涉及形式系统与程序设计语言和方法,有 14 人主要成果涉及计算机算法及其复杂性理论。许多计算机专业的本科生在听到对其中有些成果的介绍时,甚至表示不知道这也算是 “ 搞计算机的 ” 。

  许多人有一种看法: “ 计算机只不过是工具 ” ,其后面隐含的话就是 “ 主要就是应用 ” 。这本身没有什么不对,但用它来作为计算机专业定位的出发点就会产生极大的误导。即使是菜刀这样的工具,也会涉及科学、技术、工程和应用的各个层面,如图 1 所示。菜刀过于简单,其他学科的知识足够它的需要了,因此没有什么 “ 菜刀科学 ” 。计算机软件则不然,它涉及了科学、技术、工程和应用等众多复杂的内容,让我们从不同的角度来看看,在各个方面 “ 搞计算机的 ” 人究竟在做些什么。

  按照传统的说法,从事科学的人是 “ 发现者 ” ,他们试图发现自然、社会等方面存在的规律;从事技术工作的人是 “ 创造者 ” ,他们利用已发现的规律试图创造新的物品、工具、方法来满足人类的需要,从事工程的人则是 “ 实现者 ” ,以合理的成本建造或生产稳定可靠的结构或产品满足大量人群的需要,如图 2 所示。
  
科学

  首先来考虑计算机科学。计算机科学应该是试图发现一类非自然结构的内在规律的学科,这类结构中涉及的现象 ( 既非纯粹的自然现象,又非一般意义上的社会现象 ) 的解释不能在已有的学科中得到。其实 “ 什么是计算机科学 ” 这个问题并不容易回答。以色列学者哈雷尔在《算法学:计算的本质》一书中提出这样的问题:论技术的影响,电话也很大,为什么没有电话科学?论技术复杂性,人造卫星很复杂,为什么没有被广泛接受的人造卫星科学。他认为其实计算机是计算的工具,用计算机给这门科学命名,就像用 “ 手术刀科学 ” 给外科学命名一样地不合适。当计算机科学这门新学科出现时 ( 一般认为美国卡内基梅隆大学在首位图灵奖得主佩利的领导下建立了最早的计算机科学系 ) 主要内容就是 “ 算法 ” 和 “ 形式系统 ” ,是 “ 程序设计的科学 ”( 不是现在大众理解的 “ 编程 ”) 。

  每个科学学科都有其所谓的 “ 终极 ” 问题。计算机科学的 “ 终极 ” 问题被认为是 “ 什么可以被自动地计算? ” 在计算机科学学科出现近五十年后,随着计算环境的发展,有很多还不清楚的问题需要我们去发现其答案。例如 Internet 已经发展成一个客观存在,但我们对其中数据与服务的分布、需求的模式、协同方式等等还了解很少,即使是传统的算法领域,很多问题还没有解答。软件本身日益复杂,如什么是合理的体系结构等等,这些方面的新知识将大大加深我们对计算机软件系统及其有效性的理解。
  
技术

  说到技术,我们要创造什么?概括起来看,人类希望用计算机来做三件事:

* 模拟 :从解方程到令人陶醉其中的虚拟现实,都是模拟
* 通信 :从跨越空间的常规意义上的通信到用存储功能实现的跨时间的
* 控制 :从巨大的火箭到洗衣机
  技术发展在可预见的未来,将围绕这三方面的功能,往高度人性化方向发展。汪成为院士曾在他的报告中用图描述了计算机技术的发展趋势,如图 3 所示。
  在试图实现上述技术进步的同时,软件本身的开发技术也在不断得到发展。从面向对象,到软件构件技术、中间件技术,新的工具和方法似乎天天在出现。
  但有一个经常导致争论的问题是:近年来软件技术的进步是革命性的,还是只不过是改良?这个问题没有答案,但每个人都有自己的观点。我认为,自面向对象技术出现以来,软件技术的进步虽然令人印象深刻,但主要是建立在硬件环境的进步以及量的积累上的,所以还谈不上是革命性的。

  面向对象的思想、理论和方法出现三十多年了,其科学上的先驱达尔、奈加特以及阿兰 · 凯对几十年来技术进步的巨大贡献通过 2001 年度和 2003 年度的图灵奖得到了肯定,尽管他们的 “ 有形 ” 成果 Simula 和 Smalltalk 从来没有广泛流行过。

  软件技术的革命性进步还在等待计算机科学的成果来推动,如图 4 所示。

工程
  
软件产品的质量难以保证,开发过程常常不易控制,这是困扰软件产业界多年的问题,而这一问题并不能单靠技术和工具来解决。软件开发的工程化要求开发人员成为真正意义上的工程师。

  工程师作为制造者、实现者与发现者、创造者有很大的不同。我们可以这样来看科学家与工程师思维方式的差别:前者要 “ 说人之未说,是非任人评判 ” ,要在一点上深入下去,可以暂时 “ 不及其余 ” ;而后者则要为用户负责,必须承担责任,他们必须面面俱到,即使不是关键技术上的不足也可能导致产品在市场上全面失败,他们的工作必须基于制度与规范约束下的合作。

  计算机教育家坦能鲍姆有个形象的说法:上帝创造世界却忘记了写说明书,科学家的任务就是补写出这部说明书,而工程师的职责则是用一角钱做出傻瓜必须用一元钱才能做的事。其实二者各有各的难处。

  美国进行的有关计算机教育的调查报告中提到,接受过正规的计算机科学与技术教育的人去从事工程工作时缺乏的相关技能知识包括沟通、人机交互、项目管理、软件成本、软件度量、可靠性与容错、需求,甚至于职业伦理。
  
应用

  随着信息化进程加速,与计算机相关的人员增加最快的应该是应用人员。他们往往并不是指应用软件开发工程师,而是另外两方面的人员:一是各个不同的专业领域内用计算机去实现他们各自计算需求的专业人员,另一部分是从组织层次建立和维护信息系统的专业人员。前者不应该是 “ 搞计算机的 ” ,而后者在美国 ACM 指导性教学计划编制者那里则被列为 “ 计算学科 ” 下的一个新学科,与 “ 计算机科学 ” 、 “ 软件工程 ” 等并列,名称被定为 “ 信息技术 ”(IT) 似乎并不合适,照该分支学科教学计划编制者之一 Lunt 教授的说法: “ 实在想不出更合适的名称。 ”

  应用可能是在我国计算机教育界有最多误区的一个方面。我想引用应用数学家林家翘在《科学时报》的一次访谈中说的话:现在我们严重问题是没有重视应用数学和实用数学 ( 数学的应用 ) 二者的区别。应用数学主动提出研究对象中的数学问题,通过问题的解加深对研究对象的认识,而实用数学的主要目的是满足社会需要,帮助服务对象解决他们提出的数学问题。我想我们可以说 “ 我们严重的问题是没有重视计算机应用技术和计算机技术的应用二者的区别 ” ,随着信息化和软件技术的不断进步,后者主要将不是 “ 搞计算机的 ” 。
  
结束语

   “ 搞计算机的 ” 是一个迅速扩大的群体, 如图 5 所示。其实这里面有着太多的不同。 科学、技术、工程和应用不仅需要不同的知识和技能背景, 更重要的是他们具有不同的思维方式和工作模式。 搞清楚这里的差别,对计算机学科的发展以及计算机人才的培养会有积极的作用。

陈道蓄,教授 , 博导。 1947 年生, 1982 年毕业于南京大学。 1985-86 年和 1995-96 年先后在美国普度大学和香港城市大学作访问学者,现任南京大学计算机系主任。目前的研究方向为分布式计算、并行处理。先后参加多项国家攻关和 “863” 研究项目,获国家教委科技进步一等奖、二等奖各

什么叫“我是搞计算机的”?相关推荐

  1. 2.3 我是“搞计算机的”——《逆袭大学》连载

    返回到[全文目录] 目录 2.3 我是"搞计算机的" 公众眼中的IT人 行家眼中的IT 搞计算机的人干什么 2.3 我是"搞计算机的" 常听人讲"我是 ...

  2. 利用计算机专业送礼物,送计算机教师的礼物(搞计算机的送的礼物)

    送计算机教师的礼物,送教育礼品,一套教师平板都是站着得到的,这样的礼物,可能还是很有必要的哦,不过,送教师节礼物送什么比较好.当你的理解,你应该先知道教师是什样的吧,我觉得你可以送点教师教师节礼物,这 ...

  3. 物流管理和计算机那个专业好,我是学计算机的女生,想跨专业考物流管理专业的研究生,好不好?...

    就上大学网为您推荐类似问题答案 问题1: 我是计算机专业的女生,想跨专业考金融研究生,该如何选择? 我也是学计算机专业的,前一阵,我们专业进行了一次优秀毕业生交流会,有个学姐就是跨专业考的金融的研究生 ...

  4. 用python写计算机专业_自学open cv,用Python写的,本人是一名学生党,因为我本专业不是搞计算机的_cc霜_学生党_教育_教育其他...

    自学open cv,用Python写的,本人是一名学生党,因为我本专业不是搞计算机的,所以一切从0开始,自己学习的时候就整理一些笔记,以防忘记了.

  5. 计算机专业能学AutoCAD吗,我是学计算机专业的,我现在学习AutoCAD2017,请问以后有用吗...

    技校网专门为您推荐的类似问题答案 问题1: 现在学习计算机语言和编程有用吗 没有基础或者人带,自学很难的,这个主要是要工作经验的啊,证书在编程这块没什么用,如果是网络拿个CCNA,CCNP就很牛了,但 ...

  6. 计算机和心理学哪个好考,我是学计算机的今年大三,想考心理学的研究生,不知道未来的就业怎么样?有什么大发展,想问问大家给点建...

    我是学计算机的今年大三,想考心理学的研究生,不知道未来的就业怎么样?有什么大发展,想问问大家给点建以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让 ...

  7. 【咆哮体程序员版】搞计算机当程序猿的人你伤不起!伤不起啊!!!

    Categories: 八卦 Tags: 咆哮的程序员 Author: dyerac 转载自:http://dyerac.com/index.php/2011/04/cry_for_programme ...

  8. 学计算机的能考什么职称,我是学计算机专业的,本科,请问我能考那些类别的职称...

    我是学计算机专业的,本科,请问我能考那些类别的职称 來源:互聯網  2010-02-23 08:20:59  評論 分類: 教育/科學 >> 職業教育 參考答案: 全国计算机技术与软件专业 ...

  9. 搞计算机的离开高校的几个理由

    计算机专业人士是什么?是指对计算机有一些认识并达到专业级水平的人员. 这种离开高校的理由: 1.在高校工作比在国企或私企,工资福利更差: 在高校一个职员(教师或职工)的工资一般般,但假如一个有能力的计 ...

最新文章

  1. 常见问题--项目管理的整体过程是什么?核心的是什么?
  2. ui自动化测试测试报告_您需要了解的有关UI测试的所有信息
  3. ms access to mysql_Access转MySQL工具
  4. 好用的重装系统前使用的windows系统软件名称导出备份工具
  5. 二级计算机vf题型,2010计算机等级考试二级VF考试题型与解题技巧
  6. 二维数组作数据源填充到repeater
  7. Android 布局管理器 之 TableLayout
  8. 四轮定位和四轮动平衡有什么区别?
  9. ExpressionFuncTObject, bool与FuncTObject, bool的区别
  10. C++基础:造成多态性的原因是什么?
  11. asp.net 获取计算机启动时间
  12. 思科模拟器-单臂路由tftp配置
  13. IT技术分享的一点点总结
  14. python进行数据处理——pandas的drop函数
  15. 获取斗鱼直播间的弹幕信息
  16. ~ 运算符和 ~~ 运算符(JS)
  17. 名片识别 java_基于JAVA的名片识别接口调用代码实例
  18. 其他笔记 - Scum和KANBAN
  19. HTML5期末大作业:基于HTML+CSS+JavaScript校园文化企业网站模板【学生网页设计作业源码】
  20. centos挂载盘到根下_centos挂载磁盘及扩展根目录

热门文章

  1. AWS KVS(Kinesis Video Streams)之WebRTC的C库测试
  2. 一分钟快速了解边缘计算
  3. HDU 1208(Pascal's Travels)
  4. 互联网时代:天才与伟人的区别
  5. 创新案例分享 | 构建医院绩效管理系统,助力医疗产业蓬勃发展
  6. python职业发展规划书范文_职业发展规划书精选范文
  7. 大数据项目实践过程笔记
  8. 关于公网IP和私有IP的区别
  9. [Go WebSocket] 为什么我选用Go重构Python版本的WebSocket服务?
  10. 笑出腹肌!程序员从不撒谎,但注释却会!