Skip to content 跳到章节

💻起源与演变

Software Engineer · 写作,测试和维护了管理现代生活的代码——也是最早观看AI将自己的日常工作自动化的职业之一.

一眼看清
年表

按时间排列的节点,不是每周活动格。

1843 Ada Lovelace 发布第一个算法1890 Hollerith的拳头卡片 统计了人口普查1943–1945 6名妇女方案1952 Grace Hopper 完成第一个编译器1957 IBM 704号机的FORTRAN舰1968 北约会议名称“软件工程”1969–1973 Unix和C在贝尔实验室成型1981 IBM PC 将软件带到每个办公桌1991 Linux和万维网相隔数月2021–2023 AI 移动到代码编辑器中
  1. Ada Lovelace 发布第一个算法
  2. Hollerith的拳头卡片 统计了人口普查
  3. 6名妇女方案
  4. Grace Hopper 完成第一个编译器
  5. IBM 704号机的FORTRAN舰
  6. 北约会议名称“软件工程”
  7. Unix和C在贝尔实验室成型
  8. IBM PC 将软件带到每个办公桌
  9. Linux和万维网相隔数月
  10. AI 移动到代码编辑器中
指标浓度

格子越深,表示该主题在这项指标上越高。

最近审阅 来源与署名媒体署名方法说明

简短问答

一个软件工程师整天做什么?

大部分时间分写新的代码,在审查期间读别人的代码,修补bug,和队友谈论下一步要建设什么. 会议、规划和指导花费的时间比新来者预期的要多。 高级工程师个人写的代码往往比初级工程师要少,在设计决策,评论和解除对他人的封锁方面花费更多的时间.

我需要计算机科学学位才能成为软件工程师吗?

没有,但它仍然是最常见和最低的防爆路线。 四年制学位教授算法,数据结构和系统概念,在工作上学习费用昂贵. Bootcamp毕业生和自学工程师确实被雇佣,尤其是被较小的公司雇用,但通常需要强大的组合或开源工作来取代证书.

软件工程有AI的风险吗?

部分已经是了。 现代代码编辑器中构建的工具现在为经常使用这些代码的工程师写了很大一部分常规代码——锅炉板,第一稿测试,语言之间的翻译. 更难实现自动化的是决定构建什么,为什么,以及如何塑造一个系统,使它能与真正的用户保持接触和失败。

软件工程师挣多少钱?

它因国家和公司而异。 在美国,年中值约为133 000美元;在德国,约为69 000欧元;在印度,该行业雇用人数最多,全国平均接近900,000美元。 大型技术公司的高级工程师和工作人员工程师,一旦列入股票补偿,可以赚取全国中位数的数倍。

软件工程师,程序员和开发员有什么区别?

在实践中,很少——标题重叠,公司使用时不一致。 "程序员"是最早的术语和强调书写代码;"开发者"在网络和产品公司中很常见;"软件工程师"倾向于应用从旧的工程领域借来的有纪律的流程,测试和设计的想法,用于建设软件. 职务说明很少一致地加以区分。

是否真的需要一个编码面试才能被雇佣?

在大多数已经成立的技术公司,是的:现场或带回家的技术访谈,经常涉及共享文档或白板上的算法问题,仍然是标准过滤器,同时是系统设计回合,用于更高级的角色. 较小的公司和初创企业更可能取代付费的试办项目、投资组合审查或关于过去工作的对话。

打开对比实验室

分享本页

软件工程是一个不同寻常的年轻职业, 带着一个老主意。 自1840年代以来,人们就一直在设计机器的逐步程序,但是直到20世纪的很长一段时间里,没有人得到报酬成为"软件工程师",而职称本身只是在1968年被提出——一半是挑衅性的——.

其历史贯穿于一位从未见过她算法运行的伯爵夫人,手动重联房间大小的计算机的女性,一位希望机器阅读英语的海军军官,以及巴伐利亚阿尔卑斯山的一次会议,通过宣布该场处于危机中而赋予了这个场名.

起源之地

1843London, England

