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

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

밤치 229

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)

  • データ構造(配列)

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

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

朴文鎬式に言えば、

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

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

Get notified of new posts

We'll email you when Bamchi Blog publishes new content.

Your email will only be used for new post notifications.