BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

作者访谈:Programming for Kids

| 作者 Ben Linders 关注 20 他的粉丝 ,译者 刘君 关注 0 他的粉丝 发布于 2014年4月13日. 估计阅读时间: 11 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Peter Armstrong专门为那些想学编程的孩子写了这本书。Programming for Kids一书中含有大量Ruby编写的、适合9-14岁孩子学习编程基础的实例。书中还向孩子们展示了如何在Mac上使用命令行。父母可以坐在孩子身边一起学习。

InfoQ就孩子学习计算机编程和培养编程技巧的不同方法,以及用Leanpub自助出版电子书等问题采访了这本书的作者Peter Armstrong。

InfoQ:是什么让你决定为孩子写一本编程书?

Peter:我想教儿子。他是重度玩家,7岁时决定要学编程。那个时候我试着教他,但他准备得不怎么样。他用过Scratch,想深入了解Lego Mindstorms,但还没有准备好坐在电脑前思考并录入——像程序员那样的编程模式。所以,我在等。9岁的时候,他又求我教他,我觉得他可能准备好了。就给他买了很多评价相当不错的编程书,但这些书让他充满挫败感。如果是青少年,这些书会很合用,9岁的话,要求还是过高了。原理要描述得更浅显,例子也要更短些,诸如此类。所以,如果儿子确实想读这样一本合适的书。我会为他写的。我为专业程序员写过很多编程书,但我从未给孩子写过书。不过,因为这些年一直在为儿子解惑,我觉得自己可以试试。圣诞时有些空暇时间,就写了这本书。儿子学完了整本书,并且大胆地提出了自己感到困惑的地方!

InfoQ: 哪一年龄阶段的孩子可以开始学编程?这本书面向的又是哪一年龄段?

Peter: 我觉得9或10岁的孩子就可以开始学编程。有些情况下8岁也行。这本书面向9到14岁的孩子。对更大些的孩子也适用——有个同事半开玩笑地说,他们应该向地方高校非计算机专业的一年级新生推荐这本书——但最适合的读者应该是9到14岁的孩子。对于更大的孩子,有更多选择。

InfoQ: 书中有很多编程练习。你为什么选择练习这种编程教学方式?

Peter:起初,这本书只有一些我为儿子所写的模仿示例。没有任何练习。但Yves Hanoulle在着手翻译丹麦版的时候,在邮件中强烈建议我试试练习。我这样做时,发现我所认为儿子理解了的东西实际上并没有达到预想的层次。所以,我重新组织了结构并将练习作为这本书的关注重点。书有185页,其中30页是练习答案!有了这些练习,才能真正知道你是否理解了。

InfoQ: 为什么选Ruby做编程语言?

Peter:主要是因为Ruby简单。JavaScript或CoffeeScript也可以选,但那样的话,要么需要和浏览器及DOM交互,要么需要安装Node.js。我决定选一门符合以下条件的语言:(1)孩子的Mac上已经装好了;(2)交互执行(REPL)并且(3)简单。基本上只剩下Ruby和Python可选,而相比Python,我更擅长Ruby。比如,Leanpub本身就是用Ruby on Rails搭建的。

InfoQ:对象在Ruby中相当核心,为什么你却只字未提?

Peter:这本书的目标是向孩子介绍编程基础,而不是特定的编程范式。既不是面向对象编程,也不是函数式编程,更不是Ruby编程。只是编程。书中我没有完全隐藏Ruby的特征(例如,我用了块),但我希望这本书主要关注通用概念,比如循环,迭代,条件语句等。此外,我想让书变得有趣,这也是为什么我大量使用了say命令(包括反引号)等等。

InfoQ:书里是纯粹介绍编码,还是也教孩子们测试?

Peter:只关注编码。书里有随机测试(ad hoc testing),但没有单元或集成测试。这本书是在教孩子编程基础,而不是软件工程。这也有助于发挥我自己的优势:也许我是公司里最糟糕的自动化测试人员,同时可以说是最好的随机测试人员。

InfoQ: 现阶段绝大多数软件开发都在团队中进行。书里有没有合作练习,也就是孩子们能一起做练习的地方?教师能将这本书用在课堂上和学生团队中么?

Peter: 这本书是为独立完成阅读和学习的孩子所写的。孩子们也可以一起读书做练习。我认为Yves的孩子们是在一起做练习,因为他在做丹麦语翻译。对于教师和课堂:当然没问题!孩子们可以在计算机课上用这本书,一个人或团队。本书没有DRM(数字版权保护),而价格也能被整个课堂或学校接受。

InfoQ:要是父母也想学编程怎么办?他们能和孩子一起读这本书么?

Peter:那是当然!我鼓励父母坐在孩子身边一起学习——特别是在孩子用父母笔记本的时候。我希望父母能和孩子们一起学习。对我而言,编程是一种新知识。

