Keep Learning

《 笨方法学 Ruby 》(Learn Ruby The Hard Way)是 Zed Shaw 编写的一本Ruby 入门书籍。适合对电脑了解不多,没有学过写程式,但对写程式感兴趣的朋友学习使用。这本书以习题的方式引导读者一步一步学习写程式,从简单的打印一直讲到 完整专案的实现。也许读完这本书并不意味着你已经学会了写程式,但至少你会对程式语言以及开发程式这个行业有一个初步的了解。

笔者认为本书区别于其它入门书籍的特点如下:

  • 注重实践。本书提供了足够的练习代码,如果你完成了所有的练习(包括加分习题),那你已经写了上万行的代码。要知道很多职业程式设计师一年也就写几万行程式码而已。
  • 注重能力培养。除了原序言提到的「读和写」、「注重细节」、以及「发现不同」这样的基本能力以外,本书还培养了读者自己钻研问题和寻求答案的能力。
  • 注重好习惯的养成。本书详细地讲解了怎样写出好的代码、好的注释、好的项目。这会让你在后续的学习中少走很多弯路。

本书结构非常简单,其实就是52 个习题而已。其中26 个复盖了输入输出、变量、以及函式三个课题,另外 26 个复盖了一些比较进阶的话题,如条件判断、回圈、类和物件、程式码测试、以及专案的实现等。每一章节的格式基本都是一样的,以程式码练习题开始,读者照着 说明编写程式码(不允许复制贴上),运行并检查结果,然后再做一下加分习题就可以了。当然如果你觉得加分习题对你来说有点难,你也可以暂时跳过,以后再完 成也没关系。

另外阅读本书还需要你有一定的英文能力。其实学习写程式不懂英语是很吃亏的,毕竟编程语言都是基于英语,而程式社群的主要交流方式也是英 语。不会英语的人在程式界可能就只好当二等公民了。本书的翻译尽量保留了所有的英文专业词汇(可能会有中文说明),而且遵照 Zed 的建议,程式码及答案部分没有翻译成中文,读者看到不懂的地方,请自己查字典解决。

如果你对自己的英文能力比较有信心,译者强烈推荐你直接去下载阅读英文原版。这本书代码较多,文字内容较少,因此英文原版的阅读理解也比较容易。

LRTHW的风格和别的书差异很大。它没有像一般的入门书籍一样通过讨好读者以激发读者兴趣,而是直截了当地告诉你你需要做什么,需要注意什么。这种风格可能会让人觉得枯燥乏味,读者姑且把这也当做 Hard Way 的一部分吧。

LPTHW 简体中文版的翻译者是 wangdingwei82@gmail.com,而他的 blog 是 http://ducktypist.com

LRTHW 中文版是 xdite 基于 LPTHW 中文版的翻译成果,改编成 Ruby 版,并修正当中繁简以及不同程式( Python / Ruby )环境所造成的差异改译而成。

如果你对 LRTHW 的翻译有任何意见和建议,请在这个 project 的 Github issue 页发 issue 给我,或者是直接 pull request 也行。

你也可以上 LRTHW 官网 购买本书正版,这也是对 Zed Shaw 的支持。

笨方法更简单 习題 0: 准备工作

习題 1: 第一个程序

习題 2: 注释和井号

习题 3: 数字和数学计算

习题 4: 变量(variable)和命名

习题 5: 更多的变量和打印

习题 6: 字串(string)和文字

习题 7: 更多打印

习题 8: 打印,打印

习题 9: 打印,打印,打印

习题 10: 那是什么?

习题 11: 提问

习题 12: 模块 (Module)

习题 13: 参数、解包、參數

习题 14: 提示和传参

习题 15: 读取文件

习题 16: 阅读文件操作

习题 17: 更多的文件操作

习题 18: 命名、参数、程序码、函数

习题 19: 函数和参数

习题 20: 函数和文件

习题 21: 函数可以传回东西

习题 22: 到現在你学到了哪些东西?

习题 23: 阅读一些程序码

习题 24: 更多练习

习题 25: 更多更多的练习

习题 26: 恭喜你,現在來考试了!

习题 27: 记住逻辑关系

习题 28: 布尔(Boolean)表示式练习

习题 29: 分支(If)

习题 30: Else 和 If

习题 31: 做出決定

习题 32: 循环和数组

习题 33: While 循环

习题 34: 存取数组里的元素

习题 35: 分支 (Branches) 和函数 (Functions)

习题 36: 设计和测试

习题 37: 复习各种符号

习题 38: 阅读程序码

习题 39: 数组的操作

习题 40: Hash, 可爱的 Hash

习题 41: 來自 Percal 25 号行星的哥顿人(Gothons)

习题 42: 物以类聚

习题 43: 你來制作一个游戏

习题 44: 评估你的游戏

习题 45: 物件、类和从属关系

习题 46: 一个项目骨架

习题 47: 自动化测试

习题 48: 更进阶的使用者输入

习题 49: 创建句子

习题 50: 你的第一个网站

习题 51: 从浏览器中取得输入

习题 52: 创建你的网页游戏

下一步

一個老程序员的建议

    Categories: