`
yy19870101
  • 浏览: 7865 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

开发人员、程序员与计算机科学家三者之间的区别

阅读更多

我经常使用这三个几乎可以互换的词,是的,甚至包括计算机科学家。毕竟,我们中的大多数人都拥有计算机科学学位,那这三者有什么不同呢?然而,最近我发现这三者的特点在我脑海中愈发泾谓分明。当我一想到那些我认识或者从事这个行业的人时,便能马上将他们归为这三种之一。不是说一个人不能同时拥有这三者的全部特点,但无论如何,他们总会更倾向类一种,那么我便把他们归属到那一类,程序员、开发人员或者计算机科学家



 (原文作者:Alan Skorkin)

  其实很难对这三者下定义(相比严格的描述,这更靠直觉而定)。虽然它们非常相似(确实如此),但我还是尽力分辨,因为我是个不怕吃苦的人。 :)


  计算机科学家

  他们写代码(是的,我知道这有点让人吃惊)。他们所写的代码,也许不是最漂亮或者构造最好的代码,但是能完成任务。这跟代码设计或者“良好”习惯没有关系,只是用来证明他们要去证明的东西。计算机科学家不仅是技术专家,而且还是数学家(他们有31337种数学技巧),他们不仅要知道代码是有效的,还必须对其作出证明。沟通和人际交往能力是理想的品质,但不是必须的。这些人掌握了他们整个研究领域足够的基础知识,但他们会专攻其中一点或者几个狭小的领域。在这些领域中,他们是世界级的专家。他们在私人时间里做着和他们研究相关的工作。


  程序员

  程序员编写非常棒的代码。代码简化,构造优良并且要没有错误(error free),这些非常重要,但是他(她)们不能以无法完成任务为代价。在他们的领域中,全是关于了解“优秀代码”的含义。他们需要掌握一些数学技巧,但这不是最重要的。他们需要清楚好(最好)的问题解决方案,但不必加以证明该方案是最佳的。对他们而言,必须掌握足够广泛的算法,并且在专业知识方面掌握有熟练的技巧,在相关领域也具备相当优秀的知识。沟通和人际交往能力是理想的品质,但不是必须的。软件开发过程和团队活力是理想的品质,也不是必须的。他们在不上班的时候,做个人软件项目,以寻找乐趣。


  开发人员

  他们写代码。优化和简化代码固然重要,但通常会优先考虑其它因素。数学技能不是必须具备的,但有助于了解与他们所在领域相关的常见问题及解决方案。沟通和人际交往能力是最重要的。软件开发过程和团队活力是赖以生存的技能。他们是不依赖任何真正专业技术的全才。他们擅长绕过问题,集成组件,从而满足一系列要求。在个人时间里,他们不是在尽力构建下一个Facebook,就是参加与编程、开发或者计算机科学无关的活动。

  (编注:Alan曾撰文讨论开发人员和数学之间的关系,他认为:成为优秀的开发人员,可以没有数学技能,但成为卓越的开发人员,不能没有。详情请参阅《数学是成就卓越开发人员的必备技能》一文。)

  • 一定程度上,开发人员就是程序员。
  • 一定程度上,计算机科学家就是程序员。
  • 企业软件属于开发人员的领域。
  • 谷歌和微软是程序员缔造的(包括小部分计算机科学家)。那里的开发人员最终成为了产品经理。
  • RnD(研发)和学术界属于计算机科学家的领域(在较小程度上包括程序员)


  需要记住的是,这三者在任何方面中都不存在贬义或者不好的意思。他们体现的价值是相等的。他们只是我们所涉及的领域中不同的方面(有一些交叉点)。可能其中一个会有更多与众不同的特点,但这并不意味着这三者不能相互渗透、相互融合。一名出色的开发人员完全有可能同时是一名杰出的程序员(虽然要关注于那么多重要的事情是很困难)。极少数情况下你会遇到甚至集三者于一身的情况,那也是我乐意从您那了解的情况。因为我们应该一起开公司,那样我就可以借着你这牛人一路顺风:)。不过不管你在哪儿失败,只要你把握住三者之一,都完全有可能大获成功。

  什么是软件工程师呢?他们只是开发人员的一个子集。


  我相信我没有完全表达清楚我的想法。不过没关系,这个任务交给你了,亲爱的读者。您是否认为程序员、开发人员和计算机科学家是有区别的?如果是,那您对它们的定位是否跟我的相似?如果不是,我很乐意倾听你关于他们的想法。(编注:个人一直把“程序员”等同于“开发人员”,从未想过两者之间的区别。正如 Alan 所期待,如果你有其他想法,请在评论中和大家一起讨论分享吧。)

分享到:
评论

相关推荐

    程序员十层楼

    除了上述三个层级外,书中还详细讨论了从“牛人”层级向上的七个层级,包括“大牛”、“专家”、“架构师”、“技术管理者”、“技术领袖”、“业界领袖”和“技术思想家”。每一层都有其特定的技术要求和成长路径,...

    程序员十层境界(很经典)

    像Linus Torvalds(Linux之父)、Richard Stallman(自由软件运动的发起人之一)、Don Knuth(计算机科学家,算法分析领域的先驱)等人便是此类人物的代表。 #### 第七至第十境界:探索者、革新者、领导者、哲学家 ...

    《计算机科学概论》课后答案

    ### 《计算机科学概论》课后答案解析 #### 第一部分:人物与成就匹配 **题目解析** 在这一部分,我们需要将历史上几位重要的先驱与他们的贡献进行匹配。以下是具体的匹配解析: 1. **问题一**:哪位法国数学家...

    历史上最伟大的12位程序员

    尼克劳斯·维尔特是一位瑞士计算机科学家,以其在编程语言设计方面的贡献而闻名。他曾任斯坦福大学助理教授,并在苏黎世大学任教。1968年成为苏黎世联邦理工学院的信息学教授。维尔特设计了多种编程语言,包括Algol ...

    如何像计算机科学家一样思考:C ++版本How To Think Like A Computer Scientist: C++ Version

    《如何像计算机科学家一样思考:C++版本》不仅是一本教授C++语言的书籍,更是一本旨在培养读者成为优秀问题解决者的指南。通过学习本书中的内容,读者不仅可以掌握C++编程的基本技能,还能学会如何运用计算机科学家...

    程序员简历模板.doc

    【程序员简历模板】是为求职者提供的一种展示个人专业技能和经历的标准格式,适用于程序员或软件开发人员在面试时向潜在雇主展示自己的能力和成就。以下是对模板各部分的详细解释和扩展: 1. **个人信息模块**:这...

    软件工程思想 讲述“软件开发”和“做程序员”的道理

    为了解决这些问题,1968年的一次会议上,一群程序员、计算机科学家及工业界人士提出了通过借鉴传统工程领域的管理经验和技术手段来开发软件的理念,这就是后来被称为“软件工程”的概念。经过几十年的发展,软件工程...

    程序员 软件工程思想

    **内容概述**:“在1968年,一群程序员、计算机科学家与工业界人士聚集一起共商对策。” - **软件工程的诞生**:为了应对软件危机,1968年召开的一次会议上,提出了“软件工程”这一概念,旨在通过引入工程化的管理...

    计算机与数学的关系PPT课件.pptx

    计算机科学与数学之间存在着深厚的联系,这在PPT课件中得到了充分的展现。其中,冯·诺依曼被尊称为“现代电子计算机之父”,他的贡献不仅限于计算机科学,他在数学、物理学和经济学等多个领域都有深远的影响。冯·...

    《计算机科学经典着作集合》图书介绍.doc

    《计算机科学经典著作集合》是一份详尽的编程书籍推荐列表,包含了计算机科学领域的权威作品。...无论是为了学术研究,还是实际开发工作,这些书籍都能提供无尽的洞见和灵感,是每一个程序员和计算机科学家的必备参考。

    程序员知识

    在计算机科学领域中,进程与线程是两个非常重要的概念。理解它们之间的区别对于编程者来说至关重要。 - **进程**:一个进程是一个正在运行的程序实例。它包括了程序的指令、数据、状态以及用于操作系统资源管理的上...

    《软件工程思想》讲述“软件开发”和“做程序员”的道

    1968年的一次会议上,程序员、计算机科学家以及工业界人士共同提出了通过工程化方法来解决这些问题,由此诞生了“软件工程”这一概念。 - **发展现状**:尽管软件危机并未真正爆发,但软件工程领域的发展迅速,已经...

    如何像python程序员一样思考

    作为一位有着丰富教学经验的计算机科学家,他在教授入门级编程课程时遇到了一系列问题:学生的失败率过高,即使是成功完成课程的学生,在编程能力上也没有达到预期的高度。作者认为这些问题的根源在于当时可用的教材...

    计算机程序设计艺术+第1卷:基本算法(第三版)高清中文版

    这本书的全名是《计算机程序设计艺术》第一卷:基本算法(第三版),其内容深度和广度都令人叹为观止,对全球程序员和计算机科学家产生了深远影响。比尔·盖茨曾高度推荐此书,认为它是程序员必读的经典之一,足以...

    Ada为Ada 2005提炼的Ada:面向经验丰富的计算机程序员的Ada编程简介Ada Distilled for Ada 2005: An Introduction to Ada Programming for Experienced Computer Programmers

    本书作者Richard Riehle是一位资深的计算机科学家,对Ada语言有着深入的理解。通过本书,读者将能够了解Ada语言的核心概念及其在软件开发中的应用。 #### 二、Ada语言的发展与演进 Ada语言自诞生以来就不断进化和...

Global site tag (gtag.js) - Google Analytics