小Printf的编程故事:第一章

移动开发
原作者Fred Hebert,是一名加拿大程序员,写过一本Erlang入门书籍。这个故事的英文名叫The Little Printf,是他在今年10月份芝加哥的CityCode大会上所做的一次分享的内容,模仿了法国经典名著《小王子》,其中夹杂着他自己学习编程的一些经历。这个短篇故事一共有11章,其中的插画按照作者的介绍,应该是他自己画的。想看原作者分享的朋友可以前往YouTube。译文如有不妥之处,请大家指正!

[[160813]]

原作者Fred Hebert,是一名加拿大程序员,写过一本Erlang入门书籍。这个故事的英文名叫The Little Printf,是他在今年10月份芝加哥的CityCode大会上所做的一次分享的内容,模仿了法国经典名著《小王子》,其中夹杂着他自己学习编程的一些经历。这个短篇故事一共有11章,其中的插画按照作者的介绍,应该是他自己画的。想看原作者分享的朋友可以前往YouTube。译文如有不妥之处,请大家指正!

[[160814]]

第一章

我庆幸自己出生在电脑、电子游戏普及之前。我和小伙伴们经常在室外玩耍,那个时候我们可以享受自己发明游戏的乐趣。

我们会自己扮演英雄,手里拿着的树枝可以立刻变成一张弓、一把枪、一柄剑或是一个望远镜。我们可以把树枝变成任何东西,当然回旋镖除外,因为一旦你把树枝当回旋镖扔了出去,就得自个儿捡回来。

树枝当成回旋镖?

慢慢地,我长大了,继续玩这样的游戏让人感到有点尴尬。你没办法把松球当做手榴弹,假装自己有超能力,因为其他的孩子都觉得大人的世界才精彩。我已经不太合群了。最终,我不得不长大。但是,不管怎么说,这仍然是一个非常幸运的童年。

后来,我有机会玩上了电子游戏,有了自己的电脑。在游戏和电脑里,我一直梦寐以求的虚构世界真实地出现在面前。我整个人都陷进去了,在那个世界里,我完全过上了另一种生活。

但是大部分电子游戏都有一个特点:你不能创造,你只能应对、消费。少年时代,我参加了即兴剧场。在剧场里,我又可以与人交流,一起创造,自由放任自己的想象力。

当然,魁北克的即兴剧场与别处不同;里面有一个溜冰场——一切都和冰球有关。

人们在溜冰场即兴表演

2005年到2008年期间,我在大学里学习多媒体技术,机缘巧合之下接触了编程工作。我觉得编程太不可思议了!我又充满了创意,而且还能赚钱!当时,我设计了自己的第一个游戏雏形,高兴地跳了起来。

不过别人后来告诉我,“那并不是真正的电子游戏”。“那只是一个HTML表单,如果你把文字和选项替换成数组,就更好了。代码还需要进一步清理。”

HTML form of an old browser game named 'DANGER IL Y A UN HOMME ARMÉ DANS CET ÉDIFICE 3'

我有一点心灰意冷;那个游戏其实是根据我自己写的一个脚本设计的,想让玩游戏的人“选择自己的冒险旅程”。不过,我也认识到了一点:如果我想让自己开发出的东西被更多人认可,我就必须再学很多相关的知识才行。

我必须要学习“真正的编程”。从GUI工具里的JScript,转型到更好的语言,比如说PHP。所以,我学习了PHP,还有JavaScript。然后,又有人告诉我怎样才算是真正的编程;PHP糟透了。有人说,我或许可以尝试下Python,我后来也学了。

但是,真正的程序员懂得更加高深的东西,Python的lambda还不行,面向对象编程也不算。别人跟我说,接下来你最好读一读SICP(计算机程序的构造和解释),因为这本书就是计算机科学领域的圣经。

计算机程序的构造和解释这本书的封面

就这样,我接触了Scheme。后来我买了K&R(C语言程序设计),因为现实世界中真正的程序员都会C语言。我在当地的大学报了一个培训班,因为真正的程序员都懂数据结构和数学,我也有学到几分。我开始读论文和技术书籍,因为真正的程序员要与时俱进,掌握时髦的算法。

在这个过程中,我学习了Erlang,开始以此谋生。我写了一本有关Erlang的书。有趣的是,没人质疑过我是不是真的会写书,是不是真的会画插画。不管怎么说,我就这样得到了一份教别人学Erlang语言的工作,而自己还从没有用Erlang做过生产级别的开发。

原文:http://ferd.ca/the-little-printf.html

责任编辑:倪明 来源: 编程派
相关推荐

2015-12-31 09:22:25

编程故事printf

2014-01-13 11:22:28

storm

2011-07-19 17:25:14

jQuery MobiAndroid

2012-02-09 10:39:37

AndroidWeb App官方文档

2013-10-15 14:18:31

2023-08-03 13:56:53

配置文件容器

2023-05-24 16:13:31

ChatGPT神经网络

2011-07-20 10:27:18

jQuery Mobi手机新闻浏览器

2010-12-07 10:40:27

软考系统架构设计师

2010-12-09 10:59:54

三级PC技术

2011-01-04 13:51:44

PC技术

2010-12-28 10:55:07

PC技术

2010-12-13 11:50:48

三级PC技术

2013-09-29 09:53:26

iPhone开发

2018-12-20 11:04:05

物联网安全信息安全物联网

2015-06-04 09:38:39

Java垃圾回收机

2009-09-01 16:03:32

C#单元测试

2010-01-07 10:04:18

F#函数式编程

2019-12-16 09:35:58

编程PythonJava

2013-11-04 10:32:01

Facebook女程序员
点赞
收藏

51CTO技术栈公众号