TranslateProject/translated/talk/20210816 What was your first programming language.md
Bright Huang 14f7ae6067 finished
2023-05-12 20:25:32 +08:00

33 KiB
Raw Blame History

你的第一门编程语言是什么?

以下24位开源技术专家分享了他们开始编程之旅的故事。

Computer laptop in space 空中的笔记本电脑

我向我们的贡献者提问了这个问题:你的第一门编程语言是什么?。不过这个问题并不像看上去那样简单。下面的故事谈到了是谁向你建议了第一门编程语言,是什么促使你学习它。如果你是付费学习的,接下来又发生了什么。这里还涉及到你所在的阶段以及这个世界上正在发生的事情。

让我们倾听这24位技术专家的故事吧。


*你的第一门编程语言是什么?

*你花钱学习的吗? *并没有

*你是自己选择它的吗? *不尽然

*为什么这么说? *那是1979年的圣诞节我的父母(他们分别是学校的一名维护人员和一名公共卫生护士)省吃俭用地攒下了惊人的1000美元买下了一台 Tandy/Radio Shack TRS-80。它随附了一份涵盖了完整的 BASIC 编程语言的活页夹。我的父亲认为让我学习开发计算机软件是一个很好的将我从困境中解脱出来的方式。

*接下来发生了什么? *我的父母给我和我的兄弟买了与“自学编程”相关的书籍也订阅了相关的流行杂志。这些资源中提供了许多游戏的打印版的源代码。我们每个星期都花费大量的时间编写程序然后一行一行地使用电脑自带的检查程序找出我们的打字错误并调试程序。当我们厌倦了游戏以后我们开始修改它们—。我们一开始只是简单地修改零零散散的字符串将一个罗马战斗策略游戏修改为一个太空战斗策略游戏。不过后来随着我们所做修改的复杂度的增加我们最后开始开发我们自己的恐怖游戏。此后不久我们开始通过信件分享我们的游戏磁盘随后也通过当时仅110bps网速的网络论坛BBS)分享我们的游戏。

40年之后我可以同全世界共同创作我们的成果家庭网络连接性能提升了七个数量级以上但是我仍然时常怀念那个周六那一天在我和我的兄弟共同创造的真实的恐怖游戏当中我被我的兄弟击败。Jeremy Stanley


*你的第一门编程语言是什么? *我的第一们编程语言是 BASIC我在7年级的时候开始接触它。

*你花钱学习的吗? *如果你认为允许在午餐时间在计算机实验室里玩德军总部3D(LCTT 译注Wolfenstein 3D),我的世界(LCTT 译注Minecraft),模拟城市( LCTT 译注Sim City)这些游戏是对计算机科学足够感兴趣并学习 BASIC 语言的的花费的话,那就算是吧。

*你是自己选择它的吗? *我不认为我当时曾确切地认识到还有第二选择。这是当时计算机实验室中仅有的内容,而且一些学长对它足够了解才能让我也参与其中。我记得它不曾是计算机科学课程的一部分。

*为什么这么说? *当时,我学习 BASIC 仅仅是因为乐趣。我仅仅用它来创造基于文本的“选择你自己的探险之旅”风格的游戏。从源代码创建一些兼具艺术性与趣味性的东西并让计算机运行它们这件事极大地吸引了我。我此前也使用过计算机,但这是我头一次让它为我做一些事情。

*接下来发生了什么? *或许并不是巧合,我后来使用“选择你自己的探险之旅”风格的游戏来学习我后来接触到的每一种编程语言。

这一经历以及在计算机游戏中的首次探索(即有商业游戏也有我自创的游戏)开始了我进一步深入计算机领域的旅程我总是待在学校里直到我11年级时我的父母买回了我们家的第一台电脑。三年后我将这一段旅程转化为了我的第一份计算机领域的工作我成为了一家研究公司的实习生这家公司最终录用了我为他们的 IT 支持组的一员,这是我大学毕业后的第一份“真正意义上”的工作。

将近30年后我坚信是 BASIC (以及模拟城市) 开启了我现在成为 SRE 的旅程,开启了我日常的编程与计算机阵列运行工作。—Chris Collins


*你的第一门编程语言是什么? *我玩过 BASIC 语言,但是我的第一门正式入门语言是 PL/I。我在我大学时的第一次编程课上学习它的。—Heidi Ellis


