「日本Rubyのチュートリアル α版」に参加してきました! #tutorialrb

日本Rubyの会の「日本Rubyチュートリアル α版」
に参加してきました。

@kakutani さんと @snoozer05 さん、で企画されたらしく、
Rubyの教育などをお仕事にされている @yuumi3 さんがアドバイザー(?)という豪華さ!!

日本Rubyのチュートリアル - α版 - Ruby-no-Kai | Doorkeeper

会のページにスケジュールが載っていて、
「コーディングするんだな…!」という覚悟をして
私できるのかな、、という不安とともに
どきどきしながら向かいました。

あと選考があって10名しか参加できなかったので、
それもちょっとプレッシャーではあったのですが、
せっかくなので楽しんで、いっぱいフィードバックしたいと思い参加しました。

やったこと

会の主旨と自己紹介

時間が短かったので簡単に。
札幌で行っている Ruby の勉強会(?)を東京でも、という @snoozer05 さんのお話や、
Ruby のコードをもっともっと書く場を作りたいという @kakutani さんのお話など。

ウォーミングアップ

特に何も説明はなく、
ランダムに「ぐー」「ちょき」「ぱー」がでるプログラムを書きました。
ちょうど、先月読んだ本にそんなコードがあったなぁ…と思いだしながら書きました。
たどたどしく。

みんなが書いた後、いろんな書き方を解説してくださって、
とくに印象的だったのが「これが Ruby らしい書き方!」という表現。

私はまだまだそういうのを実感したことがないので、
そういう話を教えてもらえると、ふむふむ!となるし、
やっぱりこういうのはあんまり初心者向けの本ではわからない…

で、実際どんなふうだったかというと、

私が書いた回答

#encoding: utf-8

janken = rand(2)
if janken == 0 
  puts "ぐー"
elsif janken == 1
  puts "ちょき"
else janken == 2
  puts "ぱー"

はい恥ずかしい。

#encoding: utf-8

janken = rand(2)
case janken
when 0
  puts "ぐー"
when 1
  puts "ちょき"
when 2
  puts "ぱー"
end

ここからは先生の「Ruby らしい回答」

#encoding: utf-8

j = %w[ぐー ちょき ぱー]
puts j[rand(j.size)]
#coding: utf-8

puts %w[ぱー ちょき ぐー].shuffle.first
#coding: utf-8

puts %w[ぱー ちょき ぐー].sample

こういう回答にたどり着くには、リファレンスを見るのがいいという話。

短距離走

今度は、「お会計(合計金額)を入力すると、お釣りを教えてくれて、しかもお金の種類も教えてくれるプログラム」

これはけっこうみんな時間がかかって、
私も最初は「とにかく動く」ものを書いて、
そのあと修正して完成させました。

ホントは短距離走をもう一本と、中距離走が一本用意されていたみたいなんだけど、
予定通り進まなくて終了。
問題だけもらったので、後日挑戦しようと思います。

終えてみての感想

私は今まで本を買って写経したり、
ブログを見てコピペして動かしてみたり、というくらいしかしてこなかったのですが、
やっぱりそうすると「書けた気になる」ことはできても、
本当に力がついているかというと、なんとも疑わしい。

いざこういう「問題」が出されると初めは手が動かないし、
「本で見たことある気がする〜」といいながら頭の中がぐるぐる。

でも身なり見栄えは気にせず、とにかく動くコードを書いてみると、
だんだん冷静になってきて、
「もっとここは工夫できるのではないか…」
ともう一歩踏み込んで考えられる。
写経したコードを思い出したりする。

それで書き直してまた動いたのをみると、
本当に「できた!!」という感動が得られて。

だからこの日私が感じたのは、
「写経しててよかった」ということと、
「イチから自分で書けてよかった」ということ。

写経もすごくいいし、
自分で一生懸命考えて書くのも大事。
どっちかだけじゃなくて、両方大事で、両方やったほうがいいと思った。

自分自身についての感想はそんな感じで、
チュートリアルの会自体についてはまた主催者のみなさんへフィードバックさせていただきます。


(また)「GC

実はこの日、大江戸Ruby会議03明けで、
私のなかで「GC」がすごくもやもやしてて、
それをつぶやいたら @kakutani さんが拾ってくださって、
解説してくださいました!!

解説を聞いていたらだんだん、どうして会場があんなに大爆笑していたのかとかがわかってきて、
それと、 @nari3 さんてマニアックですごい人だ…!!とわかりました。

うう、もう一度土曜日に戻ってあの笹田さん→中村さんの話を聞きたい……!!!!!


それと、なんとなく漠然とコミッタの方々は何をしているんだろう…?
という疑問があったのですが、
@nari3 はGC面にコミットしているということで(すよね?)
Rubyコミッタ」とひとくちに言っても、いろんな関わり方があるんだということを知りました。


というわけで、大江戸Ruby会議03から日本Rubyチュートリアルα版と、
Rubyめいた3日間で、すっかり頭は飽和状態。
やっと落ち着いてきました。


さて次は4/6(土)の「万葉.rb」にお邪魔する予定です!