コンピューター、話してみてください

ルビー コーディング 初心者 を ため プログラミング 学習 ガイド。 'コンピューター よ 言葉 ちょっと 話してみる', '星 つける', 'ルビー オンライン 実行 ツール' など 多様な 主題 を 扱う。

밤치 68

0. 準備: コードをどこで実行するか?

ルビーをインストールしてもよく、オンライン実行環境("ruby online repl"で検索)で実行してもよい。

重要なのは 「自分でタイプして実行する」 ことだけだ。

1つのルールだけ覚えておく

  • コピー&ペーストではなく、必ず自分でタイプしてみること

  • エラーが出ても大丈夫だ。それが脳に最も強く刻まれる瞬間だ。


1段階: “コンピュータよ、話してみて” – 最小のフレームを捉える

1-1. 最初のコード: Hello, Ruby

puts "Hello, Ruby"
  • puts : “print line”の感じ。コンソールに1行出力する意味

  • "Hello, Ruby" : 単なる文字列(文字の塊)

この1行は実際にはこのような文だ。

“コンピュータよ、この文字を画面に1行表示して。”

脳フレーム(朴文鎬式)

  • フレーム: “コードは命令文だ” → 1行が1つの考え。

  • 視覚化: putsのように想像してもよい。→ コンピュータの口。

  • 引き出し: 文字だけを変えながら繰り返し入力。


実習 1-1. 自分だけの最初の文を作ってみる

以下のように、好きな文を3行出力してみよ:

puts "코딩 너무 겁나는데…"
puts "일단 해보자."
puts "생각보다 별 거 아니네?"

課題 A

  1. 上記の3行を 自分の文に変えてみる

  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.times3.times7.timesに変えて実行してみる

  2. 文を変えて、

- “나는 포기 안 한다”

- “조금씩이라도 매일 한다”  
    同じ文を最低3つ作って、それぞれ何度も出力してみる

3段階: パターンが見える瞬間 – 星を描いて ‘視覚化回路’をオンにする

さあ、本当の 脳がパターンを視覚化する瞬間に入ってみよう。

すぐに 星を描く() だ。

3-1. 1行の星

puts "*"

これは星1つ。

3-2. 縦に5つの星

5.times do
  puts "*"
end

画面に:

*
*
*
*
*

このように表示される。

ここで脳はこのような感覚を得る。

“あ、これは‘縦に5つの星’というパターンなんだ。”


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는 짝수입니다

ここで脳はこれらを学ぶ。

“あ、コードは判断できるんだ。”

“すべての状況を規則と条件で表現できるんだね?”

脳フレーム

  • フレーム: “条件によって分かれる枝構造”

  • 視覚化: 木の枝のように上から下に2つに分かれる図

  • 引き出し: even?を他の条件に変えながら練習


実習 4-1. 気分を分岐処理(?)する

課題 D

以下のコードを自分で作成し、文を自分のスタイルに変えてみよ。

1.upto(5) do |score|
  if score >= 4
    puts "기분 점수 #{score}: 오늘은 기분 최고!"
  else
    puts "기분 점수 #{score}: 그래도 오늘도 해낸다."
  end
end

追加チャレンジ:

  • スコア範囲を1.upto(10)に拡張してみる

  • scoreの値に応じて3段階に分ける

    • 8以上: “人生の日食モード”
    • 4~7: “普通だが意味がある”
    • 3以下: “コーヒー1杯もう一つ必要”

5段階: とても小さな “ミニプログラム” を作ってみる

さあ、これまで学んだこと(出力、繰り返し、条件)を組み合わせて

小さなプログラム1つを作ってみよう。

テーマ:

“毎日の勉強時間を記録し、

その日の総勉強時間を教えてくれるプログラム”

5-1. 1日の勉強時間合計計算機

study_times = [30, 45, 60, 20]  # 分単位: 4回勉強

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| : 配列から1つずつ取り出して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段階: “これが全てルビーオンレイルズの基礎だ”

今やったことは

実際にはレイルズでこのように応用される。

  • 配列 → DBから取得した記事リスト(Post.all

  • each繰り返し → 記事リストを画面にタイトルを繰り返し出力

  • if条件 → ログインしていればボタンを表示、そうでなければ非表示

  • 文字列出力 → HTMLテキストのレンダリング

今作ったこれらのコード断片は

後でレイルズでこのように変わる:

@posts.each do |post|
  if post.published?
    puts post.title
  end
end

今はコンソールに出力だが、

少し拡張すれば 実際のウェブサービス画面になる。


最後: 今日、あなたは既に “コーディングの初めの味” を見た

ここまでやったなら、

あなたは既に脳の中にこのようなフレームを植えた。

  • 命令(出力)

  • 繰り返し(times, upto, each)

  • パターン(星を描く)

  • 条件(if)

  • データ構造(配列)

  • 小さなロジック(勉強時間合計計算機)

これは ただ文法をいくつか覚えたレベルではない。

朴文鎬式に言えば、

“あなたの脳に新しい構造的思考回路が生成された。”