50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

1969 年的编程什么样?

  • 2019-11-29
  • 本文字数:2991 字

    阅读完需:约 10 分钟

1969年的编程什么样?

在 1965 到 1966 年间,我决定成为一名程序员。我读过一篇文章,里面有一张流程图的图片,我想“这对我很合适”。1967 年我高中毕业的时候,还没有大学教授编程,但索尔纳有一门为期 6 个月的课程,后来变成了 12 个月,而且还可以申请学生贷款。所以我申请了。

那时为什么想成为一名程序员?

在 1965 到 1966 年间,我决定成为一名程序员。我读过一篇文章,里面有一张流程图的图片,我想“这对我很合适”。1967 年我高中毕业的时候,还没有大学教授编程,但索尔纳有一门为期 6 个月的课程,后来变成了 12 个月,而且还可以申请学生贷款。所以我申请了。


与此同时,SJ(瑞典国有铁路公司,当时是一家垄断企业)发布了一个培训项目的广告,该项目提供为期一年的带薪培训,你可以学习 SJ 运营的所有不同部分。SJ 有一个计算机部门,所以我也申请了 SJ 项目,希望最终能留在那里。


然而,SJ 最终有 700 人申请 50 个职位,所以要经历一个艰难的筛选过程,需要通过各种测试。我进去了!因为我需要工资来买房子,所以我接受了。


顺便说一句,当 SJ 管理层发现培训生项目手册被同时发给了男女学生时,他们非常不高兴!被这个项目录取的女性不多,但我们是少数。


在培训期间,我们参观了 SJ 的所有部门,了解了从火车、铁路到通讯方式的一切(SJ 有自己的电线和电话线!)一年之后,我找到了一份工作,但是很无聊。最后,在 1969 年,我听说 SJ 开始了一个内部的编程培训项目,所以我申请了这个项目。经过更多的测试,我和另外三个人在 1969 年开始了编程培训。我们中有两个女孩和两个男孩。



1976 年的 IBM System/370 参考资料。我在右边写了ÅÄÖ(5B、7B 和 7C),因为瑞典字母不包含在 EBCDIC 中。

那时的培训怎么样?

首先,我们参观了 SJ 的计算机部门,对什么是计算机有了大概的了解。然后,我们到 IBM 上课,IBM 在斯德哥尔摩的一幢大楼里有一台“培训机”。我们一个班大概有 50 到 100 人,但我们被分开了,每个房间 8 个人。我们看着教室前面的两块电视屏幕。在另一个房间的老师和黑板在屏幕上播放。每个老师大概有 10 个教室,每个教室都可以用麦克风提问,用按钮吸引老师注意。超现代!


首先,我们学习了一点 IBM 操作系统,然后我们学习了 PL/I,这是 IBM 自己的编程语言。那是Cobol的一个更现代化的版本,具有 Cobol 当时尚不具备的特性,比如生成表和查询。所以 PL/I 在当时是一种更好的语言,也更简单:你可以使用英语单词、DO WHILE 等编写代码。一个非常好的编程语言!


在瑞典,政府机构处于数据处理的前沿。银行和其他机构远远落在后面。因此,在 IBM 的课程中,大多数是来自其他机构的人员,不过 SJ 走在最前沿。


在第一次上完 IBM 的课程后,我回到了 SJ,开始了我的第一个实践项目。我们四个人做了一个约会程序,你可以输入男性和女性的特征,然后用我们自己发明的算法在他们之间产生一个很好的匹配。在那之后,我们开始编写产品代码!


后来我参加了更多的课程,比如我用同样的方式学习汇编语言。我接受的教育实际上只有这里的一周和那门课,然后我们有了一位可以在工作中帮助我们的主管。



我画流程图的模板,用于可视化数据是如何流动的以及事情发生的顺序。

那时的工作怎么样?

首先,我们会画流程图,然后用铅笔写代码。然后,我们将代码交给打孔部门,代码将被打在穿孔卡上。穿孔卡有 80 个列——72 个用于程序,8 个用于顺序——所以每一行代码最多 72 个字符。


