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
上記の3行を 自分の文に変えてみる
少なくとも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. 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.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는 짝수입니다
ここで脳はこれらを学ぶ。
“あ、コードは判断できるんだ。”
“すべての状況を規則と条件で表現できるんだね?”
脳フレーム
フレーム: “条件によって分かれる枝構造”
視覚化: 木の枝のように上から下に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
study_timesを 運動時間 に変えてみよexercise_times = [10, 15, 20] # 三回運動if条件を運動基準に変える
- 60分以上: “今日ヘルニイ脱出中”
- 30分以上: “いいルーティン維持中”
- それ以外: “それでも横になった体は起きた。十分意味がある”
- 完全に新しいトピックに変えてみる
- “今日YouTube作成時間”
- “今日本読んだ時間”
- “子供と遊んだ時間”
6段階: “これが全てルビーオンレイルズの基礎だ”
今やったことは
実際にはレイルズでこのように応用される。
配列→ DBから取得した記事リスト(Post.all)each繰り返し → 記事リストを画面にタイトルを繰り返し出力if条件 → ログインしていればボタンを表示、そうでなければ非表示文字列出力 → HTMLテキストのレンダリング
今作ったこれらのコード断片は
後でレイルズでこのように変わる:
@posts.each do |post|
if post.published?
puts post.title
end
end
今はコンソールに出力だが、
少し拡張すれば 実際のウェブサービス画面になる。
最後: 今日、あなたは既に “コーディングの初めの味” を見た
ここまでやったなら、
あなたは既に脳の中にこのようなフレームを植えた。
命令(出力)
繰り返し(times, upto, each)
パターン(星を描く)
条件(if)
データ構造(配列)
小さなロジック(勉強時間合計計算機)
これは ただ文法をいくつか覚えたレベルではない。
朴文鎬式に言えば、
“あなたの脳に新しい構造的思考回路が生成された。”