Linux中國

你的第一門編程語言是什麼?

以下是 24 位開源技術專家分享了他們開始編程之旅的故事。

我向我們的貢獻者提問了這個問題:「你的第一門編程語言是什麼?」不過這個問題並不像看上去那樣簡單。下面的故事談到了是誰向你建議了第一門編程語言,是什麼促使你學習它。如果你是付費學習的,接下來又發生了什麼。這裡還涉及到你所在的階段以及這個世界上正在發生的事情。

讓我們傾聽這 24 位技術專家的故事吧。

你的第一門編程語言是什麼?

BASIC。

你花錢學習的嗎?

並不是。

你是自己選擇它的嗎?

不盡然。

為什麼這麼說?

那是 1979 年的聖誕節,我的父母(他們分別是學校的一名維護人員和一名公共衛生護士)省吃儉用地攢下了驚人的 1000 美元買下了一台 Tandy/Radio Shack TRS-80。它隨附了一份涵蓋了完整的 BASIC 編程語言的活頁夾。我的父親認為讓我學習開發計算機軟體是一個很好的將我從困境中解脫出來的方式。

接下來發生了什麼?

我的父母給我和我的兄弟買了與「自學編程」相關的書籍,也訂閱了相關的流行雜誌。這些資源中提供了許多遊戲的列印版的源代碼。我們每個星期都花費大量的時間編寫程序,然後一行一行地使用電腦自帶的檢查程序找出我們的打字錯誤並調試程序。當我們厭倦了遊戲以後,我們開始修改它們。我們一開始只是簡單地修改零零散散的字元串將一個羅馬戰鬥策略遊戲修改為一個太空戰鬥策略遊戲。不過後來隨著我們所做修改的複雜度的增加,我們最後開始開發我們自己的恐怖遊戲。此後不久,我們開始通過信件分享我們的遊戲磁碟,後來也通過當時僅 110bps 網速的電子公告板(BBS)分享我們的遊戲。

40 年之後,我可以同全世界共同創作,家庭網路連接性能提升了七個數量級以上,但是我仍然時常懷念那個周六,那一天,在我和我的兄弟共同創造的真實的恐怖遊戲當中,我被我的弟弟擊敗。

—— Jeremy Stanley

你的第一門編程語言是什麼?

我的第一們編程語言是 BASIC,我在 7 年級的時候開始接觸它。

你是花錢學習的嗎?

如果你認為允許在午餐時間在計算機實驗室里玩 《 德軍總部 3D Wolfenstein 3D 》、《 我的世界 Minecraft 》、《 模擬城市 Sim City 》這些遊戲,是對計算機科學足夠感興趣並學習 BASIC 語言的的花費的話,那就算是吧。

你是自己選擇它的嗎?

我不認為我當時曾確切地認識到還有第二選擇。這是當時計算機實驗室中僅有的內容,而且一些學長對它的介紹足以讓我參與其中。我記得它不是計算機科學課程的一部分。

為什麼這麼說?

當時,我學習 BASIC 僅僅是因為樂趣。我僅僅用它來創造基於文本的「選擇你自己的探險之旅」風格的遊戲。從源代碼創建一些兼具藝術性與趣味性的東西並讓計算機運行它們這件事極大地吸引了我。我此前也使用過計算機,但這是我頭一次讓它為我做一些事情。

接下來發生了什麼?

或許並不是巧合,我後來使用「選擇你自己的探險之旅」風格的遊戲來學習我後來接觸到的每一種編程語言。

這一經歷以及在計算機遊戲中的首次探索(既有商業遊戲也有我自創的遊戲)開始了我進一步深入計算機領域的旅程,一直到我 11 年級時我的父母買回了我們家的第一台電腦。三年後,我將這一段旅程轉化為了我的第一份計算機領域的工作,我成為了一家研究公司的實習生,這家公司最終錄用了我為他們的 IT 支持組的一員,這是我大學畢業後的第一份「真正意義上」的工作。

將近 30 年後,我堅信是 BASIC(以及《模擬城市》)開啟了我現在成為 SRE 的旅程,每天編寫代碼,與計算機集群為伍。

—— Chris Collins

你的第一門編程語言是什麼?

我玩過 BASIC 語言,但是我的第一門正式入門語言是 PL/I。我在我大學時的第一次編程課上學習它的。

—— Heidi Ellis

你的第一門編程語言是什麼?