你必须把代码写得很清楚,这样操作打孔机的女性员工就能读懂。在 SJ 工作几年之后,我们有了一个专门阅读我们代码的人,这帮助很大。他们主要打数据卡:来自 SJ 的时间报告、每节火车车厢行驶了多远等等。这台打孔机看起来像普通的打字机,可以在卡片上打孔。在每一列上,它也会打出明文字符。


刚开始的时候,程序很小,但后来可能会装满几米长的卡片盒。每一行代码都变成了一张穿孔卡。每行一条指令。打孔部门将程序(数千张卡)返还给我们。我们还必须创建“控制卡”,其编码包括穿孔卡是否要编译或执行以及它是什么语言等等。控制卡有一个单独的颜色。第一张卡片是工作卡,上面有我的名字,所以他们知道该把东西还给谁。


我们把打孔卡盒放在一张特殊的桌子上。操作员穿着白大褂来,取走盒子然后运行程序。


有时我们每天只有一次运行机会,因为我们程序员在机器大厅中的优先级最低。所以我们不得不同时做几个项目来保持忙碌的状态。


最后,这些卡片连同“睡衣纸(pajama paper)”一起返回,这是一个列表,其中包含错误代码及行号。



睡衣纸


我们有机会使用多台打孔机,这样我们就可以自己进行小的修正。


然后我们必须创建测试文件,看看程序是否产生了预期的结果。如果没有,就坐下来做“桌面测试”(用笔和纸思考),设法找出“到底什么出了问题?”因此,可能需要一段时间才能使程序正确运行。


我们有好几台机器。我们从一开始就有 IBM 360,还有一些更老的机器。后来我们有了 IBM 370。


70 年代末,我们有了终端机。我们从来没有自己的终端机,而是共用一个终端机房。当我们想要修改一个程序时,我们极力争取才能获得使用终端机的时间。程序会在屏幕上闪现,我们可以修改它。我们有黄色和棕色的 Alfaskop 终端机。在 1979 年离开 SJ 之前,我从未拥有过自己的终端机。



Alfaskop 3700

那时有什么挑战?

SJ 的计算机部门大约有 40 名程序员和系统工程师。我所有的同事,和我一样,都是在公司内部接受培训的,只有少数例外:有几个和我年龄相仿的人,参加了我之前提到的在索尔纳为期 6 个月的课程。但是除此之外,没有其他的方法来学习这个——这是一个全新的职业!有些同事曾经是司机!大多数人甚至没有高中文凭。


系统工程师的工作内容主要包括编写说明书、程序的输入和输出等。作为程序员,我们是问题的解决者,我们制作流程图,找出解决问题的方法。


机器大厅里大约有 10 名机器操作员。他们穿着白大褂,处理磁带存储、磁盘及将穿孔卡送入机器。我们很少被允许进入机器大厅的内室。入口有一个“封闭作业”的牌子。机房很大。早期的机器(IBM 1400)占地 10 到 20 平方米,但后来就和台小冰箱那么大了。


打孔部门由 50 名年轻女性组成。如果有来自 SJ 其他部门的任何访问,那么打孔部门总是最让人感兴趣的,因为 SJ 的大多数员工是男性!


在 40 名程序员中,我们有 5 到 6 名女性。我是那群年轻人中的一员,但大多数程序员都比我大 10 岁左右(我出生于 1947 年)。20 世纪 70 年代末,我们招募了一些新员工,他们完成了 12 个月的培训课程。


在我刚入职的时候,我遇到了 Solveig,她在 SJ 计算机部门工作。她告诉我,所有的门都有写着“X 小姐”或“X 夫人”的牌子。但男士的门上没有相应的婚姻状况信息。女士们对这件事非常生气,以至于她们拧下了牌子。所以当我入职的时候,他们只是看着我说:“我猜你也不想要一个小姐/夫人的牌子吧?”“是的,谢谢!”,我说。