InfoQ:这本书正被译为丹麦文法文和西班牙文。进展如何?

Peter:非常棒!反响出人意料,尤其是丹麦版本译者Yves Hanoulle。他大着胆子在我写了很少一部分的时候(近5章)就开始翻译这本书。不过,某种程度上这并不是真的风险,因为他只想用来教儿子。现在,对我而言很有意思的一件事是,写作时同步翻译让我更多关注如何完成一章。我尊重Yves不想浪费他的时间,所以不想让他因为我的重写而耗费精力。我让他比我的进度晚几章,直到我确定书的大方向。那种情况下,一旦完成,我会让他立刻翻译儿子验证过的章节。只有通过了测试,我才会考虑下面要写的章节。我认为如果不做任何修改,每章都难以通过儿子的检验。

InfoQ:由于书在Leanpub发布,以后我们能看到新版本么?

Peter:会的!现在这一版本已经完成。一旦被翻译为多种语言、获得广泛认同,我就会试着更新。也许我会开发出一个系列。例如,我没有教web、对象、函数式编程等等。但随着本书的发展,我慢慢发现了最佳篇幅。绝大多数儿童读物不可能有500页!所以我还是挺高兴包括练习题答案只有143页的。读完这本书,做完所有练习,就是一件巨大的成就。对9岁的孩子而言,尤其如此!所以,我更希望在读完143页后获得这种巨大的成就感,而不是200或300页后一些小孩因放弃而一无所获。

InfoQ:如果孩子想当好的软件开发者,除却编程,还要学些什么技巧?

Peter:很多。首要的一点是交流。无论是说还是写,你要能清楚准确的交流。另一方面,你要能在讨论时聆听并快速思考,以便了解真正的需求,重要和不重要的各是什么。你要有自信,不要因为害羞而错过争论。创业之前我当了十多年的程序员,现在我是名创业公司创始人,相当于产品拥有者。我在职业中真正所学的技能之一就是辨别什么是真正的需求,什么不是。如果你能避免解决那些难而非必要的问题,就太好了!

InfoQ:要是孩子读完这本书后想学更多编程方面的知识,能做什么?

Peter: 还有很多为年龄更大的孩子所准备的书,理论上这应该是下一步。也有很多像这样的网站,现在就很好,并且还在快速提升。

InfoQ:你写过很多编程练习方面的书籍,Flexible Rails和Hello! Flex 4(《Flex 4一学就会》)。这和为孩子们写书有什么不同?

Peter:首先,背景知识。孩子们不光不知道终端是什么,他们还不知道文本文件是什么或是控制键和命令键的位置。所以,这些都要解释。书的开头,我甚至附了一张键盘图,用箭头标示出某些键,由于儿子毕竟只是个玩家,没有用过一些必要的键。类似的,每次你用像反引号 (`) 或是脱字号(^),需要在键盘上标注所在的位置以及如何输入。这很难。为专业程序员写书时,主要的挑战在于让书有趣,而我不需要解释如何运行Spotlight或终端。另一方面,看到儿子喜欢按书学习很让我欣慰——一旦我说有完成的章节需要验证,他就放下视频游戏,抓过笔记本。除了享受读书的乐趣外,他还很认真!我还记得他带我去修改某处稍显迷惑的地方时,说,“这就是为何你要有测试人员。如果这被出版,是不是会有一场灾难?”他的完美主义像我。

InfoQ:作为Leanpub的联合创始人,这是你在Leanpub上的第二本书。你从这本书的写作中学到了什么有关Leanpub产品的事情么?

Peter:是的!我们的翻译和共同执笔者工作流需要一定的改进!现在他们用Dropbox,还好,但当有多个版本的时候(比如,原版书籍),译者会不知道究竟改了哪些,基于Git的工作流会更稳妥一些。这也适用于共同创作的情况,如果多个作者需要编辑同一份文件。所以,2014年我们要做些改变。另一件事是一名翻译所提的,通过一次点击从原本中获取所有设置和登陆页面文本。这非常有意义,还未实现这点让我很吃惊。站在用户角度使用Leanpub很赞:一些事看去微不足道,但实际上对作者而言很重要。只有真正经历过问题,才会感同身受!

可以从Leanpub下载一份programming for kids试读本。

作者简介

Peter ArmstrongLeanpubDashcube的联合创始人,是4本书的作者:Lean PublishingFlexible RailsHello! Flex 4以及Programming for Kids。有超过十年的软件开发经验,其中8年在硅谷初创企业。Peter是精益发布和创业的资深演讲者。可以通过peter@leanpub.com与他联系。

查看原文链接:Author Q&A on Programming for Kids


感谢崔康对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

你们就这样糟蹋孩子吗? by Lai Mead

根据生物重演理论,小孩子,根本不适合编程,他们适合动植物-大自然...

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT