Hatena::ブログ(Diary)

5.1さらうどん Twitter

2011/09/12(Mon)

意識の高い学生(笑)がはてなインターンシップに参加すべき5つの理由

| 06:44 |

この度、8月18日から9月9日の3週間、「はてなサマーインターン2011」に参加してきました

f:id:gigi-net:20110818094701j:image

求人情報:募集要項:インターンシップ - はてな

はてなサマーインターン2011募集開始! - Hatena::Engineering

この3週間、目新しいことだらけで、周りを振り返る余裕のないほど突っ走り続けてました。

今回、インターンシップに参加させてもらって、非常に素晴らしい体験ができ、何よりも強い思いは、他の学生プログラマみなさんにもぜひ参加を検討して頂きたいということです。


熱も冷めやらない中、自分の得てきた体験を世に伝え、皆にはてなのインターンシップに興味を持ってもらいたいという使命感に駆られています。

というわけで、次年度以降に参加を希望される学生さんへ向けて、はてなインターンシップのカリキュラムや、参加して良かった点などを大きく5つ紹介させて頂きます。


その1:Webアプリケーションを開発できる技術が半強制的に身につく

はてなのインターンは大きく二つの課程にわかれています。

前半課程の1週間は、社員さんによる講義課程で、はてなの内部で利用されているフレームワークや技術について学びます。


午前中2時間の講義の後、講義に関連した課題が課され、次の日の朝までに提出するといった感じです。

提出したソースコードは即日採点され、講評してもらえます。

そればかりではなく、各課題には合格点が定められていて、合格点に満たなかった場合は再提出、

さらに1週間を通して、一定の水準に達していないと判断された場合、後半課程に進めずに強制送還させられてしまいます。厳しい!

f:id:gigi-net:20110912054639j:image

おおまかな講義内容は

  • 環境構築とPerlの基礎
  • ORMによるモデルの実装
  • MVCフレームワークによるビューとコントローラの実装
  • JavaScriptによるクライアントサイドの実装

と、このように順を踏んでいます。

毎回の課題は、前日までのコードを拡張していく流れになっており、4日目の講義までで、一通りのWebサービスが作れるまでの流れを習得できます。


メンタル面がスペランカーな僕は、初出社の前日に他所のレポートなどを読み「毎日明け方4時までかかった」「採点が厳しくて前日までの修正で必死」「洗濯に行く暇すらなかった」との記述を目にし、ついていけるのかと戦々恐々としており、軽くホームシックにかかりかけました。まだ1日も出社してないのにw

このインターンが決まるまで、Perlの経験が全くなかったというのも非常に不安でした。


蓋を開けてみると、幸いにもRuby on RailsやDjangoなど、他のWebアプリケーションフレームワークでの開発経験があったり、

JavaScriptにもある程度の経験があったため、どの講義も及第点を下回ることなく通過できました。

肝心なPerlも、他にも様々な言語に触れていた経験に助けられ、意外にすんなりと習得できました。


だからといって、毎日の課題が定時までに終わったかというとそうではありません。インターンの案内にある定時19時は飾りですwだまされてはいけません。

各課題には追加要素による加点が設定されていて、+αの実装に非常に時間がかかりました。

毎日の課題で、他のインターン生とお互いの追加機能について自慢し合い、自分も負けてられないと切磋琢磨できたので良かったです。

さらに、毎回の提出物は他のインターン生も自由に見ることができるため、恥ずかしい物は出したくないと完成度を上げるのに必死でした。

あれも付けたい、これも実装したいともがいていると、いつの間に深夜。気付けばもう明け方!



どちらかというと、「毎日日付が変わるまで課題がかかる」というより、「完成度を上げるのが楽しくて気付いたら日付が変わっていた」という方が近かったです。

課題が終わらせられなくて強制的に残るハメになる、というよりも、皆、自発的に少しでも完成度を上げようと遅くまで取り組んでいたのが印象的でした。

毎日日付が変わるまでオフィスを開けてご指導頂いたメンターの方々、特に僕の担当をしてくださったid:hakobe932さんには感謝で一杯です。



そして5日目の講義ではワークショップが行われました。はてなでの企画会議の様子を再現しながら、インターン生同士でブレーンストーミングを行い、それぞれ「ぼくのかんがえたさいきょうのブログサービス」を考えるといった内容です。

f:id:gigi-net:20110824144114j:image

考えたアイディアは、他のインターン生や社長のid:jkondoから直々にコメントをもらえ、それを元にそれぞれ独自のアイディアをブラッシュアップしていきます。



5日目、6日目は、1~4日目までに構築したWebアプリケーションをベースに5日目のワークショップで沸いたインスピレーションによって味付けし、参加者各々自由にブログサービスを構築しました。

7日目には1週間で構築したWebサービスを社員全員の前でプレゼン。その直後、合否判定が成されます。


僕が発表したのは、実績システムを実装したブログシステムです。


他の人の全く新しいアイディアに比べ、Web上の実績はかなりいろんなところで既に実装されている気がするので、着想は微妙だったなぁと。

結果的には、各機能の実装量と完成度について一定の評価を頂けました。