那时你都做什么?

1969 年春天——在我入职之前——SJ 推出了网上预订,24x7 运行。那在当时非常先进,完全是用汇编语言编写的。这是 SJ 非常出色的一点——在瑞典没有其他公司能与我们匹敌。我很庆幸能在这样一个开拓型的公司接受教育。


我们创建了这些程序,一旦完成并进行了测试,我们就把它们交给别人。其他人负责维护它们,我们只是编写新的程序!主要是收集操作统计数据(例如工资表),这些程序将定期运行(例如每个月)。


1979 年,在 SJ 工作了 10 年后,我辞职去了银行工作。

英文原文

Programming in 1969


2019-11-29 15:359472
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 407.8 次阅读, 收获喜欢 1986 次。

关注

评论

发布
暂无评论
发现更多内容

Spring用到的10种设计模式,真巧妙!

电子尖叫食人鱼

spring

社交金融钱包:融合聊天包与DAO治理的Web3入口

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

vscode [ctrl+click]‘vue 单文件组件’,‘转到定义’不起作用

柠檬与橘子

Java集合--LinkedList源码可视化

电子尖叫食人鱼

Java

KCNScrew Pack for Mac:Mac 软件序列号查询神器

晨光熹微

Proxyman Premium for Mac(网络调试和分析工具)

Geek贝

专业的音乐创作编辑软件PreSonus Studio One 6 Pro for mac

Geek贝

Pro Microphone for mac专业麦克风

晨光熹微

Volcano v1.12 正式发布!驱动云原生AI与批量计算向智能高效新阶段演进

华为云原生团队

云计算 容器 云原生 Volcano

苹果用户你别走,用这个神器也能在你的Mac电脑上玩《双影奇境》了!

阿拉灯神丁

MacBook 双人成行 mac冒险游戏 CrossOver Mac下载 Mac游戏推荐

量子级安全架构:抗攻击包的冷热隔离与生物验证技术

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

WonderPen 妙笔:Mac 上的写作利器

晨光熹微

AudFree Audio Capture for Mac:Mac 上的音频捕获专家

晨光熹微

VNC Server for Mac(VNC远程控制软件)

Geek贝

智能体(AI Agent)开发实战之【LangChain】(一)接入大模型输出结果

我和AI的成长

人工智能 AI 智能体 langchain AI Agent

苹果造车失败?这些百亿级项目立项都应该做的正确决策!

IPD产品研发管理

产品 互联网 产品经理 产品设计

多链资产管理中心:支持1000+币种的一站式钱包开发方案

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 公链开发代币开发

Carbon Copy Cloner for Mac(磁盘克隆/同步/备份软件)

Geek贝

Mac终端党必备!xHistory 一键找回手滑删掉的命令,效率翻倍

柠檬与橘子

淘宝商品详情 API 与物联网技术融合的创新应用探索

Noah

F5 BIG-IQ Centralized Management 下载汇总 - 集中管理 BIG-IP 设备和服务

sysin

F5

未来钱包:AI资产管理+跨原子交换的智能终端

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

《欢迎来到经验时代》— 强化学习之父、2024 年获图灵奖得主

GPU算力

人工智能 深度学习 强化学习 图灵奖 经验时代

Yate for Mac音乐标签管理工具

晨光熹微

Valentina Studio Pro for Mac:Mac 平台数据库管理的全能助手

晨光熹微

MySQL事务:工作原理与实用指南

不在线第一只蜗牛

MySQL 数据库

ViWizard Audio Capture for Mac:Mac 音频捕获的终极利器

晨光熹微

软件工厂:下一代工业“看不见的流水线”

DevOps和数字孪生

软件仿真

如何使用第三方库中的@pura/harmony-utils(V1.3.3)申请授权工具类二

小赵学鸿蒙

三方SDK 数码相机

场上显眼包!海信100吋电视世界第一霸屏世俱杯

Alter

1969年的编程什么样?_文化 & 方法_Emil Ernerfeldt_InfoQ精选文章