懺悔しつつ、はてなインターン前半を振り返る

インターン全体の振り返り記事を書きました。
今年もはてなインターンが精神と時の部屋状態だった件




(追記 2010-08-17 0:30)
お詫びが一つ増えました。
以下の「株式会社はてなについて」という項目を一旦公開したは良いものの、いざ公開してみると不安になってきたのでこっそりコメントアウトしてました。
が、先程id:jkondo社長に

えー、面白かったのに

と言われたのと、id:hatenacinnamon会長が威勢よくGoサインをくれた(たぶん)ので、再びコメントインすることにしました。ご迷惑をおかけしました。
(追記ここまで)


8月2日から始まったはてなインターン2010も前半が終わったので一度振り返ろうかと思います。
というのも、当インターンは前半2週間の講義&課題バリバリ期間と、後半2週間のサービス開発ガンガン期間の二段構成になっており、この週末がちょうど折り返し地点に相当していて区切りがいいのです。

株式会社はてなについて

まず最初に僕は謝らなければならないことがあります。
僕は京都に住んでいることもあってはてなでアルバイトをしている友人が何人かいたり、他にもそれなりにネットサーフィンをするので、色々な方面から「はてながいかに素晴らしいか」を伝え聞いてきました。
にも関わらず、僕は京都に来てからの4年間意図的に会社としてのはてなに関わるまいとしてきました。それは単に評判が良すぎて胡散臭い、という僕の天邪鬼的な性格によるもので、ある意味食わず嫌いというか、とにかくしょうもない理由からだったのですが、僕は今そのことを大変後悔しています。
つまり、一言で言えば、はてなの環境が想像以上に良くてワロタってことです。
京大の学部生に「プログラミングスキルを磨くにはどうすればいいか」と聞かれたら、今後は心を入れ替えて

ICPCに入れ込むか、はてなでバイトしろ

と答えることにします。当然インターンもオススメ。
ほんと今まで生意気な態度を(影でひっそり)とっててすみませんでした。

1日の流れ

さて、簡単な懺悔が終わったところでインターン前半についてつらつらと書いていきます。
インターン前半の1日の流れはだいたいこんな感じでした:

10:00〜10:30 東京オフィスと遠隔通信しながら朝会
10:30〜12:30 面白い講義
13:00〜14:00 ほっぺたを落としながら昼食
14:00〜19:00 黙々と課題に取り組む
19:00〜22:30 定時を過ぎても黙々と課題に取り組む
23:00〜 家に帰っても黙々と課題に取り組む
朝会|10:00〜10:30

はてなの一日は東京と京都を遠隔で繋いだ朝会から始まります。ここで、最近のサービスの開発状況とか周知事項などの共有が行われるのですが、全体的に和やかな雰囲気で楽しく一日の仕事が始められそうなそんな予感を感じさせる儀式(?)といった印象です。

講義|10:30〜12:30

午前ははてな社員による日替わりの講義。公開されてる資料は以下の通り

資料が公開された日以外にも毎日講義はありましたが、はてなの社内でしか通用しない話とか、きちんと講義内容を守らなければ逮捕されてしまうような話とかは公開されてないようです。特にはてなのサービス開発秘話的な小話は現場のリアルな姿としてとても興味深かったのですが、僕の日記には書けないので興味のある学生は来年インターンに参加するといいと思います。
講義内容は、Webアプリケーションの話からデータ構造などの話までCSの今日的な話題を手広くカバーしていているだけでなく、毎日講師と内容が次々に変わっていくので常に新鮮な気持ちで講義に取り組むことができました。

昼食|13:00〜14:00

美味しすぎて泣けます。いかに自分が普段貧相なものしか口にしていないかを思い知らされるようです。インターン中の様子を記念に残そうと思ってデジカメを持ち込んでいるのですが、今のところ毎日の料理の写真しか撮ってないです。
以前は月水金の3日だけだった様ですが、なんと最近は月火水金の週4日になっていて、本当に幸せです。
大企業の食堂の様に料理を選択することはできないのですが、問答無用で出された物を食べる*1ので個人的な嗜好による食事の偏りが入り込む隙間が無くなって、その結果健康になります。インターン始まってから後述する課題が終わらなくて睡眠時間が激減していたのにも関わらず、なんとかやってこれた最大の要因はこの食事にあったと言っても過言ではありません。

課題|14:00〜

ここからインターン生は午前中の講義で出された課題に取り掛かり始めます。提出期限は明朝10時
インターン生には2人に1人TAがついて課題に関する質問その他全般に応えてくれます。僕のTAの方々にはPerlのこととか色々教えていただいて本当に感謝です。
提出物は全て10点満点で評価されます。6点が合格ラインで、これを超えないとインターンの後半に進めなくなる可能性もあるので緊張感を持って取り組めます。
課題は内容の充実もさることながら、何といっても担当講師による丁寧な添削とコメントによるフィードバックが素晴らしかったです。冗談じゃなく、コードの1行1行にいたるまで丁寧に読んで添削をしてくださるので、コメントの質がとても高いです。
指摘されるのはPerlの作法的な話から、コードの拡張性を踏まえた改善案、MVCの分離に基づいた指摘、クラスの継承関係の是非、などなど。

あなたが意図した通りに動くコードになっていないように思われます

という指摘を他のインターン生が受けているのを見た時は度肝を抜かれました。逆に、こちらが工夫した点なども(当然コメントには書いているのですが)見逃さない辺りは流石と言わざるを得ません。
コードを書いて、誰かに丁寧に添削される、そしてその結果を踏まえてリファクタリングし、再提出する。この反復運動の中で次第に次第にコードが洗練されていくのは快感だし、また自分の成長を実感できる瞬間でもあります。当然、再提出すればすかさず改善された点を発見され「ここが良くなった」と指摘される。素晴らしい!!

後半に向けて

長々とはてなインターンの前半を振り返ってきました。
明日からは後半戦が本格的にスタートし、実際のプロダクトに組み込まれるコードを書くことになります。
僕がはてなのインターンに行こうと思ったのは、前半の講義よりむしろ後半の内容に魅力を感じたからで、日本有数のユーザ数を誇るサービスで実際に使われるコードを書けるなんて素敵!と思ったのでした。
前半の内容からして既に素晴らしいかったのですが、勝負はこれから。残りの日々も全力疾走で走り抜けたいと思います。

*1:当然全て美味しいから問題無い