[译]程序员都是工程师吗?

所有的程序员都是工程师吗?当然不是。工程师是必修课,程序员则是选修。工程师为自己的事业工作,而程序员做他们喜欢做的事情。工程是实实在在的,编程是抽象的。

为了吸引注意力,Slashdot提出了一个备受争议的老话题:所有的程序员都是工程师吗?

当然不是。

我曾经却不这么认为。我的母校是伊利诺伊大学香槟分校,计算机科学系是工程学院的。我可以证明,这好几年都在学和工程师一样的课程。

正因为很多学校把计算机科学归于工程学院,很多程序员毕业之后都以为他们和工程师没什么区别。但是差别很快就会显现出来。(写给新入IT的新人们

工程师是必修课,程序员则是选修。

要做一个工程师,你就必须获得授权。你必须通过专业的工程师考试。在工程这个领域,你必须有证书来证明你知道正确答案。在法律专业,也是这样。我非常确定对于著作权法的了解我比一些小型城市的律师强。然而他们可以在这个领域内发表一些自己的观点,但是我就不行。工程学也如此。有些事情只有有执照的工程师做才合法。

但是每一个人都可以编程。但是,不一定能把程序编好。(前端工程与性能优化

工程师为自己的事业工作,而程序员做他们喜欢做的事情。

通常,工程师比程序员拥有更高的学位。有人认为他们想证明自己,但是我认为,这源于对事业的选择。许多程序员都是因为兴趣编程,并逐渐地变得专业。我就是这样。很多年前我还不会开车的时候就会编程了。有时候,我们做了错误的决定,正是因为混淆了爱好和专业的区别。

工程师却不是这样。人们不会将桥梁建筑作为他们的爱好,而选择将成为桥梁工程师作为自己的事业。工程师们通常将他们的工作作为自己的事业,因为这一直都是他们的梦想。

工程师理解地更深,程序员通常不知道他们在做什么。

通常,工程师可以预测工作流程。他们不会陷入纷繁复杂的参数中,不必纠结于使用什么方法来完成项目。让他们来估测一个项目,通常会得到准确的答案。

到现在为止,没有管理软件项目的通用方法。每个人的方法都不同。一些人几乎没有用什么程序,却得到了惊人的结果;一些人用传统的方法论,却不能按时解决问题。

工程是实实在在的,编程是抽象的。

工程师使用的是物理的东西,像力学,电和热。当工程师建造什么东西的时候,通常是实实在在的事物,可以摸得到,可以拿在手上,甚至可以保持它的形态度过几个世纪。

编程利用的是一些抽象的东西。我们创造变量并赋予他们名字,通过操作它们来创造事物。当产品最后完成的时候,不需要什么制作流程。成品不过是一些字节。理论上讲,如果一只猴子在键盘上敲打,也有几率敲出相同的字节。这样生产处的产品是看不见摸不着的,可能在几年之后,就不再有什么价值了。

我的意思并不是说工程师就比程序员更有价值。我能建造出一座桥,一台电视,或者一条小舟吗?不,但我藐视一切能建造它们,部署优秀控制系统的工程师。因为程序员同样解决了困难的问题。

我们的大学,由于没有适合我们的学院,而将我们称为「工程师」。我不会怪他们,因为我并不会期望借「工程师」这几个字来获得更多的尊重。

为什么就不接受软件开发是一个特殊的行业呢?我们必须承认没有别的领域,像编程这样。工程师对我来说太枯燥。我喜欢做一个程序员。

本文翻译自: Eric

[译]程序员都是工程师吗?

时间: 2024-11-07 10:18:02

[译]程序员都是工程师吗?的相关文章

每一个程序员都应当了解的11句话

每一个程序员都应当了解的11句话,你最同意哪一句? 1. 技术只是解决问题的选择,而不是解决问题的根本 我们可以因为掌握了最新的 JavaScript 框架 ahem.Angular 的 IoC 容器技术或者某些编程语言甚至操作系统而欢欣雀跃,但是这些东西并不是作为程序员的我们用来解决问题的根本——它们只是用于帮助我们解决问题的简单工具. 我们必须非常谨慎,不要对某项正好喜欢或者正好很火的特定技术走火入魔.否则,我们将进入这样的思维怪圈:把掌握的那项技术比做是锤子,在思考问题时,会自然的把所有的

每个程序员都必读的12篇文章

英文原文:10 Articles Every Programmer Must Read 作为一名 Java 程序员和软件开发人员,那些每个程序员都应该知道的 XXX 的文章教会了我不少东西,它们提供了某个特定领域的一些实用的并且有深度的信息,这些东西通常很难找到.在我学习的过程中我读到过许多非常有用的文章,我把它们添加到了书签里,方便以后阅读或者引用.我个人认为所有开发人员都能从这些文章中受益,因此我也写了篇"每个程序员都应该了解的"文章,准备分享给你们.这是我的个人收藏.在这篇文章中

所有的程序员都是自学成才

在我十几岁的时候就开始玩甲级棒球.我水平很差,但当我决定要做好什么事时,最终总能如我愿.现在我是计算机专业3年纪的学生.在编程上,有些事情和体育是截然不同的:棒球教练可以教会你如何打棒球,但一个计算机教授却不能教你如何编程. 我很吃惊,在整个大一期间,我的老师或教授从来不点评我的代码,大二时更是如此.我们的作业很多,题目很难,但在完成了数据结构课上的2000行的代码后,我从来没有收到过老师的任何一条评论--只要程序能编译通过,单元测试显示没有错误,这就行了.直到遇到了一个小组开发的项目,我才认识

每个程序员都必读的10篇文章

作为一名Java程序员和软件开发人员,那些每个程序员都应该知道的XXX的文章教会了我不少东西,它们提供了某个特定领域的一些实用的并且有深度的信息,这些东西通常很难找到.在我学习的过程中我读到过许多非常有用的文章,我把它们添加到了书签里,方便以后阅读或者引用.我个人认为所有开发人员都能从这些文章中受益,因此我也写了篇“每个程序员都应该了解的”文章,准备分享给你们.这是我的个人收藏.在这篇文章中,你会看到每个程序员都应该了解的一些经典文章,涵盖了内存,unicode,浮点数,网络,面向对象设计,时间

每一个程序员都必须阅读的10篇文章

原文:10 Atricle Every Programmer Must Read by Javin Paul 作为一名Java程序员和软件开发者,我已经从那些名为<关于XXX,每个程序员都应了解的>的文章中学了很多东西,这些文章倾向于提供许多关于某一个特定主题的实用的.有深度.难以发掘的信息.在我的学习过程中,我读到了不少非常有用的文章,我会收藏这些文章以便日后参考和再次阅读.我个人认为所有程序员可以从这些文章中获益,这也是促使我发帖,并与你们分享这些<关于XXX,每个程序员都应了解的&

MySQL常用指令,java,php程序员,数据库工程师必备。程序员小冰常用资料整理

MySQL常用指令,java,php程序员,数据库工程师必备.程序员小冰常用资料整理 MySQL常用指令(备查) 最常用的显示命令: 1.显示数据库列表. show databases; 2.显示库中的数据表: use mysql; show tables; 3.显示数据表的结构: describe 表名; 4.建库: create database 库名; 5.建表: use 库名: create table 表名 (字段设定列表): 6.删库和删表: drop database 库名; dr

后端程序员都做些什么?

后端程序员都做些什么? 2017-12-25 刘欣 程序猿 来自:码农翻身(微信号:coderising) 这个问题来自于QQ网友,一句两句说不清楚,索性写个文章. 我刚开始做Web开发的时候,根本没有前端,后端之说. 原因很简单,那个时候服务器端的代码就是一切:接受浏览器的请求,实现业务逻辑,访问数据库,用JSP生成HTML,然后发送给浏览器. 即使后来Javascript在浏览器中添加了一些AJAX的效果,那也是锦上添花,绝对不敢造次.因为页面的HTML主要还是用所谓"套模板"的方

为什么C++所有程序员都值得一学?

相信很多没有学习过C++的程序员都有这样的疑惑: 2.1.C++是不是很难?2.我又不找C++的工作,学C++干嘛?3.新的编程语言层出不穷(Java.C#.Python.Swift......)干嘛要学一个老掉牙的语言?4.从事IT行业从来没用过C++,它究竟有什么用?5.学了C++能干嘛? 不知道你是否有这样的疑惑,但是C++绝不是一个无用的语言,相反,C++在编程中的重要性几乎无可替代.我们来盘点C++值得学习的七大理由: 理由一.我们来看,在2019年6月Tiobe世界流行编程语言排行榜

程序员都不知道的5种将死的编程语言

现在的开发人员都趋向于使用新的编程语言,那么旧的编程语言呢?它们的前途一般是这样两种:仍然可以使用,但逐渐不受大家欢迎,直接完全死去.程序员都不知道的5种将死的编程语言下面给大家说说: Perl 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"piecemeal"的编程语言,它的创造者似乎就只是将这个功能堆在另一个功能上面而已,并没有好好考虑将它们结合在一起.事实上,甚至是它的创造者也不得不承