计算机,说点什么

红宝石编程初学者的编程学习指南。处理各种主题,如“让计算机说话”,“星星绘制”,“红宝石在线执行器”等。

밤치 67

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

  1. 将上述三行改成你自己的句子

  2. 尝试输出至少5行

  3. 使用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

  1. 10.times更改为3.times7.times,然后尝试执行

  2. 更改句子为

- “我不会放弃”

- “每天至少一点点”

创作至少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. 1.upto(5)更改为1.upto(10),然后尝试执行

  2. puts "*" * n更改为

    puts "#" * n
    

    也可以使用表情符号!

  3. 尝试自己制作以下形式:

    #
    ##
    ###
    ####
    #####
    

    → 提示:使用"#"代替"*"


4阶段: 通过条件语句将“思考”嵌入代码

现在让我们将条件(if)框架放入大脑中。

条件是一种“这样做,那样做”的思考结构。

4-1. 区分偶数/奇数

1.upto(10) do |n|
  if n.even?
    puts "#{n}是偶数"
  else
    puts "#{n}是奇数"
  end
end
  • n.even?:如果n是偶数,则为true,否则为false

  • if ... 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|:从数组中逐个取出使用minutes

  • total = total + minutes:累加

  • 最后的if ~ elsif ~ else:根据总学习时间输出不同消息

大脑框架

  • 框架:“数据(数组)+ 重复(each)+ 条件(if)= 小系统”

  • 可视化:就像四个时间值通过管道进入total盒子的感觉

  • 提取:更改数组内容,更改基准时间,更改消息。


练习 5-1. 制作自己的学习·运动·工作记录器

任务 E

  1. study_times更改为运动时间

    exercise_times = [10, 15, 20]  # 三次锻炼
    
  2. if条件根据运动标准更改为

- 超过60分钟:“今天逃离新手模式”

- 超过30分钟:“保持良好的日常习惯”

- 其他:“即使躺下也站起来了。完全有意义”
  1. 完全更换为全新主题
- “今天制作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的话来说,

“你的大脑已经建立了新的结构性思维回路。”