個人的にはid:pokutunaさんのプレゼン、id:hrk623さんの着想が非常に好きでした。


例年は、ワークショップは行われず、1週間課題でびっちりなようですが、今年は、最終的に自分の好きな裁量で自由にやらせてもらえたり、1週間、ストーリー立てて一通りのことが学べるので、非常に良いカリキュラムでしたね。


このような流れで、有無を言わせず企画から実装、完成後のプレゼンまで、Webアプリケーションを構築する一連の流れが習得できます。それだけでも非常に価値のあるインターンです。

その2:自由な社風や独自の職場に触れられる

f:id:gigi-net:20110824135605j:image

後半課程の話に入る前に、社内の雰囲気についてお伝えします。

社内での社員さん同士の仲はスゴく良いです。社内では基本的に本名では呼ばれず、id名で呼び合うことが多いです。

僕もぎぎねっとくんと呼ばれ、最終的に「君にも本名あるんだ」と言われる始末w

仕事中は皆、仕事に打ち込むも、仕事が終わるやいなや、運動したり踊ったり、お酒を飲んだりアニメ鑑賞をしたり。

他のIT企業をいくつか見てきたものの、ここまで良い意味でフリーダムな会社は見たことがない。

その自由さがはてなという会社の魅力に繋がっているのだと感じました。


はてなでの生活を語る上で欠かすことができないのは、オフィスランチとフリードリンクの存在。

はてなでは毎日、id:macanaiの皆様によりオフィスランチが提供されます。

f:id:gigi-net:20110819130939j:image

毎日おいしい作りたての料理が食べれるし、おかわり自由!毎日おいしかった!

社員さんや他のインターン生みんなで同じ時間に食べるので、社内での情報交換や雑談などは主にこの時間に行われます。

お昼休みの交流もまた、お昼の楽しみの一つでした。


お昼ご飯の他にも、社内ではドリンクやお菓子、軽食類を業務中、好きに食べることができます。

ステキな環境で1日中コーディングができる。プログラマにとってこれに勝る物はありませんね。


その3:社内での様々なイベントに参加できる

f:id:gigi-net:20110909191704j:image

期間中、社内では多くのイベントが開催されました。


社内では、隔週金曜日にTGIFと呼ばれる社内パーティーがあります。

ここでは、直近2週間の間にリリースされたプロダクトや、成果物について投票、表彰を行っています。

新しいプロダクトについて、社内でのリリースを行って、フィードバックを集め、表彰したり、情報交換や振り返りをする機会があるのは良い取り組みだなぁ。

他にも、「はてなプログラミングコンテスト」が開催されました。

f:id:gigi-net:20110912054640j:image

ゲームの内容は「スネーク」ゲームを解くAIを開発すること。

Rubyで実装されたゲームが配布され、敵キャラに遭遇しないように如何にスコアが稼げるかを競い合うコンテスト。

時間が1時間半と短かったため、探索アルゴリズムでAIを書いてみたものの、結局完成せず、一度もコミットできませんでした。悔しい!

上位の方は、さぞかし素晴らしいAIを実装しているのだろうと思いきや、結果としては入賞者3名全員が手動探索

「プログラミングコンテスト」ではなく、「どこでコードを書くのを諦めるか判断するコンテスト」だったようです。会場大爆笑。



先週には「はてな技術勉強会 #4」が開かれました。

社外からも参加者が見えていて、当日の模様はUstreamでも公開されているのでぜひ。

はてな技術勉強会 #4 開催のお知らせ - Hatena::Engineering

はてな技術勉強会 #4 : ATND

今回、LTの機会を設けて頂き、僕が札幌で活動しているサークルについてお話しさせて頂きました。

もっと笑いを取りに行きたかったのですが、あまりウケを取れずに残念。

とは言った物の、懇親会で社外の方含め、興味を持ってくださった方とお話ししたり、id:jkondoにも面談の際にいろいろ聞いて貰えたり、興味を持って頂けたようで、結果的には発表して非常に良かったです!


他にも飲み会があったり、歓迎会があったり、はてなでの毎日は非常に充実していました。


その4:仲間や人脈が広がる

f:id:gigi-net:20110902230233j:image

はてなでの経験で得られた大きな物は「人とのつながり」でした。

他のインターン生は、全国から集まってきた精鋭。しかも歳や趣味嗜好も近いため、すぐに仲良くなれます。

遠方からの参加者は、宿も同室で、3週間にわたってほぼ寝食を共にするので、最終的には仲間意識が芽生えます。

最終日にはみんなで観光に行くぐらいの仲に!

今回、インターン生の中では僕が最年少でしたが、年の差は全く感じず、教えたり教えられたりと皆対等な感じでした。


インターンへの参加者は、全国から集まった指折りの変人揃いのため、皆、変わった趣味を持っていたり、変わった研究をしていたり。

社員さんもユーモアのある方ばかり。


また、ペアプロなどを通して、社員さんやほかの参加者から技術を盗めます。

使っているソフトウェアやエディタ、作業環境なんかは十人十色で、全員がなんらかのこだわりを持っているのがおもしろい。