阿达·洛夫莱斯(Ada Lovelace)翻译了意大利工程师关于查尔斯·巴贝奇未建成的分析引擎的论文,他增加了一套比原始文本更长的笔记. 其中最后一个,Note G,一步一步地阐述了机器将如何计算一个数字的序列——一个为一个计算机写成的算法,这个算法在另一个世纪是不存在的,而大多数历史学家将这个点标记为编程的概念诞生:一个机器的指示可以被设计,写下来和检查作为一个独立于机器本身的东西的想法.

时间线

1843Ada Lovelace 发布第一个算法

Lovelace在翻译一篇关于Charles Babbage未建成的分析引擎的意大利论文时,补充了一个说明,描述了机器如何一步步计算伯努利数字——通常被引用为第一个公布的计算机程序.

1890Hollerith的拳头卡片 统计了人口普查

赫尔曼·霍勒里斯(Herman Hollerith)的冲锋牌制表机大约在一年时间里处理美国人口普查,这项工作用了近8年的人工计算;他的公司后来成为IBM的一部分.

1943–19456名妇女方案

凯·麦克努尔蒂(英语:Kay McNulty),让·詹宁斯(Jean Jennings),贝蒂·斯奈德(英语:Betty Snyder),马琳·韦斯科夫(英语:Marlyn Wescoff),弗朗·比拉斯(英语:Fran Bilas)和露丝·利赫特曼(英语:Ruth Lichterman)通过物理设置开关和插接电缆在宾夕法尼亚大学实施房间大小的ENIAC程序,没有手动语言和编程语言来指导他们.

1952Grace Hopper 完成第一个编译器

Hopper在Remington Rand的A-0系统将符号数学符号自动翻译为机器代码,取代了手抄子例程地址的容易出错的做法——自此以后每个编译器的直系祖先.

1957IBM 704号机的FORTRAN舰

John Backus在IBM的团队在工作了大约两年后释放了FORTRAN;在两年内,据报道超过半数的美国机器运行代码被写在里面.

1968北约会议名称“软件工程”

在西德的加米什(Garmisch)的一次会议上,与会者有意借用"软件工程"这一术语来论证建设大型程序需要与建设桥梁一样的纪律,将外地的长期超支设定为"软件危机".

1969–1973Unix和C在贝尔实验室成型

Ken Thompson和Dennis Ritchie在备用PDP-7上建立了Unix操作系统,然后在1973年用Ritchie的新C语言重写,这样它就可以运行在不止一种计算机上.

1981IBM PC 将软件带到每个办公桌

IBM与微软的PC-DOS一起推出个人电脑,几乎一夜之间将软件变成大众消费品,并凝固了年轻公司比尔·盖茨和保罗·艾伦六年前在Altair BASIC上成立的公司.

1991Linux和万维网相隔数月

Linus Torvalds在8月将他的爱好内核张贴到Usenet,称它"只是一个爱好,不会是大而专业的";Tim Berners-Lee的万维网在同一月公开,开放,自由共享的软件成为互联网的默认.

2021–2023AI 移动到代码编辑器中

GitHub Copilot(2021)和ChatGPT(2022)将大型语言模型代码生成带入日常使用;在几年内,GitHub报告自己的工具用户接受AI建议的代码,为其所保存的线条中较大且越来越大的份额.

时代脉络

IBM系统/360主机的操作控制台
ArnoldReinhold · CC BY-SA 3.0 · Wikimedia Commons
1950s–1960s

主要框架和批量编程

早期的程序是作为打卡牌的甲板提交,并分批运行,常常是隔夜运行,所以一个单打字可以花费一个程序员一天等待下一次运行的时间. 数学家,以及大量女性,从手工计算直接转移到了这个新的“程序化”工作,因为它被视为文秘和注重细节,而不是有声望的。 FORTRAN(1957年)和COBOL(1959年)在这十年中占据了地位,在这个硬件上建造可靠的大型系统本身就困难重重,从而造成了下一个时代的‘软件危机',将试图命名和修复.

PDP- 11 小型计算机, 与早期 Unix 最相关的机器
Stefan_Kögl · CC BY-SA 3.0 · Wikimedia Commons
1969–1983

Unix,结构化编程和学科获得一个名称

