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