计算机科学家和计算机程序员之间的区别

时间:2009-06-30 09:58:26

标签: computer-science

计算机科学家和计算机程序员之间有什么区别?他们在工业界的实际工作有何不同?(不是在学术界)你能提供一些真实世界的例子吗?

12 个答案:

答案 0 :(得分:34)

计算机科学是一个学术领域。这有点像学习数学。它正在研究和研究算法,数据结构等。

计算机程序员编写程序;这个术语倾向于用来描述工业界人士,当然计算机科学家也会编写程序。

典型的计算机科学家会像Don Knuth这样的人。他在算法方面的工作很有传奇色彩。

典型的计算机程序员可能是Jeff Atwood。我们现在正在使用他的网站。

答案 1 :(得分:9)

如今,即使他们所知道的唯一语言是VBScript,也可以称自己为计算机程序员。除了玩世不恭之外,我对自己的一些行业术语感到沮丧,例如: 计算机程序员软件开发人员

请参阅Definition of a software engineerDifference between programmers and engineers

科学家和工程师之间的差异非常明显。 需要了解计算机科学,但科学家的主要焦点是扩展科学知识体系,而工程师则专注于应用这些知识在现实世界的系统中。

答案 2 :(得分:7)

*puts on the not serious answer hat*

一个是务实的,另一个不是。

答案 3 :(得分:7)

与工程师和机械师一样。不幸的是,我认为我是一名机械师:P

答案 4 :(得分:7)

我是一名计算机科学家(说我的学位,所以一定是真的!)有26年的经验。我花了5%的时间编写程序;剩下的就是:

  • 其他人编写的性能测试应用程序,并在发现问题时推荐解决方案
  • 在大公司建立测试能力小组
  • 正在运营的运营团队
  • 运行R& D团队
  • 软件架构
  • 调查和批准适合我所在组织的架构解决方案(最近,Ruby,F#,Erlang)
  • 设计基础设施解决方案
  • 运行技术培训课程
  • ...

我现在编写的代码主要是为了让我的工作更轻松,或者为了我自己的兴趣;我不是一名“编码员”,很少依赖我的编码技能来获取收入。

如果您正在寻找行业差异的简单解释,我建议程序员主要关注完成什么以及何时完成,而计算机科学家主要关注它如何完成以及为什么。我有兴趣听听别人对这种区别是否适合他们经历的想法

答案 5 :(得分:5)

你可以与数学和应用数学并行。一个人能够探索和研究新的数学模型和定理,第二个是如何在实践中使用和应用它们。所以完全是计算机科学和计算机编程。一是探索新的CS场定理,探索新的有效数据结构,二是更有效地利用科学结果。

答案 6 :(得分:4)

实际上维基百科的定义非常好。

Computer Scientist

Computer Programmer

答案 7 :(得分:3)

我会用一个建房子的人和设计房屋的人的比喻。

现在还有第三类是寻找实施房屋设计方法的人。

所以,我会说程序员往往是程序的构建者,而科学家则专注于寻找实现peices的方法。在大多数情况下,程序员使用科学家的工作来完成他们的工作。

具体来说,我会说程序员在计算机科学家发现算法的同时实现快速排序算法。

答案 8 :(得分:3)

曾经有过一个笑话:

问:猿和CS教授之间的区别是什么? 答:猿不认为他可以编程。

对于CS教授而言,这是相当有意义的,其中许多人可以实际编程。然而,并非所有人都习惯于定期这样做。在理论上,你会看到基本上是数学家的人。一些人际关系人员在应用心理学领域比编程更多。可以找到这种类型的其他例子 - 计算机科学远不仅仅是编程。

另一方面,有许多练习程序员缺乏对CS理论的基本理解,例如big-O表示法。无论一个人是否应该这样看,它肯定不会阻止人们作为程序员来练习。

这一点,人们可以认为计算机科学家和计算机程序员并不是一回事,尽管它们绝不是相互排斥的。一个人可以是计算机科学家和计算机程序员。

答案 9 :(得分:2)

1个词:科学家或程序员。

答案 10 :(得分:1)

计算机科学家会担心你必须采取的道路才能实现目标,但对目标本身的担忧较少。 计算机程序员在截止日期之前不太关心道路和担心达到目标。

最好的软件往往是由两者兼而有之的人写的。你需要一条好路,以便其他人可以轻松地跟随,甚至可能在整个过程中改进。但是这一切都不应该是一个太大的分心,因为没有你先达到终点而无法通过。许多新项目未能启动,因为科学家需要在路上工作太多时间。此外,太多现有项目也失败了,因为程序员采取了快速路线,似乎没有人能够再次遵循它。

答案 11 :(得分:-7)

:-) 计算机科学家是一种欺诈行为。实际上没有计算机科学这样的东西,计算机本身是由电子工程师根据物理学家和数学家的工作建造的。软件的基础基础是数学的,并且由软件工程师(他自由地承认自己是计算机程序员)实现。

另一方面,计算机程序员就是他们所说的 - 编程计算机的人!