小Printf的編程故事:第一章
原作者Fred Hebert,是一名加拿大程序員,寫過一本Erlang入門書籍。這個故事的英文名叫The Little Printf,是他在今年10月份芝加哥的CityCode大會上所做的一次分享的內(nèi)容,模仿了法國經(jīng)典名著《小王子》,其中夾雜著他自己學習編程的一些經(jīng)歷。這個短篇故事一共有11章,其中的插畫按照作者的介紹,應該是他自己畫的。想看原作者分享的朋友可以前往YouTube。譯文如有不妥之處,請大家指正!
第一章
我慶幸自己出生在電腦、電子游戲普及之前。我和小伙伴們經(jīng)常在室外玩耍,那個時候我們可以享受自己發(fā)明游戲的樂趣。
我們會自己扮演英雄,手里拿著的樹枝可以立刻變成一張弓、一把槍、一柄劍或是一個望遠鏡。我們可以把樹枝變成任何東西,當然回旋鏢除外,因為一旦你把樹枝當回旋鏢扔了出去,就得自個兒撿回來。
慢慢地,我長大了,繼續(xù)玩這樣的游戲讓人感到有點尷尬。你沒辦法把松球當做手榴彈,假裝自己有超能力,因為其他的孩子都覺得大人的世界才精彩。我已經(jīng)不太合群了。最終,我不得不長大。但是,不管怎么說,這仍然是一個非常幸運的童年。
后來,我有機會玩上了電子游戲,有了自己的電腦。在游戲和電腦里,我一直夢寐以求的虛構世界真實地出現(xiàn)在面前。我整個人都陷進去了,在那個世界里,我完全過上了另一種生活。
但是大部分電子游戲都有一個特點:你不能創(chuàng)造,你只能應對、消費。少年時代,我參加了即興劇場。在劇場里,我又可以與人交流,一起創(chuàng)造,自由放任自己的想象力。
當然,魁北克的即興劇場與別處不同;里面有一個溜冰場——一切都和冰球有關。
2005年到2008年期間,我在大學里學習多媒體技術,機緣巧合之下接觸了編程工作。我覺得編程太不可思議了!我又充滿了創(chuàng)意,而且還能賺錢!當時,我設計了自己的第一個游戲雛形,高興地跳了起來。
不過別人后來告訴我,“那并不是真正的電子游戲”。“那只是一個HTML表單,如果你把文字和選項替換成數(shù)組,就更好了。代碼還需要進一步清理。”
我有一點心灰意冷;那個游戲其實是根據(jù)我自己寫的一個腳本設計的,想讓玩游戲的人“選擇自己的冒險旅程”。不過,我也認識到了一點:如果我想讓自己開發(fā)出的東西被更多人認可,我就必須再學很多相關的知識才行。
我必須要學習“真正的編程”。從GUI工具里的JScript,轉(zhuǎn)型到更好的語言,比如說PHP。所以,我學習了PHP,還有JavaScript。然后,又有人告訴我怎樣才算是真正的編程;PHP糟透了。有人說,我或許可以嘗試下Python,我后來也學了。
但是,真正的程序員懂得更加高深的東西,Python的lambda還不行,面向?qū)ο缶幊桃膊凰?。別人跟我說,接下來你最好讀一讀SICP(計算機程序的構造和解釋),因為這本書就是計算機科學領域的圣經(jīng)。
就這樣,我接觸了Scheme。后來我買了K&R(C語言程序設計),因為現(xiàn)實世界中真正的程序員都會C語言。我在當?shù)氐拇髮W報了一個培訓班,因為真正的程序員都懂數(shù)據(jù)結構和數(shù)學,我也有學到幾分。我開始讀論文和技術書籍,因為真正的程序員要與時俱進,掌握時髦的算法。
在這個過程中,我學習了Erlang,開始以此謀生。我寫了一本有關Erlang的書。有趣的是,沒人質(zhì)疑過我是不是真的會寫書,是不是真的會畫插畫。不管怎么說,我就這樣得到了一份教別人學Erlang語言的工作,而自己還從沒有用Erlang做過生產(chǎn)級別的開發(fā)。