主要框架和批量编程
早期的程序是作为打卡牌的甲板提交,并分批运行,常常是隔夜运行,所以一个单打字可以花费一个程序员一天等待下一次运行的时间. 数学家,以及大量女性,从手工计算直接转移到了这个新的“程序化”工作,因为它被视为文秘和注重细节,而不是有声望的。 FORTRAN(1957年)和COBOL(1959年)在这十年中占据了地位,在这个硬件上建造可靠的大型系统本身就困难重重,从而造成了下一个时代的‘软件危机',将试图命名和修复.
按时间排列的节点,不是每周活动格。
格子越深,表示该主题在这项指标上越高。
低高
大部分时间分写新的代码,在审查期间读别人的代码,修补bug,和队友谈论下一步要建设什么. 会议、规划和指导花费的时间比新来者预期的要多。 高级工程师个人写的代码往往比初级工程师要少,在设计决策,评论和解除对他人的封锁方面花费更多的时间.
没有,但它仍然是最常见和最低的防爆路线。 四年制学位教授算法,数据结构和系统概念,在工作上学习费用昂贵. Bootcamp毕业生和自学工程师确实被雇佣,尤其是被较小的公司雇用,但通常需要强大的组合或开源工作来取代证书.
部分已经是了。 现代代码编辑器中构建的工具现在为经常使用这些代码的工程师写了很大一部分常规代码——锅炉板,第一稿测试,语言之间的翻译. 更难实现自动化的是决定构建什么,为什么,以及如何塑造一个系统,使它能与真正的用户保持接触和失败。
它因国家和公司而异。 在美国,年中值约为133 000美元;在德国,约为69 000欧元;在印度,该行业雇用人数最多,全国平均接近900,000美元。 大型技术公司的高级工程师和工作人员工程师,一旦列入股票补偿,可以赚取全国中位数的数倍。
在实践中,很少——标题重叠,公司使用时不一致。 "程序员"是最早的术语和强调书写代码;"开发者"在网络和产品公司中很常见;"软件工程师"倾向于应用从旧的工程领域借来的有纪律的流程,测试和设计的想法,用于建设软件. 职务说明很少一致地加以区分。
在大多数已经成立的技术公司,是的:现场或带回家的技术访谈,经常涉及共享文档或白板上的算法问题,仍然是标准过滤器,同时是系统设计回合,用于更高级的角色. 较小的公司和初创企业更可能取代付费的试办项目、投资组合审查或关于过去工作的对话。
软件工程是一个不同寻常的年轻职业, 带着一个老主意。 自1840年代以来,人们就一直在设计机器的逐步程序,但是直到20世纪的很长一段时间里,没有人得到报酬成为"软件工程师",而职称本身只是在1968年被提出——一半是挑衅性的——.
其历史贯穿于一位从未见过她算法运行的伯爵夫人,手动重联房间大小的计算机的女性,一位希望机器阅读英语的海军军官,以及巴伐利亚阿尔卑斯山的一次会议,通过宣布该场处于危机中而赋予了这个场名.
阿达·洛夫莱斯(Ada Lovelace)翻译了意大利工程师关于查尔斯·巴贝奇未建成的分析引擎的论文,他增加了一套比原始文本更长的笔记. 其中最后一个,Note G,一步一步地阐述了机器将如何计算一个数字的序列——一个为一个计算机写成的算法,这个算法在另一个世纪是不存在的,而大多数历史学家将这个点标记为编程的概念诞生:一个机器的指示可以被设计,写下来和检查作为一个独立于机器本身的东西的想法.
Lovelace在翻译一篇关于Charles Babbage未建成的分析引擎的意大利论文时,补充了一个说明,描述了机器如何一步步计算伯努利数字——通常被引用为第一个公布的计算机程序.
赫尔曼·霍勒里斯(Herman Hollerith)的冲锋牌制表机大约在一年时间里处理美国人口普查,这项工作用了近8年的人工计算;他的公司后来成为IBM的一部分.
凯·麦克努尔蒂(英语:Kay McNulty),让·詹宁斯(Jean Jennings),贝蒂·斯奈德(英语:Betty Snyder),马琳·韦斯科夫(英语:Marlyn Wescoff),弗朗·比拉斯(英语:Fran Bilas)和露丝·利赫特曼(英语:Ruth Lichterman)通过物理设置开关和插接电缆在宾夕法尼亚大学实施房间大小的ENIAC程序,没有手动语言和编程语言来指导他们.
Hopper在Remington Rand的A-0系统将符号数学符号自动翻译为机器代码,取代了手抄子例程地址的容易出错的做法——自此以后每个编译器的直系祖先.
John Backus在IBM的团队在工作了大约两年后释放了FORTRAN;在两年内,据报道超过半数的美国机器运行代码被写在里面.
在西德的加米什(Garmisch)的一次会议上,与会者有意借用"软件工程"这一术语来论证建设大型程序需要与建设桥梁一样的纪律,将外地的长期超支设定为"软件危机".
Ken Thompson和Dennis Ritchie在备用PDP-7上建立了Unix操作系统,然后在1973年用Ritchie的新C语言重写,这样它就可以运行在不止一种计算机上.
IBM与微软的PC-DOS一起推出个人电脑,几乎一夜之间将软件变成大众消费品,并凝固了年轻公司比尔·盖茨和保罗·艾伦六年前在Altair BASIC上成立的公司.
Linus Torvalds在8月将他的爱好内核张贴到Usenet,称它"只是一个爱好,不会是大而专业的";Tim Berners-Lee的万维网在同一月公开,开放,自由共享的软件成为互联网的默认.
GitHub Copilot(2021)和ChatGPT(2022)将大型语言模型代码生成带入日常使用;在几年内,GitHub报告自己的工具用户接受AI建议的代码,为其所保存的线条中较大且越来越大的份额.
早期的程序是作为打卡牌的甲板提交,并分批运行,常常是隔夜运行,所以一个单打字可以花费一个程序员一天等待下一次运行的时间. 数学家,以及大量女性,从手工计算直接转移到了这个新的“程序化”工作,因为它被视为文秘和注重细节,而不是有声望的。 FORTRAN(1957年)和COBOL(1959年)在这十年中占据了地位,在这个硬件上建造可靠的大型系统本身就困难重重,从而造成了下一个时代的‘软件危机',将试图命名和修复.
1968年北约会议给外地的慢性预算和可靠性问题定了名字后,1970年代同时制作了诊断和工具包:结构化编程,纪律测试,和Unix,一个在贝尔实验室建造的操作系统,用新的C语言重写,这样它就可以运行在一个以上的机器上. PDP-11等微型计算机将真实的计算功率传播到少数主机室之外,"软件工程"开始作为大学学位本身出现,而不是数学或电气工程的子领域.
Altair 8800套装具(1975年),然后Apple II和IBM PC(1981年)将一些机构遇到的软件从一个家庭可以买到的货架上转换出来. 大批消费者和小企业软件产业围绕文字处理器、电子表格和游戏出现,在收缩包装的盒子中出售,有回报政策,而不是支持合同。 瀑布式的,有大量文献记载的开发主导了大型项目,即使当该行业的边缘——卧室编码员,大学黑客——在更接近今天的更快,更非正式的风格的事物中工作.
万维网和Linux内核在1991年的几个月内都公开提供,它们共同证明,由从未见过面的志愿人员在公开场合建造的软件可以与一家公司所运送的任何东西竞争。 网络浏览器几乎在一夜之间创造了全新的就业市场;随后,这个市场繁荣起来,在2000-2001年,惊人的崩溃,冲掉了一代初创企业,但留下了亚马逊、谷歌和下一个时代的基础设施。 《Agile Manifesto》(2001年)正式规定了对由文件驱动的繁重规划的反应,主张缩短周期,增加迭代周期。
从Amazon Web Services(2006年)租到一个小时的服务器,消除了运行软件最大的固定成本之一,应用商店几乎同时给工程师一个第二,移动第一发行频道. Git和GitHub(2005-2008年)在同一密码库上进行分布式合作,即使是在陌生人中也是如此,自动部署管道缩小了完成更改与用户面前运行的间隔,从几个月到几分钟不等。 到20世纪20年代初,接受过公共代码培训的AI编码助理已经从新颖性转向了对大量专业工程师的日常工具——新乐器在其历史上传播最快.
已不存在的邻近职业——被吸收、自动化或法规抹去。
早在电子机器之前,"计算机"就是一个个人——往往是女性——的工作头衔,他们用手或机械计算器进行数学计算:天文台,火炮轨迹,NASA轨道路径. 电子计算机接管了20世纪50年代和60年代的计算,当工作消失时,它已经借给了机器它的名字。
主要是女性,按键punch操作员输入数据,甚至程序源代码在IBM 026和029等机器上的打卡机上,每条程序一行打卡. 交互终端和视频屏幕让程序员直接输入计算机输入代码,工作在一代之内消失.
在网络的第一个十年中,一个"Webmaster"经常设计,编码,为整个网站撰写副本,并管理着整个网站——这个单词于1993年输入词典,并在1997年按照互联网标准获得了自己的保留电子邮件地址. 随着网站日益复杂,角色分裂为前端开发者,后端开发者,DevOps工程师和内容编辑器,"webmaster"从工作列表中消退.
历史上的每一个时代都以同样的方式结束:一个工具的到来,它移除了手工劳动,一个整个工作类别已经围绕——手计算,打卡,批量排程,人工服务器提供——和做这种劳动的人要么向上移动,要么继续前进.
阅读这个的工程师们现在正在经历这个循环的下一个迭代,而不是第一次遇到它. 其余部分研究的是,具体地说,到目前为止,这意味着什么,对证据的合理解读表明接下来会发生什么。
不限同一领域,六项评分最接近的职业。
从数据中寻找规律、构建预测模型——一个2008年才出现的职位名称,建立在三个世纪计数、检验与可视化证据的传统之上。
抗AI 38 📦构建用于训练、部署、监控和治理生产环境中机器学习模型的系统。
抗AI 54 🗺️决定公司接下来该做什么、为什么要做——把顾客需求、商业目标和工程限制,整合成一份没有其他人能完全独自拥有的共同计划。
抗AI 50 🔐通过发现、防范和响应数字攻击,保护系统、数据与人员的安全。
抗AI 63 🌿领导战略、衡量和报告,帮助组织减少环境和社会危害,同时履行业务义务。
抗AI 66 🧾账簿的守护者:这门手艺古老到几乎发明了文字本身,如今却在与为自动化它而造的软件谈判。
抗AI 35设计并测试了机器智能背后的算法,在一个领域,现在竞相将自己研究过程中越来越大的份额自动化.
抗AI 50 🛰️设计、分析并认证离地而行的飞机、火箭与航天器,在不容猜测的安全裕度下工作。
抗AI 74 🌉把河流、岩石与重力变成桥梁、道路与清洁饮水的职业——自伊姆霍特普起,文明安静的承重行当。
抗AI 72 🔌每台计算机,手机和武器内部的设计和编织晶体管,使用精确到只有地球上少数工厂能运行的机器.
抗AI 60 🦾设计那些能感知,决定和采取行动的机器 在物理世界里,困难的问题永远不是智能,而是世界本身.
抗AI 65 🔐通过发现、防范和响应数字攻击,保护系统、数据与人员的安全。
抗AI 63 📦构建用于训练、部署、监控和治理生产环境中机器学习模型的系统。
抗AI 54 🌬️设计、建造和改进风能、太阳能、存储和电网系统,将可再生资源转化为可靠的电力。
抗AI 72