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

Jen Wike Huger 的头像

·

·

·

2,065 次阅读

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

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

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

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

我的第一们编程语言是 BASIC,我在 7 年级的时候开始接触它。

你是花钱学习的吗?

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

你是自己选择它的吗?

我不认为我当时曾确切地认识到还有第二选择。这是当时计算机实验室中仅有的内容,而且一些学长对它的介绍足以让我参与其中。我记得它不是计算机科学课程的一部分。

为什么这么说?

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

接下来发生了什么?

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

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

将近 30 年后,我坚信是 BASIC(以及《模拟城市》)开启了我现在成为 SRE 的旅程,每天编写代码,与计算机集群为伍。

—— Chris Collins

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

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

—— Matthew Helmke

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

BASIC

你花钱学习的吗?

不是。

你是自己选择它的吗?

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

为什么这么说?

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

接下来发生了什么?

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

—— Erik O’Shaughnessy

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

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

在我主修计算机科学的第三学年,我选了一系列的课程 —— 以 PL/I 为特色的第三年主流课程、一学期的 360/370 汇编器课程、两门关于计算机理论的荣誉课程、一门数值分析课程、“密歇根终端系统上的十二种编程语言”,以及一系列数学课。

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

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

—— Chris Hermansen

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

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

—— JT Pennington

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

我在一台 Apple 电脑上接触到了 Logo 编程语言。它由麻省理工的 西蒙· 佩珀特 Seymour Papert 等人在 1967 年开发。这是一种为了教育目的开发的编程语言,是 Lisp 语言的一个子集。

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

—— Donald Watkins

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

我的第一门编程语言是 BASIC,那是在 80 年代早期的事了。

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

接下来发生了什么?

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

—— Peter Czanik

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

TI-BASIC。

你花钱学习的吗?

不是,不过我那时才 10 岁。

你是自己选择它的吗?

不是。

为什么这么说?

这是 TI-99/4A 计算机上仅有的编程语言了!嗯,这台计算机上也有 “Extended Basic” 语言,不过这只是 BASIC 的一个拓展指令集。你实际上可以在 16Kb 内存中编写像样的游戏。

接下来发生了什么?

下一步就是输入通过纸质杂志上的程序并把它们记录到录音带上。不过我与我哥哥在这一步上做得更加深入 —— 我们通过将结果的声音通过电台广播的方式让别人录制下来!由于清晰的录音和足够的纠错,在 1985 年就实现了通过无线方式分发和下载程序。

—— Thierry Carrez

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

BASIC,在 VIC-20 机器上。

你花钱学习的吗?

不是。

你是自己选择它的吗?

我只是选择了那台电脑。

为什么这么说?

我发现 VIC 计算机至少是跟我在学校里见到的 PET 机器最兼容的机器了。而且它有一个好看的键盘。

接下来发生了什么?

接下来就是编程时间了,因为这台机器也没有其他事情可以做了——我学到了很多。

—— Bob Murphy

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

Fortran,因为那是很久之前的事了。

你花钱学习的吗?

不是的,我是通过上计算机课程学习的它。

你是自己选择它的吗?

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

为什么这么说?

我是人文专业毕业(英语与人类学双专业),我临毕业的时候实际上必须找一份工作。我想,学一门计算机课会让找工作容易一些。事实证明,就市场需要的技能而言,这一门编程课程是我学到的最有价值的课程。它给我在后续的学习 Python、理解 Git 以及为 Red Hat 撰写和编辑文档时提供了一个很好的基础。

接下来发生了什么?

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

—— Ingrid Towey

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

我准备就此写一篇文章,不过我已经写了这篇了:《参与开源软件并不必须要计算机科学学位(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

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

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

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

7 条回复

  1. 来自浙江宁波的 Firefox 113.0|Windows 10 用户 的头像
    来自浙江宁波的 Firefox 113.0|Windows 10 用户

    C -> CPP -> Python -> React -> Golang -> CSharp -> Rust

    来自宁波
  2. 来自江苏无锡的 Firefox 97.0|Ubuntu 用户 的头像
    来自江苏无锡的 Firefox 97.0|Ubuntu 用户

    Pascal(Delphi)->C->Labview      除了Pascal,都是用到什么学什么

    来自无锡
  3. 来自陕西西安的 Firefox 113.0|Windows 10 用户 的头像
    来自陕西西安的 Firefox 113.0|Windows 10 用户

    C -> Java -> Golang -> Rust

    来自西安
  4. 来自天津的 Firefox 113.0|GNU/Linux 用户 的头像
    来自天津的 Firefox 113.0|GNU/Linux 用户

    basic c fortran rust

    来自天津
  5. 来自天津的 Chrome Mobile 106.0|Android 13 用户 的头像
    来自天津的 Chrome Mobile 106.0|Android 13 用户

    Python -> C -> Kotlin

    来自天津
  6. 来自117.154.100.175的 Chrome Mobile 99.0|Android 10 用户 的头像
    来自117.154.100.175的 Chrome Mobile 99.0|Android 10 用户

    c → python → rust

    来自武汉
  7. 来自江西上饶的 Chrome 113.0|Mac 10.15 用户 的头像
    来自江西上饶的 Chrome 113.0|Mac 10.15 用户

    c-java-rust-js-ts-rust

    来自上饶

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注