モダンプログラマまで何光年?

Webアプリ制作周辺を漂っています。はやくHackerになりたい・・・

Ruby合宿2012春に参加してきた!

4泊5日のRuby合宿に行ってきました。

楽しかったことは

  • Gitでソース管理できた
  • チーム作業楽しかった

今後の課題としては

  • もっとGitを覚えたい!

初日

Matzの講演後、合宿所に移動。
以下講演で気になった点メモ

  • バブルはじけて仕事減ってサポートしかできなくて、暇だったので作ったのがRuby
  • 気分の良いプログラミング=簡潔・万能感
  • 万能感こそがプログラミングのもてる力だし、プログラミングの素晴らしいところ。社会を変える最後の最後はソフトウェアを書ける人

アイデアも持っていれば更に強い!

  • ソフトウェアを書くことで社会を変えることができる


とりあえず初日は各自「たのしいRuby」読みながら自習ということに。
あと、ソースコードの管理どーしよ?って話が出て、(運営側でSVNは建ててくれるらしい)
いくつか選択肢はあったけどずっと使ってみたかったGitを採用
私のGithubアカウントでリポジトリを作成し、全員commitできるように・・・
これが結構大変だった!

用意された環境がWindowsだったので、「msysgit」をインストール。
GUIコマンドから鍵の生成ができるので、これを利用したわけだが、なぜか接続エラー発生。
付属の「Gitbash」というCUIアプリから普通に
$ ssh-keygen
するとうまくいきました。
これを全員の端末で作業していったんだけど、後から思えばチーム用の鍵を一組用意すればよかったですね。
(公開鍵をGithub側で登録し、秘密鍵をUSBメモリとかで共有する)

そんなこんなで初日はGitの環境を整えることに大半の時間を使っちゃったのがちょっともったいなかった感じ。
次はもっとうまくやれるかなーと。

2日目

この日は朝からRuby講習。
実質講習はこの日だけという過密スケジュール。
午前中3時間でざっくりRubyでのプログラムの書き方とオブジェクト指向について。
午後4時間でDXRubyライブラリを使ったゲームプログラミングのチュートリアルを受けました。
ほんでもってホワイトボードを前にして各自がアイデアを出しながらどんなゲーム作るかネタ出し。
だんだんと方向性が決まっていって、さらにそれを具体的にしていく。
我々5班はデスマーチで失った記憶を取り戻すために「R」「U」「B」「Y」の4文字(記憶のカケラ)を集めるシューティングゲームを作ることに決定。
(この辺のアイデア出しから方向性が決まっていく過程が一番おもしろかった!)
f:id:takumi_aki:20120223152416j:plain
講師のNaCLの方から「全員がPCに向かっていると、誰が何をやっていて、どのくらい進んでいるかがわからなくなる」
「いかにみんなで共有するかが大事」ということを教わりました。
(すごーく重要)

3日目、4日目

後はひたすらイメージをコードにしていく作業。
ホワイトボードに自分達のゲームは「何ができるか」「○○したらどうなる」といった動きを付箋として貼り、
f:id:takumi_aki:20120224083033j:plain

「Doing(やってる)」「Done(終わった)」「やらないこと(時間が余ったらやる)」に分けて管理してました。
f:id:takumi_aki:20120223152350j:plain

みんなそれぞれスキルも違うので、何をどう割り振るかも結構難しいと感じました。
もっと積極的に他の人の作業に首を突っ込んでいっても良かったかな〜と。
あと、ついつい自分の作業に閉じこもりがちなところがあるのを気をつけたいと思いました。
もっと「今こういうコード書いてて、ここで困ってるんだよね〜」みたいなこととか。

5日目

発表当日!
直前までソースコード掃除してましたw
(コメント消したり、不要なファイル消したり・・)

私達の作ったゲームはGithub上で公開しています。
Windows環境にRubyを入れて、DXRubyを入れれば動くはず〜
takumi-aki/rubycamp5 - GitHub

みんなゲームのレベルがとても高く、この短い期間でよくぞ・・
いろいろとびっくりでした。
ソースコード公開しないのかしら チラッ)|ω・`)

まとめ

相当詰め込み気味の合宿でしたが、それがかえって合宿!という感じで良かったのではないでしょうか。
スキルがバラバラの5人でひとつのものを作る上での試行錯誤やあれこれが一番の醍醐味かも。
自分のしたいことを簡潔にコードで表現できるとすごく楽しいですね。もっとRuby勉強したいなぁ・・・

一緒に参加したみんな、運営の方々、講師のNaCLの方々、ありがとうございました!