我的第一門編程語言是 BASIC 語言。那是在 1981 年。我學習它是因為我買了一台能夠啟動進入 BASIC 編輯器的家用電腦,一台 TRS-80 彩色計算機。它擁有相當出眾的 4K 容量的內存(沒寫錯),而且它還可以在盒式磁帶上存儲程序。我希望讓電腦做一些事情,因此我開始學習如何使用它能夠理解的語言向它下達指令。一旦你第一次體驗到程序成功運行的欣喜若狂的感受,你會發現我還想再次體驗這種感覺。你還需要知道的是,如今已經過去 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。接著 Perl 之後,就是 Python,一門在語法上更加靈活的語言。

—— Gregory Pittman

你的第一門編程語言是什麼?

我 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

你的第一門編程語言是什麼?

在我高中的時候,作為一項實驗,讓一位沒有任何計算機經驗的教師教我們計算機編程。我的學校之前從來沒有嘗試過這類課程。施樂公司給我們提供了一台 Model-33 型電傳打字機和一台 110 波特的聲耦數據機,這使得我們可以訪問他們運行 CP-5 分時系統的 XDS Sigma 7大型機。BASIC 是當時的主流。

你花錢學習的嗎?

上學算嗎?

接下來發生了什麼?

一些學生開始嘗試在這台機器上 「瞎戳」,看看如果我們不在提示符位置輸入 「BASIC」 會發生什麼,這使我們發現這台機器上還內置了 其他的 編程語言!還有其它的東西!如果我沒有記錯的話,這台機器上至少還有三個獨立的 Fortran 編譯器 —— Fortran、FLAG(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,而且很枯燥。後來我轉向 Pascal,Pascal 也比不上 ELAN。再後來就是 C 語言、Modula-2 語言和 Ada 語言,我最後發現了 Occam,並且使用它在 晶體電腦 transputer 上完成了很多任務。這是相當激動人心的,因為我們可以做更多的並行計算。能夠使用 64 台晶體電腦是一件相當酷的事情。同時,接入各種網路配置也令人興奮。這是幾十年前的事情了。我看到了往日的高中生與今日的高中生的不同點。我們當時幾乎沒有資源(我直到大四的時候才買得起一台電腦),而今天電腦已經習以為常了。而且,電腦與類似 FLL(FIRST Lego League)這樣的機器人使得降低編程的門檻成為可能。然而,今天的學生們也被隨處可及的電子遊戲以及其中炫酷的圖像所分心。現成產品(像電子遊戲、手機以及平板電腦等)使得今天的學生能夠從閑暇時間中抽出用來學習機算機科學的時間很有限。我必須承認,如果在我長大之後也接觸到了今天這樣的電子遊戲,我可能對計算機科學擁有完全不同的看法,並且也不會被我的同學們視作「書獃子」,而是成為一個遊戲玩家。

不幸的是,我沒有時間玩遊戲,我的 RTX3090 顯卡在運行人工智慧演算法。我真正想要的玩具是一台 A100 GPU 以及一套我現在遠程使用的 DGX 系統。我認為由於 Google colab 以及其通過 Jupyter 可訪問的特點,對人工智慧的接觸可以下放到高中水平。然而這一切都取決於帶領你入門的高中教師。如果你的編程老師只是教你樂高機器人上的塊編程,而不是 Python,或者只是教你使用 Scratch 而不是 Google colab。那麼我們就沒有利用那些學生早年間的潛力,也沒有利用這些出眾的基礎設施。

—— Gregor von Laszewski

你的第一門編程語言是什麼?

我在一台 Apple 電腦上接觸到了 Logo 編程語言。它由麻省理工的 西蒙· 佩珀特 Seymour Papert 等人在 1967 年開發。這是一種為了教育目的開發的編程語言,是 Lisp 語言的一個子集。

我學習它是當時我參與的一項畢業教育項目的一部分。作為該項目的一部分,我使用 Logo 教一名五年級學生的幾何學。在教這名學生 Logo 編程語言和這門課程的時候,我發現我在數學上的麻煩與無助在於無法可視化這些材料。在完成我的研究生課程以後,我使用 Logo 語言繼續以相同的課程與編程語言教其他學生們幾何與數學。學生們和我在這個過程中學習了數學,並開發了一些優美的圖形,我們實際上是為一個「烏龜」機器人編程,在需要放在教室地板上的巨幅紙張上繪製我們的圖像。我的編程經歷讓我開始尋找其他的方式來將數學帶入學生的生活中,這讓我開始接觸 Python 以及 Python 中的「烏龜」模塊。後來,我開始教學生們寫 Python 程序,這些程序的特點是「屏幕上的」烏龜機器人可以創建優美的圖像。與此同時,我也開始向這些學生介紹 Python 編程語言與邏輯思考能力。

—— Donald Watkins

你的第一門編程語言是什麼?

ZX81 BASIC。

我還在上小學的時候,大概 10 歲或者 11 歲的樣子,我的一個朋友得到了一台 ZX81 計算機。於是我自學了 BASIC 並編寫了一些簡單的程序嘗試在他的機器上運行。1982 年的聖誕節,我得到了屬於我自己的 ZX81 計算機,此後不久,ZX81 的硬體跟不上硬體發展了,我於 1993 年晚些時候轉向了 ZX Spectrum ,自此之後,我也使用 Z80 彙編語言編寫了一些程序。

多年以後,我偶然得到一款早期型的卡西歐掌上型計算器,它可以執行 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 電腦或者一些蘋果公司的 Macintosh,或者是主要連接到 SunOS 4 共享機的一些終端機(文本終端,如果你幸運的話,有 X 終端)。我大二的時候(1993 年),某位朋友向我介紹了 Linux,它可以在家用機器上運行。我已經給自己買了一台新電腦(一台 AMD 386SX 兼容機,直到 8 年後它退役是,我才意識到它是 AMD 的,而不是我之前一直以為的英特爾 386 機器)。得知我的 8088 電腦不適合運行更現代的系統之後,我嘗試使用 Linux 系統,在僅有 2MB 內存的情況下安裝好 Linux 花了我幾個月的時間。此後不久,我升級到了 4MB 內存,我也幾乎不再進入 DOS 系統(雖然我仍然將它作為我的第二啟動項保留了好幾年)。我至今仍然記得當我能夠完全在家裡運行一個類 UNIX 系統時我的驚訝與激動之情,即便只是 X Window(在升級到 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 庫)。我非常自豪地向我的領導演示這一應用,通常需要一台價值約 3 萬美元的工作站,卻可以在一台 5 千美元的電腦上運行。然而它從來沒有被投入到生產環境中過。

—— 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++ 語言。我的父母非常鼓勵我,並且在設法給我提供了額外的費用。我經常是整個計算機補習機構里最後僅剩的那個「孩子」。我是唯一一個學習編程語言的人,而其他人大多學習 MS Office 或 PhotoShop 等。哈哈。好了,剩下的就是歷史了。

—— 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 年代,我家買了一台雅達利 400 家用計算機。我用它來玩遊戲,不過它也自帶了一盤 BASIC 語言的卡帶。它還包括一個盒式錄音機(雅達利 1010)。那些年,程序可以存儲在標準的錄音帶上。雅達利 400 沒有內部存儲空間,因此我也學會了如何將我的程序保存到錄音帶上,以及隨後如何重新載入它們。除了常見的「Hello World」的程序,我還寫了一些可以用操作桿來控制聲音與圖形的程序。我現在還記得用來設置和讀取某些設置屬性的 PEEKPOKE 命令,比如顏色或聲音設置。

你花錢學習的嗎?

不是。

你是自己選擇它的嗎?

是的,它是雅達利中內置的編程語言,因此我確定嘗試一下——我非常喜歡用它編程。

接下來發生了什麼?

一段時間之後,我可能對雅達利以及電子遊戲失去了興趣。直到 90 年代中期,當我參加計算機課程以輔修計算機科學時,我才重新對計算機和編程重新感興趣。這些課程教會了我 C 語言、彙編語言以及很多其他的通用計算機與網路技術。作為我的碩士學位的一部分,我後來又學習了 Java。在我的職業生涯中我只進行過數量不多的正式編程工作,主要是在本世紀 10 年代中期時在 ColdFusion 環境下使用 Java 語言。從編程方面來說,命令行腳本是我的主要領域,主要是在 Bash 與 Windows 瞎,不過只要有需要,我也會進行特定目標的編程。我使用過 工作控制語言 Job Control Language (JCL)用來在大型機系統之間進行自動文件傳輸。我也使用過 Python 用來將 REST API 的查詢結果返回給企業的監控面板。我仍然認為我早期的 BASIC 編程經歷是值得的,因為我獲得了對軟體和編程的尊重。

—— Alan Formy-Duval

(題圖:MJ/0cf8b9b0-fb92-4131-ab89-ee0880c1b4a9)

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

作者:Jen Wike Huger 選題:lujun9972 譯者:CanYellow 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國