1968年北约会议给外地的慢性预算和可靠性问题定了名字后,1970年代同时制作了诊断和工具包:结构化编程,纪律测试,和Unix,一个在贝尔实验室建造的操作系统,用新的C语言重写,这样它就可以运行在一个以上的机器上. PDP-11等微型计算机将真实的计算功率传播到少数主机室之外,"软件工程"开始作为大学学位本身出现,而不是数学或电气工程的子领域.

1981年的IBM个人电脑原版
Own work (based on graphics by International Business Machines Corporation) · Public domain · Wikimedia Commons
1975–1990

框中的个人计算机和软件

Altair 8800套装具(1975年),然后Apple II和IBM PC(1981年)将一些机构遇到的软件从一个家庭可以买到的货架上转换出来. 大批消费者和小企业软件产业围绕文字处理器、电子表格和游戏出现,在收缩包装的盒子中出售,有回报政策,而不是支持合同。 瀑布式的,有大量文献记载的开发主导了大型项目,即使当该行业的边缘——卧室编码员,大学黑客——在更接近今天的更快,更非正式的风格的事物中工作.

Tux,开源Linux操作系统的企鹅吉祥物
Larry Ewing , Simon Budig , Garrett LeSage · CC0 · Wikimedia Commons
1991–2005

网络、开源和点-com周期

万维网和Linux内核在1991年的几个月内都公开提供,它们共同证明,由从未见过面的志愿人员在公开场合建造的软件可以与一家公司所运送的任何东西竞争。 网络浏览器几乎在一夜之间创造了全新的就业市场;随后,这个市场繁荣起来,在2000-2001年,惊人的崩溃,冲掉了一代初创企业,但留下了亚马逊、谷歌和下一个时代的基础设施。 《Agile Manifesto》(2001年)正式规定了对由文件驱动的繁重规划的反应,主张缩短周期,增加迭代周期。

云计算基础设施的概念图
Sam Johnston · CC BY-SA 3.0 · Wikimedia Commons
2006–present

Cloud、DevOps和AI辅助工程

从Amazon Web Services(2006年)租到一个小时的服务器,消除了运行软件最大的固定成本之一,应用商店几乎同时给工程师一个第二,移动第一发行频道. Git和GitHub(2005-2008年)在同一密码库上进行分布式合作,即使是在陌生人中也是如此,自动部署管道缩小了完成更改与用户面前运行的间隔,从几个月到几分钟不等。 到20世纪20年代初,接受过公共代码培训的AI编码助理已经从新颖性转向了对大量专业工程师的日常工具——新乐器在其历史上传播最快.

被它取代的行当

已不存在的邻近职业——被吸收、自动化或法规抹去。

Human computer

1750s–1960s

早在电子机器之前,"计算机"就是一个个人——往往是女性——的工作头衔,他们用手或机械计算器进行数学计算:天文台,火炮轨迹,NASA轨道路径. 电子计算机接管了20世纪50年代和60年代的计算,当工作消失时,它已经借给了机器它的名字。

Keypunch operator

1930s–1980s

主要是女性,按键punch操作员输入数据,甚至程序源代码在IBM 026和029等机器上的打卡机上,每条程序一行打卡. 交互终端和视频屏幕让程序员直接输入计算机输入代码,工作在一代之内消失.

Webmaster

1993–2000s

在网络的第一个十年中,一个"Webmaster"经常设计,编码,为整个网站撰写副本,并管理着整个网站——这个单词于1993年输入词典,并在1997年按照互联网标准获得了自己的保留电子邮件地址. 随着网站日益复杂,角色分裂为前端开发者,后端开发者,DevOps工程师和内容编辑器,"webmaster"从工作列表中消退.

消失的行当 →

历史上的每一个时代都以同样的方式结束:一个工具的到来,它移除了手工劳动,一个整个工作类别已经围绕——手计算,打卡,批量排程,人工服务器提供——和做这种劳动的人要么向上移动,要么继续前进.

阅读这个的工程师们现在正在经历这个循环的下一个迭代,而不是第一次遇到它. 其余部分研究的是,具体地说,到目前为止,这意味着什么,对证据的合理解读表明接下来会发生什么。

相近职业

不限同一领域,六项评分最接近的职业。

继续探索

继续探索

工程·技术领域的其他职业