> 出处:[编程派](http://codingpy.com/article/the-little-printf-chapter01/) > 原文:[http://ferd.ca/the-little-printf.html](http://ferd.ca/the-little-printf.html) ![](https://box.kancloud.cn/2016-01-05_568b3f0410bcd.jpg) > 原作者Fred Hebert,是一名加拿大程序员,写过一本Erlang入门书籍。这个故事的英文名叫The Little Printf,是他在今年10月份芝加哥的CityCode大会上所做的一次分享的内容,模仿了法国经典名著《小王子》,其中夹杂着他自己学习编程的一些经历。这个短篇故事一共有11章,其中的插画按照作者的介绍,应该是他自己画的。想看原作者分享的朋友可以前往[YouTube](https://youtu.be/EWdqtMdcNkE)。译文如有不妥之处,请大家指正! ![](https://box.kancloud.cn/2016-01-05_568b3f0427e14.png) ## 第一章 我庆幸自己出生在电脑、电子游戏普及之前。我和小伙伴们经常在室外玩耍,那个时候我们可以享受自己发明游戏的乐趣。 我们会自己扮演英雄,手里拿着的树枝可以立刻变成一张弓、一把枪、一柄剑或是一个望远镜。我们可以把树枝变成任何东西,当然回旋镖除外,因为一旦你把树枝当回旋镖扔了出去,就得自个儿捡回来。 ![](https://box.kancloud.cn/2016-01-05_568b3f04365a5.png) 慢慢地,我长大了,继续玩这样的游戏让人感到有点尴尬。你没办法把松球当做手榴弹,假装自己有超能力,因为其他的孩子都觉得大人的世界才精彩。我已经不太合群了。最终,我不得不长大。但是,不管怎么说,这仍然是一个非常幸运的童年。 后来,我有机会玩上了电子游戏,有了自己的电脑。在游戏和电脑里,我一直梦寐以求的虚构世界真实地出现在面前。我整个人都陷进去了,在那个世界里,我完全过上了另一种生活。 但是大部分电子游戏都有一个特点:你不能创造,你只能应对、消费。少年时代,我参加了即兴剧场。在剧场里,我又可以与人交流,一起创造,自由放任自己的想象力。 当然,魁北克的即兴剧场与别处不同;里面有一个溜冰场——一切都和冰球有关。 ![](https://box.kancloud.cn/2016-01-05_568b3f0447446.png) 2005年到2008年期间,我在大学里学习多媒体技术,机缘巧合之下接触了编程工作。我觉得编程太不可思议了!我又充满了创意,而且还能赚钱!当时,我设计了自己的第一个游戏雏形,高兴地跳了起来。 不过别人后来告诉我,“那并不是真正的电子游戏”。“那只是一个HTML表单,如果你把文字和选项替换成数组,就更好了。代码还需要进一步清理。” ![](https://box.kancloud.cn/2016-01-05_568b3f0459fad.png) 我有一点心灰意冷;那个游戏其实是根据我自己写的一个脚本设计的,想让玩游戏的人“选择自己的冒险旅程”。不过,我也认识到了一点:如果我想让自己开发出的东西被更多人认可,我就必须再学很多相关的知识才行。 我必须要学习“真正的编程”。从GUI工具里的JScript,转型到更好的语言,比如说PHP。所以,我学习了PHP,还有JavaScript。然后,又有人告诉我怎样才算是真正的编程;PHP糟透了。有人说,我或许可以尝试下Python,我后来也学了。 但是,真正的程序员懂得更加高深的东西,Python的lambda还不行,面向对象编程也不算。别人跟我说,接下来你最好读一读SICP(计算机程序的构造和解释),因为这本书就是计算机科学领域的圣经。 ![](https://box.kancloud.cn/2016-01-05_568b3f0469a69.png) 就这样,我接触了Scheme。后来我买了K&R(C语言程序设计),因为现实世界中真正的程序员都会C语言。我在当地的大学报了一个培训班,因为真正的程序员都懂数据结构和数学,我也有学到几分。我开始读论文和技术书籍,因为真正的程序员要与时俱进,掌握时髦的算法。 在这个过程中,我学习了Erlang,开始以此谋生。我写了一本有关Erlang的书。有趣的是,没人质疑过我是不是真的会写书,是不是真的会画插画。不管怎么说,我就这样得到了一份教别人学Erlang语言的工作,而自己还从没有用Erlang做过生产级别的开发。