0. 准备: 在哪里执行代码?
你可以安装Ruby,也可以在在线执行器(搜索“ruby online repl”)中执行。
重要的是“我自己输入并执行”。
只需记住一个规则
不要复制粘贴,一定要自己输入。
即使出现错误也没关系。那是最深刻地刻在大脑中的时刻。
1阶段: “电脑,说话吧” - 确立最小框架
1-1. 第一个代码: Hello, Ruby
puts "Hello, Ruby"
puts:感觉像“打印行”。表示在控制台输出一行"Hello, Ruby":只是一个字符串(一串文字)
实际上,这一行就是这样的句子。
“电脑啊,把这个字打印到屏幕上。”
大脑框架(Park Moon-ho风格)
框架:“代码是命令” → 一行是一个想法。
可视化:可以将
puts想象成嘴巴。 → 电脑的嘴巴。提取:反复输入更改文字。
练习 1-1. 创作自己的第一句话
尝试输出你想要的三行句子:
puts "编程好难啊…"
puts "先试试看。"
puts "比想象中简单吧?"
任务 A
将上述三行改成你自己的句子
尝试输出至少5行
使用
puts仅用文字写下“今年想要实现的事”清单
2阶段: “说5遍吧” - 重复这种魔法
现在让我们在大脑中种下重复模式的框架。
2-1. 多次说同样的话
5.times do
puts "编程很有趣"
end
5.times:“重复5次”do ... end:重复的代码范围内部的
puts会执行5次
大脑框架
框架:“重复的东西用循环(loop)表示。”
可视化:想象自己围绕着一个圆圈,1、2、3、4、5数字在圆圈上旋转
提取:尝试将数字更改为3、10、100等重复输入。
练习 2-1. 洗脑自己
10.times do
puts "我比想象中学得更快"
end
任务 B
将
10.times更改为3.times,7.times,然后尝试执行更改句子为
- “我不会放弃”
- “每天至少一点点”
创作至少3个相同句子并多次输出
3阶段: 一旦看到模式 - 通过画星星来打开“视觉化电路”
现在让我们进入大脑真正视觉化模式的时刻。
就是画星星。
3-1. 一行星星
puts "*"
这是一个单星号。
3-2. 竖直五颗星星
5.times do
puts "*"
end
在屏幕上显示:
*
*
*
*
*
这样。
在这里,大脑获得了这种感觉。
“啊,这是‘竖直五颗星星’的模式。”
3-3. 制作逐渐增大的阶梯
现在是真正有趣的时刻。
1.upto(5) do |n|
puts "*" * n
end
1.upto(5):从1到5依次放入n中重复|n|:每次重复使用的变量名"*" * n:将"*"字符重复n次的字符串
输出结果:
*
**
***
****
*****
在这里,大脑经历了模式识别爆发。
数字从1→2→3→4→5增加
星星数量从1→2→3→4→5也增加
一个“阶梯”画在眼前
大脑框架
框架:“数字与形状的关系”
可视化:代码就像是画图的笔
提取:尝试更改数字范围,多次绘制(3、7、10等)。
练习 3-1. 让阶梯变得更大,更大
任务 C
将
1.upto(5)更改为1.upto(10),然后尝试执行将
puts "*" * n更改为puts "#" * n也可以使用表情符号!
尝试自己制作以下形式:
# ## ### #### #####→ 提示:使用
"#"代替"*"。
4阶段: 通过条件语句将“思考”嵌入代码
现在让我们将条件(if)框架放入大脑中。
条件是一种“这样做,那样做”的思考结构。
4-1. 区分偶数/奇数
1.upto(10) do |n|
if n.even?
puts "#{n}是偶数"
else
puts "#{n}是奇数"
end
end
n.even?:如果n是偶数,则为true,否则为falseif ... else ... end:根据条件执行不同的代码#{n}:将变量插入到字符串中
输出示例:
1是奇数
2是偶数
3是奇数
...
10是偶数
在这里,大脑学到了这些。
“啊,代码可以做出判断。”
“可以用规则和条件来表达所有情况。”
大脑框架
框架:“根据条件分叉的分支结构”
可视化:就像树枝一样,从上到下分叉成两个分支的图像
提取:练习更改
even?为其他条件。
练习 4-1. 处理心情分支(?)
任务 D
尝试制作以下代码,并将句子改成你自己的风格。
1.upto(5) do |score|
if score >= 4
puts "心情分数#{score}:今天心情最好!"
else
puts "心情分数#{score}:但今天也能做到。"
end
end
额外挑战:
将分数范围扩展到
1.upto(10)根据
score值分为三个等级- 大于等于8:“生活像吃饭一样简单”
- 4~7:“虽然平凡但有意义”
- 3或更少:“需要再喝一杯咖啡”
5阶段: 尝试制作一个非常小的“迷你程序”
现在让我们将学到的东西(输出、重复、条件)结合起来
制作一个小程序。
主题:
“记录我每天学习的时间,
并告诉我当天的总学习时间的程序。”
5-1. 一天学习时间累加器
study_times = [30, 45, 60, 20] # 分钟:四次学习
total = 0
study_times.each do |minutes|
total = total + minutes
end
puts "今天学习时间:#{total}分钟"
if total >= 120
puts "了不起!今天真的很努力"
elsif total >= 60
puts "好的,这个速度足以成长"
else
puts "有点遗憾,但起步在哪里。明天再加油"
end
代码解释
study_times:将今天学习时间存储为数组total = 0:存储总和的变量each do |minutes|:从数组中逐个取出使用minutestotal = total + minutes:累加最后的
if~elsif~else:根据总学习时间输出不同消息
大脑框架
框架:“数据(数组)+ 重复(each)+ 条件(if)= 小系统”
可视化:就像四个时间值通过管道进入
total盒子的感觉提取:更改数组内容,更改基准时间,更改消息。
练习 5-1. 制作自己的学习·运动·工作记录器
任务 E
将
study_times更改为运动时间exercise_times = [10, 15, 20] # 三次锻炼将
if条件根据运动标准更改为
- 超过60分钟:“今天逃离新手模式”
- 超过30分钟:“保持良好的日常习惯”
- 其他:“即使躺下也站起来了。完全有意义”
- 完全更换为全新主题
- “今天制作YouTube的时间”
- “今天阅读书籍的时间”
- “与孩子一起玩耍的时间”
6阶段: “这就是Ruby on Rails的基础”
现在我们所做的
实际上在Rails中会这样应用:
数组→ 从数据库中获取的帖子列表(Post.all)each循环 → 在页面上重复输出帖子标题if条件 → 如果已登录,则显示按钮,否则隐藏字符串输出 → HTML文本渲染
我们刚刚创建的这些代码片段
稍微扩展一下就会变成实际的网络服务页面。
@posts.each do |post|
if post.published?
puts post.title
end
end
现在只是在控制台输出,
稍微扩展一下就会成为真正的网络服务页面。
最后: 今天,你已经尝试了“编程的第一滋味”
如果你跟随到这里,
你已经在大脑中建立了这样的框架。
命令(输出)
重复(times、upto、each)
模式(画星星)
条件(if)
数据结构(数组)
小逻辑(学习时间累加器)
这不仅仅是学习几个语法。
用Park Moon-ho的话来说,
“你的大脑已经建立了新的结构性思维回路。”