*你的第一门编程语言是什么? *我的第一门编程语言是 BASIC 语言。那是在1981年。我学习它是因为我买了一台能够启动进入 BASIC 编辑器的家用电脑,一台 TRS-80 彩色计算机。它拥有相当出众的4K容量的随机存储器RAM而且它还可以在盒式磁带上存储程序。我希望让电脑做一些事情因此我开始学习如何使用它能够理解的语言向它下达指令。一旦你第一次体验到程序成功运行的欣喜若狂的感受你会发现我还想再次体验这种感觉。你还需要知道的是如今已经过去40多年了。—Matthew Helmke


*你的第一门编程语言是什么? *我的第一门编程语言是 BASIC。它是1977年大学第一学期中我的计算机科学课程的一部分因此我既没有自己花钱学习它也不是自己选的它。不过我始终认为这是非常重大的第一步因为它使我学会了如何像计算机一样思考(我有一个好老师)。随着我从经济学院毕业,这门课程并没有立即促成一些事情。不过,多年之后,我成为了一名 IT 项目经理。所以我没有做过码农,不过我管理过他们。 —Kevin O'Brien


*你的第一门编程语言是什么? *BASIC

*你花钱学习的吗? *没有。

*你是自己选择它的吗? *它是内置在 Apple ][ 计算机里的,这台计算机是我母亲在暑假带回来的,我的选择很有限。

*为什么这么说? *这台计算机里只有 BASIC 语言和6502汇编语言。显然BASIC 语言看上去对六年级的我更具吸引力。

*接下来发生了什么? *我去公共图书馆,找出了所有刊载了 Apple ][ 程序的源代码清单的往期的 Byte 杂志。我花了很多时间输入这些我几乎无法理解的程序并享受调试其他人代码的乐趣(好吧,我更确定的是,我引入了更多的错误)。我简直入迷了。几年以后,在高中毕业班的时候,当我知道可以主修某种称作“计算机科学”的课程的时候,我既惊讶又激动。剩下的就是历史了。—Erik O'Shaughnessy


*你的第一门编程语言是什么? *Fortran IV你应该已经知道这是多少年前的事情了。

*你花钱学习的吗? *没有,这是我大学的计算机科学课程的一部分,因此我想也可以认为我是花钱学习它的。这是在中央主机上的,因此你在纸上写好你的程序以后,你需要带上你的空白的 IBM 穿孔卡,然后坐在一台键控打孔机前把你的程序打孔出来,然后将你的穿孔卡片集作为一项“作业”提交上去。然后第二天你就可以拿回你的穿孔卡片,上面带有线列式打印机输出结果。如果你的程序没有运行,你得不到任何输出,或者如果你制造了某种死循环,你则可能拿到一页又一页的结果。

*接下来发生了什么? *在我的大学生涯快结束的时候,学校开始使用 watfor 编译器,这是一款来自加拿大的滑铁卢大学的 Fortran 实现。它的优势在于你可以在终端中使用它,并在中央主机中保存你的程序,而不需要使用我们曾经非常喜爱的穿孔卡。因此你可以自行运行你的程序,也可以立即创造死循环的程序。欧耶!

Fortran 之后,吸引了我的眼球的另一门编程语言是 BASIC它与 Fortran 有很多相似之处不过能够更好的处理字符串。Fortran 在字符串方面太糟糕了。我主要是在 Amiga 计算机上做这些事情的。

在转向 Linux 后,我接下来接触的语言是 Perl奇怪的是这似乎算是一个从 BASIC 语言转向的相当容易的过渡。接着 Perl 之后,就是 Python一门在语法上更加灵活的语言。—Gregory Pittman


*你的第一门编程语言是什么? 我1974年学习的 Waterloo Fortran IV这是入学第二年时我上的第一门计算机科学课程当时我几乎确信我想要主修计算机科学了。这一年的稍晚时间我们还学习了一些有关 IBM 360/370 汇编器的内容。回溯那段时间,在英属哥伦比亚大学UBC的低年级课程中我们使用的是打孔机,我们可以使用一个“学生终端”来连接我们的卡片盒并得到一张供我们的卡片盒运行一次的“蓝色凭证”,然后走到 IBM 线列式打印机后面拿回我们的程序输出。即使旁边明明写了一张提示"不要将你的卡片盒放在打印机上,以免打印机(上盖)开启",不过如果你还是不注意,将你的卡片盒放到了打印机的上面。此刻,打印机可能刚好用完了纸或者发生了卡纸,于是主动打开了上盖,你的卡片盒将会掉到地上变成一团糟。

在我主修计算机科学的第三学年,我选了一系列的课程——一门主流的三年级编程语言第一编程语言(LCTT 译注 PL/I)一学期的360/370汇编器课程两项优良的计算机理论课程一门数值分析课程“密歇根终端系统上的十二种编程语言”以及一系列数学课。

在我的第四学年,我被应用数学研究所聘为研究助理。此时,我主要通过为一个主要兴趣在于求解微分方程的小组编写 Fortran 程序来获取报酬。同时,也是从那时开始,我意识到计算机科学并非我的最爱,我开始转向数学。我仍然继续学习了一些计算机科学课程——优化课程以及更多的数值分析课程。回过头看,这是我走上数据科学之路的第一步。

我毕业之后的第一份工作还是编程,主要是使用 Fortran 、PL/I 以及 SPSS 编程SPSS 是一种统计编程语言。此外,我也学会了如何使用 MPSX(LCTT 译注拓展数学编程系统Mathematical Programming System Extended)IBM 的一种线性规划通用语言。—Chris Hermansen


*你的第一门编程语言是什么? *在我高中的时候,作为一项实验,一个没有任何计算机经验的教师被要求教我们计算机编程。我的学校之前从来没有尝试过这类课程。施乐公司(LCTT 译注Xerox Corp)给我们提供了一台 Model-33 型电传打字机和一台110波特的声耦调制解调器这使得我们可以访问他们运行 CP-5 分时系统的 XDS Sigma 7大型机。BASIC 是当时的趋势。

*你花钱学习的吗? *上学算吗?

*接下来发生了什么? *一些学生开始尝试在这台机器上“捅一棍子”看看如果我们不在提示符位置输入“BASIC”会发生什么这使我们发现这台机器上还内置了 其他的 编程语言!其他的教职工也发现了!如果我没有记错的话,这台机器上至少还有三个独立的 Fortran 编译器——FortranFLAG(Fortran Load And Go——FLAG的编译速度在当时称得上“快”了简直是快如闪电)。剩下的编译器 EFFORT 则是另一个极端——也可能是 EFORT 只是发“effort”的读音它的编译速度—相—当—慢不过在我们眼里它的确看上去拥有极致的代码优化。除此之外我也短暂尝试过 APL 编程语言(LCTT 译注:A Programming Language)以及(用于 APL 语言编程的有各种符号的“怪异”键盘)。在 APL 语言中,退格键不是用来删除已经输入的内容反而是重写操作符为其他的操作符。—Kevin Cole


*你的第一门编程语言是什么? *雅达利 PILOT 语言以及雅达利 BASIC 语言(LCTT 译注Atari)。我的父母给孩童时期的我买了一台雅达利 1200XL 计算机,我开始只是用他们来玩游戏或者完成一些艺术课程。家里留下了两盒卡带,我父亲告诉我它们是“适合成人使用的,因为不是为小孩子设计的,我不会对他们感兴趣”。显然,我无比好奇。终于有一天我禁不住找出并装载了它们。刚开始的时候我一头雾水,直到我找到一本我父亲买的有关这两盒卡带的书籍。我输入了书上的样例,发现能够实现一些事情的感觉是相当酷的。我当时还不能完全独立地编写程序,不过我可以拿来书中的样例然后仅仅更改其中的部分内容直到我能让它完成一些其他的事情或者使之崩溃进而只能撤销这些更改。我曾经计划再次尝试一遍,看看我还能记得多少,不过我一直都没有抽出时间(来做这件事)。—JT Pennington


*你的第一门编程语言是什么? *ELAN。这是那一时期相当优秀的编程语言。尤其需要重点说明的是它是与 EUMEL 系统紧密结合的,因此可以用它做并行计算。

*你花钱学习的吗? *它是一项课后活动。

*你是自己选择它的吗? *不是

*为什么这么说? *我想学习弹钢琴,我的父母跟我说如果我愿意参加打字课的话我就可以得到一台钢琴。打字课的对门就是课后计算机俱乐部。我觉得这有趣多了。不幸地是,计算机工作使我抽不开身,时至今日我也不会弹钢琴。

*接下来发生了什么? *当我上大学的时候,它们还在使用打孔卡和 Fortran。我很庆幸我的高中老师允许我使用学校的并行机编程。此间我也尝试了 BASIC 语言,但这是比不上我学习的 ELAN而且很枯燥。后来我转向 PascalPascal 也比不上 ELAN。再后来就是 C 语言Modula-2 语言和 Ada 语言,我最后发现了 Occam 并且使用它在晶体电脑上完成了很多任务。这是相当激动人心的因为我们可以做更多的并行计算。拥有其中64台的访问权是一件相当酷的事情。同时插入各种网络配置也令人兴奋。这是几十年前的事情了。我看到了往日的高中生与今日的高中生的不同点。我们当时几乎没有资源(我直到大四的时候才买得起一台电脑),今天电脑已经习以为常了。而且,电脑与类似 FLL(FIRST Lego League) 这样的机器人使得降低编程的准入门槛成分可能。然而,今天的学生们也被随处可及的电子游戏以及其中炫酷的图像所分心。现成产品(像电子游戏、手机以及平板电脑等)使得今天的学生能够从闲暇时间中抽出的用来学习机算机科学的时间很有限。我必须承认如果在我长大之后,也接触到了今天这样的电子游戏,我可能对计算机科学拥有完全不同的看法,并且也不会被我的同学们视作“书呆子”,而是成为一个游戏玩家。

不幸的是,我没有时间玩游戏,我的 RTX3090 显卡在运行人工智能算法。我真正想要的玩具是一台 A100 GPU以及一套我现在远程使用的DGX 系统。我认为由于Google colab以及其通过 Jupyter 可访问的特点,对人工智能的接触可以下放到高中水平。然而这一切都取决于带领你入门的高中教师。如果你的编程老师只是教你块编程而不是,举例而言,像基于乐高机器人的 Python或者只是教你使用 scratch 而不是 Google colab。那么我们就不能利用那些学生早年间的潜力但是可以利用这些出众的基础设施。—Gregor von Laszewski


*你的第一门编程语言是什么? *我沉浸在一台 Apple 电脑上的 Logo 编程语言里了。Logo 编程语言由麻省理工的西蒙· 佩珀特等人在1967年开发。这是一种为了教育目的开发的编程语言是 Lisp 语言的一个子集。

我学习它是作为当时我参与的一项毕业教育项目的一部分内容的。作为该项目的一部分,我使用 Logo 教一名五年级学生的几何学。在教这名学生 Logo 编程语言和这门课程的时候,我发现我在数学上的麻烦与无助在于无法可视化这些材料。在完成我的毕业课程以后,我使用 Logo 语言继续以相同的课程与编程语言交其他学生们几何与数学。这些学生与我学到了数学也在这一过程中开发了一些优美的图形,我们实际上开发了一个“乌龟”机器人,它可以在放在教室地板上的巨幅纸张上绘制我们的图像。我的编程经历让我开始寻找其他的方式来将数学带入学生的生活中,这让我开始接触 Python 以及 Python 中的“乌龟”模块。后来,我开始教学生们写 Python 程序,这些程序可以在屏幕上显示一个乌龟机器人,这个乌龟机器人可以在屏幕上创建优美的图像。与此同时,我也开始向这些学生引入 Python 编程语言与逻辑思考能力。—Donald Watkins


*你的第一门编程语言是什么? *ZX81 BASIC。

我还在上小学的时候大概10岁或者11岁的样子我的一个朋友得到了一台 ZX81 计算机。于是我自学了 BASIC 并编写了一些简单的程序尝试在他的机器上运行。1982年的圣诞节我得到了属于我自己的 ZX81 计算机此后不久ZX81 的硬件跟不上硬件发展了我于1993年晚些时候转向了 ZX Spectrum ,自此之后,我也使用 Z80 汇编语言编写了一些程序。

多年以后,我偶然得到一款早期型的卡西欧(LCTT 译注CASIO)掌上型计算器,它可以执行 BASIC 程序。这是 PB 系列的一款设备,有可能是 PB-200不过我已经记不清具体的型号了。16岁时在英国我设法说服了我的老师允许我在我的数学普通等级考试中使用它。我也关注过其他的编程语言,不过直到我在大学开始学习 Ada 前,我都没有真正学过其他的编程语言。 —Steven Ellis


*你的第一门编程语言是什么? *我的第一门编程语言是 BASIC那是在80年代早期的事了。

我的一个亲戚给他们的孩子买了一台 C64 计算机用来让他们学习计算机。它们只用这台计算机玩游戏,我也被邀请了。不过他们还有一本关于 BASIC 语言的书,我非常好奇并做了尝试。我写了一些简短的代码,我甚至都不知道怎么保存它,不过当我看到计算机如我告诉它的那样工作的时候那仍然令人十分兴奋。这也说明我没有花钱来学习 BASIC 编程,这并不是我的选择,它是我当时能接触到的语言。几年后当我得到我的第一台计算机,一台 XT 兼容机后,我首先用 GW-BASIC 语言写了一些代码GW-BASIC 是 BASIC 语言在 DOS 系统下的一种方言。

*接下来发生了什么? *我第一次认真选择的编程语言是 Pascal。我问了一圈又查了一些书籍它看上去是在功能与难度之间的一个挺好的妥协。一开始我用的是 Turbo Pascal我用它编写了各种简单的游戏与图形。我热爱 Pascal因此在上大学的时候我甚至还在用它(FreePascal 与 Lazarus)来进完成测量自动化与地下水污染分布的建模。—Peter Czanik


*你的第一门编程语言是什么? *卡西欧 fx-7200G 的编程语言的一个变体,我想它可能没有自己的名字。

*你花钱学习的吗? *没有。

*你是自己选择它的吗? *也没有

*为什么这么说我得到了一台可编程计算器作为我13岁的生日礼物(包装盒上说它是“计算机”)。

*接下来发生了什么? *一年后,上高一的时候,我在甚至没有一本教科书的情况下学习了 Pascal 语言——我们的老师推荐的主要的学习 Pascal 的教材还是大学程度的,他认为这些教材对我们而言还是太难了——因此我们用来理论教学与练习的文本实际上都是使用 BASIC 语言的,因此我也学了一些 BASIC 语言(虽然是无意的,但是从老师的角度来看的确是这样)。

我认为我是一名后来者——一些我的同班同学在家里拥有一台内置了 BASIC 的计算机(commodore 64, Spectrum Sinclair, Amstrad 之一)。上高中之前我已经对 BASIC 有所了解,高一的一年里,在我们这些对 BASIC 有点了解又无法欣赏 Pascal 的优点的学生之间存在一些紧张状态。

后来,我上大学了(方向是数学与科学),我们这些学生可以使用 DOS PC 或者一些苹果公司的 Macintosh 或者是主要连接到 SunOS 4 共享机的一些终端机(如果你幸运的话text ones 与 X Terminals 总有一个可以用)。我大二的时候(1993年),某位朋友向我介绍了 Linux它可以在家用机器上运行。在得知 Linux 之前我已经给自己买了一台新电脑(一台 AMD 386SX 兼容机直到8年后它退役了我才意识到它是 AMD 的而不是我之前一直以为的 Intel 386 机器)。得知我的 8088 电脑不适合运行更现代的系统之后,我尝试使用 Linux 系统,在仅有 2MB 内存的情况下安装好 Linux 花了我几个月的时间。此后不久,我升级到了 4MB 内存,我也几乎不再进入 DOS 系统(虽然我仍然将它作为我的第二启动项几年了)。我至今仍然记得当我能够完全在家里运行一个类 UNIX 系统时我的惊讶与激动之情,即便只是基于 X windows (在升级到 4MB 内存以后)。

回到编程语言,在我大学期间,我们学习/使用了 Pascal 语言(一开始的引入课程)C语言(系统编程引论课程)以及一些课程专用的语言Eiffel 语言(在面向对象课程中学习的)Matlab 语言(为了我的一项研究),等等。

我的第一份实际工作是参与一个基于 Unix 的项目(我们主要使用运行 Ultrix 系统的 DECstation 工作站),我主要是使用 Lisp 语言(Lucid Common Lisp)和 C 语言。我就是在这时学习的 Lisp 语言,虽然我后来没有再使用过它,而且这段经历也给我留下了很多美好回忆。作为一个个人项目,我设法使该项目运行在 Linux 系统的个人电脑上,通过使用一个用于 SCO Unix 的 LCL 副本。我极力使之能在 Linux 下工作,主要是通过 ibcs2 组件以及一个用跨平太编译器工具链重新编译的 GNU libc 库实现的(在 Linux 上使用 GCC/as/ld 生成用于 SCO 的 COFF 库)。我非常自豪地向我的领导演示这一应用这通常是需要一套运行在5000美元的电脑上的大约要花30000美元的工作站上的。然而它从来没有被投入到生产环境中过。—Yedidyah Bar David


*你的第一门编程语言是什么? *TI-BASIC

*你花钱学习的吗? *没有不过我那时才10岁。

*你是自己选择它的吗? *没呢。

*为什么这么说? *这是 TI-99/4A 计算机上仅有的编程语言了这台计算机上也有“Extended Basic”语言不过这只是 BASIC 的一个拓展指令集。在16Kb内存中你绝对可以编写相当可以的游戏。

*接下来发生了什么? *下一步就是输入通过打印杂志传递的程序并把他们记录到录音带上。不过我与我的兄弟在这一步上做得更加深入——我们通过将结果的声音通过无线电实时广播让对方记录下来基于清晰的接收和足够的错误纠正在1985年就可以通过无线方式分发和下载程序。—Thierry Carrez


你的第一门编程语言是什么? *GW-BASIC

*你是自己选择它的吗? *不是

*为什么这么说? *它是针对初学者的标准教学内容。

*接下来发生了什么? *我开始在一家公司里做计算机硬件专家。—Hüseyin GÜÇ


*你的第一门编程语言是什么? *BASIC在 VIC-20 机器上。

*你花钱学习的吗? *没。

*你是自己选择它的吗? *我只限于选择了那台电脑。

*为什么这么说? *我发现 VIC 机器至少是跟我在学校里见到的 PET 机器最兼容的机器了。而且它有一个好看的键盘。

*接下来发生了什么? *接下来就是编程时间了因为这台机器也没有其他事情可以做了——我学到了很多。—Bob Murphy


*你的第一门编程语言是什么? *如果我没有记错的话那是2004年还是2005年。我还在上学可能是5年级我接触到了 BASIC。此前我还学了有关 “Window Logo” 的一些知识。

*你花钱学习的吗? *我父母花钱供我上学了。

*你是自己选择它的吗? *完全不是。

*为什么这么说? *这是由我学校学习的课程决定的。

*接下来发生了什么? *它彻底燃起了我对编程的兴趣,我继续在课外学习班中学习了 C/C++ 语言。我的父母非常鼓励我并且一定程度上尽力给我提供补习费。我经常是整个计算机补习机构里最后仅剩的那个孩子。 —Kedar Vijay Kulkarni


*你的第一门编程语言是什么? *Fortran因为那是很久之前的事了。

*你花钱学习的吗? *不是的,我花钱上计算机课程时学习的它。

*你是自己选择它的吗? *不,那是仅有的选择。我很幸运我用的是终端而不是打孔卡片,我可怜的丈夫在学习 Fortran 程序的时候用的还是打孔卡片。

*为什么这么说? *我是人文专业毕业(英语与人类学双专业),我临毕业的时候需要实实在在找一份工作。我发现学一门计算机课会使之成为可能。事实证明,就市场需要的技能而言,这一门编程课程是我学到的最有价值的课程。它给我在后续的学习 Python理解 Git 以及为 Red Hat 撰写和编辑文档时提供了一个很好的基础。

*接下来发生了什么? *我回家了,在一台我父母购买的 TI-99 计算机上自学了 BASIC 语言(我不确定他们为什么买了它,或许是为了我的弟弟)。早期的 Fortran 基础让我在 Windows 出现之前的使用早期个人电脑能够更加容易,因为我能够理解 DOS。这显然是一个简陋的开始。—Ingrid Towey


*你的第一门编程语言是什么? *2001年我通过阅读艾迪生韦斯利出版社的 Goto Java 这本书学习了 Java SE 1.2

*你花钱学习的吗? *没有,我当时还在学校里。

*你是自己选择它的吗? *是的

*为什么这么说? *我想要使用 Java Applets 制作交互式网页。

*接下来发生了什么? *我上大学了并且接触到了自由和开源软件(FOSS)并且学习了 ANSI C 语言。—Joël Krähemann


*你的第一门编程语言是什么? *我准备就此写一篇文章,不过我已经写了这篇了:参与开源软件并不必须要计算机科学学位(2020年8月6日)

这篇文章中的重点如下:

我的父母买了一台 Apple II+ 的克隆版,叫做 Franklin ACE 1000。我和我的兄弟自学了如何使用 AppleSoft BASIC 编程。我的父母给我们买了书,我们如饥似渴地吸收了这些书籍。我通过读书上的内容学会了 BASIC 语言的边边角角,然后写了实操的程序。我最喜欢的娱乐就是编写游戏和仿真程序。

我停留在 BASIC 语言上很长时间。但是当我上了大学以后,我开始学习其他的编程语言。我是物理学系的一名学生,作为学习数值分析的先导条件,我们必须学习 Fortran 语言。因为已经学过了 BASIC 语言,我觉得 Fortran 相当容易学习。Fortran 与 BASIC 是非常相似的,虽然我使用 Fortran 的经历相当有限。

我的兄弟在另一所大学里主修计算机科学,他给我介绍了 C 语言,我立马就爱上了用 C 语言编程!它是一种简明直接的语言,给了我相当大的灵活性,让我能够编写有用的程序。但是我的学位计划里没有足够的空间让我选择一门不适用于我所选择的物理学专业的课程。为此,我转而通过读书结合图书馆的参考指南来自学 C 语言。每当我希望学习新的主题的时候,我就在参考指南中寻找相应的内容然后实践编写一个相应的程序来锻炼我的新知识。

随着时间的推移,我利用我所学的内容来学习其它的编程语言。我编写了大量 Unix Korn 命令行脚本, Linux Bash 脚本和 AWK 脚本。我还用 Perl 写些小实用工具, 后来也用 Perl CGI 以及 PHP 做网站开发。我学习了够用的 LISP 语言来调整我的 GNU Emacs 副本,也学习了够用的 Scheme 来参与一个使用 GNU Guile 的项目。—Jim Hall


*你的第一门编程语言是什么? *我的第一门编程是 BASIC准确地说是 Atari BASIC 语言。

20世纪80年代我家买了一台 Atari 400 家用计算机。我用它来玩游戏,不过它也自带了一盘 BASIC 语言的卡带。它还包括一个盒式录音机(Atari 1010)。那些年程序可以存储在标准的录音带上。Atari 400 没有内部存储空间因此我也学会了如何将我的程序保存到录音带上以及随后如何重新加载它们。除了常见的“Hello World”的程序我还写了一些允许使用操作杆来控制声音与图形的程序。我现在还记得用来设置和读取某些设置属性的 PEEK 和 POKE 命令,比如一项颜色设置或者一项声音设置。

*你花钱学习的吗? *没有

*你是自己选择它的吗? *是的,它是 Atari 中内置的编程语言,因此我确定尝试一下——我非常喜欢用它编程。

*接下来发生了什么? *一段时间之后,我可能已经失去了对 Atari 以及电子游戏的兴趣。直到90年代中期当我参加计算机课程以辅修计算机科学时我才重新对计算机和编程重新感兴趣。这些课程教会了我 C 语言、汇编语言以及很多其他的通用计算机与网络技术。作为我的硕士学位的一部分,我后来又学习了 Java。在我的职业生涯中我只进行了数量不多的正式编程工作主要是在21世纪头十年中期时在 ColdFusion 环境下使用 Java 语言。从编程方面来说,命令行脚本是我的主要领域,主要是基于 BASH 与 Windows不过只要需要的时候我也会进行特定目标的编程。我使用过作业控制语言(Job Control Language, JCL)用来在大型机系统之间进行自动化文件传输。我也使用过 Python 用来将 REST API 的查询结果返回给企业监控面板。我仍然认为我早期的 BASIC 编程经历是值得的,因为我从软件与编程中得到了尊重。—Alan Formy-Duval


via: https://opensource.com/article/21/8/first-programming-language

作者:Jen Wike Huger 选题:lujun9972 译者:CanYellow 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出