そして、他の参加者のレベルの高さにただただ驚かされてばかりでした。

f:id:gigi-net:20110909133925j:image

いろんな人と話したり、知識共有ができたりと、講義以外にもさまざまなことが学べたのが大きいです。


その5:自分の作ったサービスをユーザーにリリースできる

f:id:yz3:20110909111352j:image:w600

ここに来て、後半課程のお話をさせていただきます。

無事に前半の課程をくぐり抜けた参加者は、後半、各サービスの開発へ移れます。

インターン生は、8月29日から9月9日までの2週間、希望するサービスの新機能を開発します。


今年は、10人が二人一組となって「うごメモはてな」「人力検索はてな」「はてなダイアリー」が1チームずつ。「はてなブックマーク」が2チームの計5チームにそれぞれ配属されました。

僕は、どのチームに参加するか非常に迷ったあげく、7年にわたって使い続けている「はてなダイアリー」チームへ参加させて頂くことになりました。

本心も言うと、どのチームも参加してみたかったので、あと3回ははてなインターンシップに参加したい勢いです。

特に「ブックマーク」や「うごメモ」ははてなならではのサービスなので、そちらの方にも携わってみたかった!


2週間の開発の末、最終日に、それぞれのチームが開発した内容についてプレゼンし、投票によって順位を決定、その後即日リリースをするという流れです。

ユーザー数が数十万、数百万人規模のプロダクトを弄れたり、自分で作ったサービスが即日リリースされて、何千人、何万人の人に使って貰えるというのははてなインターンシップの醍醐味ですね。


今回、インターン生によって開発されたもので、既に公式リリースが出ているのは以下の通り

人力検索はてなのFacebookアプリをリリースしました - 人力検索はてなの日記 - 機能変更、お知らせなど

チェックしたブックマーク機能を追加しました - はてなブックマーク日記 - 機能変更、お知らせなど

ダイアリーチームの開発の内容については、リリース前の内容も多いため、詳しくご紹介することができませんが、はてなダイアリーにとある新機能を実装しました。

今回のダイアリーチームは、配属時点でインターン期間中にリリースされないことが決定していたので、即日リリースには至らなかったのが少し残念でしたが、そのうちリリースされると思うので、しばしの間お待ちください。


社員さんによる投票の結果、僕id:gigi-netid:uasiさんの我々ダイアリーチームは見事に最優秀賞。純粋に嬉しいです。

f:id:yz3:20110909130505j:image:w600


正直、プレゼンもあまり手応えを感じず、まさか入賞するとは思ってもみなかったので、びっくりでした。

その後、正式なリリースはされなかった物の、社内リリースで社員さんに使って頂いたり、フィードバックを貰えたり、開発して良かったなぁと。

f:id:gigi-net:20110909130103j:image


勝因としては、前半課程のブログワークショップで出たアイディアを、そのまま良いとこ取りできたところが優勝に繋がったのだと思います。


今回の企画について提案して頂いたダイアリーチームディレクタのid:onishiさん、コーディングについて添削やご指導をして頂いたid:cho45さん。アイコンなどのグラフィックデザインなどを担当してくださったid:uedayさんの3名には大変お世話になりました。この場を借りて深くお礼申し上げます。本当に良い経験ができました。

終わりに

Web上では「意識の高い学生(笑)」と揶揄するような風潮がありますが、僕はあんまり好きじゃないなぁ、と。

斜に構えている暇があるなら、空回りでもがむしゃらに突っ走った方が楽しいし、そういう人を見ている方が僕は好きです。

僕自身も、後ろ指を指されながらも意識を高めていきたいなぁ。


はてなインターンに参加して、「IT業界で働くこと」や「コードを書くこと」、「何かを創造すること」へ対する意識は間違いなく高まりました。

今は、開発へのモチベーションが上がりっぱなしです。


何度も書きますが、この3週間の経験は素晴らしい物でした。

はてなのインターンは、学生であれば誰にでも参加できるチャンスがあります!

少しでも興味のある方は、来年の募集時にぜひとも門を叩いてみてください


そして、インターンに携わった全ての方々、社員の皆様にはこの場を借りてお礼申し上げます。ありがとうございました!

他のインターン参加者のエントリ

まとめてみました。随時追加していきます。

id:kimikimi714

はてなエンジニアインターンに女子で初めて参加したよ!その1 - 失敗は成功の元

id:t-kashima

はてなインターンが終わって始まった - 徹夜族

id:uasi

はてなインターンに意識の低い学生が参加して社長にTシャツ売りつけた話 - Yarukidenized:ヤルキデナイズド

id:y_uuki

Web歴半年の学生がはてなのインターンに参加してきた話 ~はてなインターン2011 - ゆううきブログ

id:hrk623

インターン生に、はてなはすごいと思わせたはてなの何か。 - カナダでマ的なハイロッキー

id:uenop

はてなインターン2011に参加しました。 - uenopの日記

id:pokutuna

はてなインターン2011リーダーがレポートを書きました - 屋根さえあれば

トラックバック - http://d.hatena.ne.jp/gigi-net/20110912/1315777456