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

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/FluusdhX3mf2G6pI64kf
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券