写点什么

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:359490
用户头像
小智 让所有人认同的文字称不上表达

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

关注

评论

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

活动预告| 字节跳动基于DataLeap的DataOps最佳实践

字节跳动数据平台

大数据 数据治理 数据安全 数据研发 企业号12月PK榜

在Python中实现条形图动态追赶动画效果

申公豹

Python

Spring Cloud Netflix移除后,我们又该何去何从?

木风mind

云原生 spring cloud alibaba java‘ spring cloud

华秋DFM荣获第三届智能制造创新大赛全国总决赛-新技术应用赛道三等奖

华秋电子

计算机设计大赛信息可视化设计的获奖经验剖析解读—4C大赛【全网最全万字攻略-获奖必读】

申公豹

可视化

基于Vue.js和Spring Boot的口罩自助售卖系统:设计、实现与技术深度解析

申公豹

系统

华秋荣获亿邦动力2023产业互联网千峰奖,引领电子产业数字化变革

华秋电子

深入学习Python与Vscode环境的安装与配置

申公豹

Python

Python从基础到进阶字符串验证

申公豹

Python

【腾讯云 HAI域探秘】体验大模型的多种业务应用

Hanson

探秘AI赋能的未来世界:CyberAI深度学习技术助力变革

数新网络官方账号

人工智能 大数据

火眼金睛破局ES伪慢查询 | 京东物流技术团队

京东科技开发者

数据库 慢查询 Elastic Search

JS获取当前系统电量情况

南城FE

JavaScript 前端 电量计算

app开发

Geek_8da502

2024年企业堡垒机采购要考虑因素详解

行云管家

网络安全 堡垒机 企业堡垒机

深入探索嵌入式系统开发:从LED控制到物联网集成

申公豹

嵌入式

敏感信息泄漏怎么破?来试试极狐GitLab 的密钥检测吧

极狐GitLab

DevOps 安全 DevSecOps 安全左移 密钥检测

第七在线引领零售供应链智能化,助力企业实现效能提升

第七在线

数字化商品计划已经Out啦 揭秘哪些国际⼤牌⽤了AI智能商品计划?

第七在线

49 | 搜索:如何用A*搜索算法实现游戏中的寻路功能

鲁米

数智时代,业财融合如何助力企业数智化转型?

用友BIP

业财融合

用友BIP数智干部管理,落实国有企业人才强企战略

用友BIP

干部管理

避坑指南之财务共享中心建设项目团队搭建

用友BIP

财务共享

拆解 2 篇文章

6点无痛早起学习的和尚

写作 21 天技术人写作行动营

48 | B+树:MySQL数据库索引是如何实现的

鲁米

防御性编程?这不就来了

越长大越悲伤

前端 后端 防御性编程

「智造」第15期:十问用友TimensionDB时序数据库

用友BIP

时序数据库

新一代“垫图”神器,IP-Adapter的完整应用解读

京东科技技术说

人工智能

基于STM32的物联网节点设计与实现-传感器数据采集与无线通信

申公豹

嵌入式

嵌入式系统中的低功耗定时器应用与优化实战

申公豹

嵌入式

深入理解嵌入式系统中的GPIO控制与应用

申公豹

嵌入式

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