Ruby(开始入水)

2017/06/18 version 0.1
原文地址:致未来的程序猿

Fall in love

故事应该从2002年说起,那时我正在思考如何教人们学习编程的事,一种堪称伟大的计算机语言Ruby正好适合去教如何学习编程。我是想说那时整个IT界都为Ruby这门强大、优雅却又不失趣味性的语言所振奋,同时在我看来Ruby也不失为学习编程的入门语言。

不过有一丝不便的是,那时还没有太多为新手入门的Ruby相关资料,我们计算机团队中一些组员就在讨论想做些入门指导所需的参考书,同时这样更有便于关于编程知识的教学。我想得很多关于入门指导资料的事,所以讨论的时候我说的也越来越多,一个组员就向我提议,“克里斯,与其你说了那么多想法,为什么不直接写个入门指导出来?” 因此我还真就这样做了。

但现实是没那么丰满的。理论上那些好的想法我都有,但实际上对我这类已经会编程的人来说很容易,但为一点从未没学过程序的新人做一个指导书的确是个比我以为大得多的挑战。

所幸有一点帮助了我,那些编程新人很容易联系到我,同时我也经常在他们编程遇到难题的时候帮助他们。我发现有许多新手都卡在了同一个问题上,我都要向他们再解释一遍,重复工作很大,但值得欣慰的是那些新人编程能力变得越来越好。

几年之后,我为新手们写的入门指导资料逐步完善,所以今天我可以很开心得宣布这个任务已经完成,之后我可以继续把重点转移到其他事情上去。不久遇到一个能将我所做的这些入门资料编成书籍出版的机会,我考虑到指导资料已经基本上齐全了,应该没有什么问题了。稍后我修改了几处瑕疵,增加了更多练习内容和教学例题,增加了几个章节,最后还发给50多个组员审核……

修编过程又经过了一年,现在我认为这个指导资料可谓相当完善了,我想主要是因为在写这本资料期间帮助过我的几百个无私的人们……

这个网页上的指导资料是最原始的版本,自从2004年没有再变动,如果想找最新和最完善的,你可以去查询已经出版的书籍

—————————————————————————————————————

致教师们的教学思考

这里有几个我一直坚持的指导原则,这些原则使得学习编程的过程更加自然顺畅,尽管学习编程本身有一定难度。如果你们正在教育或者指导一些学生学习编程,下面这些原则可能会帮助到你们。

第一个原则是:我试着尽可能区分各种不同的概念和定义,这样学生们将每次只需要记住一个概念。这种方法起初是挺困难的,但是当我做过几次练习后开始慢慢变的容易。有些概念必须在教其他学习内容之前就要提前告诉学生,当然我也知道这些概念的优先差异有多么小。我的原则是提前编排好教学概念的顺序,所以指导资料里每个新章节都会和之前的章节相关联。

另一个我一直谨记于心的原则是只教一种解决某个问题的办法。做为一个给从未学过编程的指导书来说这是一个明显的好处。某种程度上只学会做一件事情的一种方法比学会两种方法要简单得多,可能另外一个更重要的好处是你教给新手越少的东西,他们越会在编程过程中更加有创造性和更聪明。本来编程就是为了解决某个问题,能够在每个阶段鼓励他们想出更多解决问题的方法是很重要的。

我已经强调了新手学习编程过程中了解不同概念的重要性,让学生们用他们的直觉来引导你想表述的想法,而不只是靠这本指导书。面向对象的编程为此提供一个好的途径。我在指导书前面几章以“对象”和不同“种类的对象”来开始介绍,跳过那些无用的习惯用语。我不会说类似“Ruby中所有东西都是一个对象”或“数字和字符串是某种对象”,因为这些说法对一个新手来说没任何意义。相反的,我会说成“字符串”(而不说成是“字符串对象”),而有时我更偏于将程序中某个类型说成“对象”。因此鉴于Ruby中所有类型都是对象,这使得我的一些工作方便了许多。

尽管我尽可能避免类似“00”(Object-Oriented)这样术语的使用,我只是想确保如果新手们的确需要学一个新的术语,他们应该学习正确的那个(我不想让他们再学一回,是吧?),因此我会使用“字符串”来称呼相应的对象,而不是用“文本”,做到正确地称呼相应的对象。

就指导书中的练习内容而言,我自认为我能想到的就已经是一些不错的练习内容了,但是这些练习越多越好。老实得说,我用了一半的时间试着想出这些有趣好玩的练习资料,令人厌烦的练习完全会扼杀掉任何对于编程的欲望,相应的好的练习资料会引发新手难以抑制的热情。简而言之,教师们在思考好的习题方面花费再多的时间也是值得的。

—————————————————————————————————————

关于本书原始资料

本指导资料的页面(甚至包括本页面)都是由一个大的Ruby程序自动生成的,所有代码示例是自动运行的,而且显示的输出也是自动生成的。我想这是最好最简单同时也是最酷的方式确保所有我呈现的代码示例就是我所演示的那样。你不需要担心我可能只是复制了某个错误的示例的输出,或者忘了测试某些代码,所有代码都已经测试过了。


—————————————————————————————————————

致谢

最后我想感谢在Ruby讨论组内每个人贡献的想法和对我的鼓励,所有使得本书更加完善的审核者,我亲爱的妻子,特别要感谢的是我主要的审核人,创造了这么优秀语言的作者Matz(松本行弘),以及Pragmatic程序出版社!

如果你发现任何错误或拼写问题,或者有评论、建议以及好的程序示例,请联系我

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,671评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,442评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,524评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,623评论 1 275
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,642评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,584评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,953评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,621评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,865评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,608评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,698评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,378评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,958评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,940评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,173评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,419评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,425评论 2 342

推荐阅读更多精彩内容