编辑推荐
Zed Shaw完善了Ruby学习系统。只要跟着学习,你就会和迄今为止数十万Zed教过的初学者一样获得成功!你只要有纪律、有恒心地去学习,承诺决不放弃就可以了,其他的就让作者来完成吧。
在这本书中,你将通过完成52个精心设计的习题来学习Ruby。阅读这些习题,输入代码(不许复制和粘贴),修正你的错误,观察程序的运行。在这个过程中,你将了解软件是如何工作的,好的程序看起来是什么样子的,怎样阅读、编写和思考代码,以及如何使用专业程序员的技巧来找出并修正程序中的错误。重要的是,你将学到下面这些编写的Ruby软件必需的初始技能。
万事开头难,不过很快你就会弄懂,并且享受其中的乐趣!
这本书会让你的每一分钟投入都有回报。Ruby是世界上强大、受欢迎的编程语言之一,很快你就会成为一名Ruby程序员。
你还可以看Zed的讲课视频!本书附赠5个多小时充满激情和动力的教学视频(扫右侧下载):一部完整的Ruby视频教程!
内容简介
本书是一本Ruby入门书籍,是《“笨办法”学Python》的姊妹篇。本书适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,体验到软件开发的基本过程。本书结构非常简单,共包括52个习题,其中26个覆盖了输入/输出、变量和函数3个主题,另外26个覆盖了一些比较高级的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做巩固练习。
作者简介
Zed Shaw是一名狂热的吉他手、程序员和编程书作家。他的书教世界各地的人如何写软件。他的《“笨办法”学Python》在全球有数百万的读者。他写的软件大大小小的公司都在使用。他的文章经常被众多极客圈里的人阅读和引用。他是一名活跃且有趣的作家,他会让你大笑,也会让你思考。
目录
- 习题0 准备工作 1
- Mac OS X 1
- OS X:应该看到的结果 2
- Windows 2
- Windows:应该看到的结果 3
- Linux 3
- Linux:应该看到的结果 4
- 网上搜索 5
- 给新手的告诫 5
- 习题1 第一个程序 7
- 应该看到的结果 8
- 巩固练习 10
- 常见问题回答 10
- 习题2 注释和#号 12
- 应该看到的结果 12
- 巩固练习 13
- 常见问题回答 13
- 习题3 数字和数学计算 14
- 应该看到的结果 15
- 巩固练习 15
- 常见问题回答 16
- 习题4 变量和命名 17
- 应该看到的结果 18
- 巩固练习 18
- 常见问题回答 19
- 习题5 更多的变量和打印 20
- 应该看到的结果 21
- 巩固练习 21
- 常见问题回答 21
- 习题6 字符串和文本 22
- 应该看到的结果 23
- 巩固练习 23
- 常见问题回答 23
- 习题7 更多打印 24
- 应该看到的结果 24
- 巩固练习 25
- 常见问题回答 25
- 习题8 打印,打印 26
- 应该看到的结果 26
- 巩固练习 27
- 常见问题回答 27
- 习题9 打印,打印,打印 28
- 应该看到的结果 28
- 巩固练习 29
- 常见问题回答 29
- 习题10 那是什么 30
- 应该看到的结果 31
- 转义序列 31
- 巩固练习 32
- 常见问题回答 32
- 习题11 提问 33
- 应该看到的结果 34
- 巩固练习 34
- 常见问题回答 34
- 习题12 提示用户输入数 35
- 应该看到的结果 35
- 巩固练习 36
- 习题13 参数、解包和变量 37
- 应该看到的结果 37
- 巩固练习 38
- 常见问题回答 38
- 习题14 提示和传递 40
- 应该看到的结果 40
- 巩固练习 41
- 常见问题回答 41
- 习题15 读取文件 43
- 应该看到的结果 44
- 巩固练习 44
- 常见问题回答 45
- 习题16 读写文件 46
- 应该看到的结果 47
- 巩固练习 48
- 常见问题回答 48
- 习题17 更多文件操作 49
- 应该看到的结果 49
- 巩固练习 50
- 常见问题回答 50
- 习题18 命名、变量、代码和函数 52
- 应该看到的结果 53
- 巩固练习 54
- 常见问题回答 54
- 习题19 函数和变量 56
- 应该看到的结果 57
- 巩固练习 57
- 常见问题回答 58
- 习题20 函数和文件 59
- 应该看到的结果 60
- 巩固练习 60
- 常见问题回答 60
- 习题21 函数可以返回某些东西 62
- 应该看到的结果 63
- 巩固练习 63
- 常见问题回答 64
- 习题22 到现在你学到了哪些东西 65
- 学到的东西 65
- 习题23 阅读一些代码 66
- 习题24 更多练习 67
- 应该看到的结果 68
- 巩固练习 68
- 常见问题回答 68
- 习题25 更多更多的实践 70
- 应该看到的结果 71
- 巩固练习 73
- 常见问题回答 73
- 习题26 恭喜你,现在可以考试了! 74
- 常见问题回答 74
- 习题27 记住逻辑关系 75
- 逻辑术语 75
- 真值表 76
- 常见问题回答 77
- 习题28 布尔表达式练习 78
- 应该看到的结果 79
- 巩固练习 80
- 常见问题回答 80
- 习题29 if语句 81
- 应该看到的结果 82
- 巩固练习 82
- 常见问题回答 82
- 习题30 else和if 83
- 应该看到的结果 84
- 巩固练习 84
- 常见问题回答 85
- 习题31 作出决定 86
- 应该看到的结果 87
- 巩固练习 87
- 常见问题回答 88
- 习题32 循环和数组 89
- 应该看到的结果 91
- 巩固练习 91
- 常见问题回答 92
- 习题33 while循环 93
- 应该看到的结果 94
- 巩固练习 95
- 常见问题回答 95
- 习题34 访问数组的元素 97
- 巩固练习 98
- 习题35 分支和函数 99
- 应该看到的结果 101
- 巩固练习 102
- 常见问题回答 102
- 习题36 设计和调试 103
- if语句的规则 103
- 循环的规则 103
- 调试的小技巧 104
- 家庭作业 104
- 习题37 复习各种符号 105
- 关键字 105
- 数据类型 106
- 字符串转义序列 107
- 操作符 107
- 阅读代码 108
- 巩固练习 109
- 常见问题回答 109
- 习题38 数组的操作 110
- 应该看到的结果 111
- 数组有什么功能 112
- 什么时候使用数组 112
- 巩固练习 113
- 常见问题回答 113
- 习题39 散列,可爱的散列 114
- 散列示例 116
- 应该看到的结果 117
- 散列的功能 118
- 创建自己的散列模块 119
- 代码描述 122
- 数组的三个等级 124
- 应该看到的结果(之二) 124
- 如何选择散列或数组 125
- 巩固练习 126
- 常见问题回答 126
- 习题40 模块、类和对象 127
- 模块和散列差不多 127
- 类和模块差不多 129
- 对象相当于导入 129
- 获取某样东西里包含的东西 131
- 第一个关于类的例子 131
- 应该看到的结果 132
- 巩固练习 132
- 常见问题回答 132
- 习题41 学习面向对象术语 133
- 单词练习 133
- 语汇练习 133
- 混合巩固练习 134
- 阅读测试 134
- 练习从语言到代码 137
- 阅读更多代码 137
- 常见问题回答 137
- 习题42 对象、类及从属关系 138
- 代码要怎么写 139
- 巩固练习 141
- 常见问题回答 141
- 习题43 基本的面向对象分析和
- 设计 143
- 简单游戏引擎的分析 144
- 把问题写下来或者画出来 144
- 摘录和研究关键概念 144
- 为各种概念创建类层次结构图和
- 对象关系图 145
- 编写和运行各个类 146
- 重复和细化 148
- 自顶向下与自底向上 148
- 《来自Percal 25号行星的哥顿人》的
- 代码 149
- 应该看到的结果 155
- 巩固练习 156
- 常见问题回答 156
- 习题44 继承与合成 157
- 什么是继承 157
- 隐式继承 158
- 显式覆盖 159
- 在运行前或运行后替换 160
- 三种方式组合使用 161
- super()和initialize搭配使用 162
- 合成 163
- 继承和合成的应用场合 165
- 巩固练习 166
- 常见问题回答 166
- 习题45 你来制作一个游戏 167
- 评价你的游戏 167
- 函数的风格 168
- 类的风格 168
- 代码风格 169
- 好的注释 169
- 为你的游戏评分 169
- 习题46 项目骨架 171
- 创建骨架项目目录 171
- 最终目录结构 173
- 测试你的配置 174
- 使用这个骨架 174
- 小测验 174
- 常见问题回答 175
- 习题47 自动化测试 176
- 编写测试用例 176
- 测试指南 179
- 应该看到的结果 179
- 巩固练习 180
- 常见问题回答 180
- 习题48 进阶用户输入 181
- 我们的游戏语汇 181
- 断句 182
- 语汇元组 182
- 扫描输入 182
- 异常和数字 183
- 挑战测试驱动开发 184
- 应该测试的东西 184
- 巩固练习 186
- 常见问题回答 187
- 习题49 创建句子 188
- 匹配和预览 188
- 句子的文法 189
- 关于异常 189
- 解析器代码 189
- 试用解析器 193
- 应该测试的东西 193
- 巩固练习 194
- 常见问题回答 194
- 习题50 你的第一个网站 195
- 安装Sinatra 195
- 写一个简单的“Hello World”项目 196
- 发生了什么 197
- 停止和重载Sinatra 198
- 修正错误 198
- 创建基本的模板文件 199
- 巩固练习 200
- 常见问题回答 200
- 习题51 从浏览器中获取输入 201
- Web的工作原理 201
- 表单的工作原理 203
- 创建HTML表单 205
- 创建布局模板 206
- 为表单撰写自动测试代码 207
- 巩固练习 208
- 常见问题回答 208
- 习题52 创建Web游戏 209
- 重构习题43中的游戏 209
- 会话和用户跟踪 215
- 创建引擎 216
- 期末考试 218
- 接下来的路 220
- 怎样学习任何一种编程语言 221
- 老程序员的建议 222
- 附录 命令行快速入门 224
- 简介:废话少说,命令行来也 224
- 如何使用这个附录 224
- 你需要发挥记忆力 225
- 准备工作 225
- 任务 226
- 知识点 226
- 更多任务 227
- 路径、文件夹和目录(pwd) 229
- 任务 229
- 知识点 230
- 更多任务 230
- 如果你迷失了 230
- 任务 231
- 知识点 231
- 创建目录(mkdir) 231
- 任务 231
- 知识点 233
- 更多任务 233
- 更改目录(cd) 233
- 任务 233
- 知识点 237
- 更多任务 237
- 列出目录下的内容(ls) 237
- 任务 238
- 知识点 241
- 更多任务 241
- 删除路径(rmdir) 242
- 任务 242
- 知识点 244
- 更多任务 244
- 在多个目录间切换(pushd,popd) 245
- 任务 245
- 知识点 247
- 更多任务 247
- 创建空文件(touch,New-Item) 247
- 任务 248
- 知识点 248
- 更多任务 249
- 复制文件(cp) 249
- 任务 249
- 知识点 252
- 更多任务 252
- 移动文件(mv) 252
- 任务 253
- 知识点 255
- 更多任务 255
- 查看文件内容(less,MORE) 255
- 任务 255
- 知识点 256
- 更多任务 256
- 流文件内容显示(cat) 256
- 任务 256
- 知识点 257
- 更多任务 257
- 删除文件(rm) 258
- 任务 258
- 知识点 259
- 更多任务 260
- 退出终端(exit) 260
- 任务 260
- 知识点 260
- 更多任务 260
- 命令行将来的路 261
- Unix bash参考资料 261
- PowerShell参考资料 261