Hatena::ブログ(Diary)

ただのらくがき帳。 RSSフィード Twitter

2010-08-30

夢にまで見たはてなサマーインターンに参加してきた。

夢にまで見たはてなサマーインターンに参加してきました。密度高すぎて正直今8月の終わりとか信じらんないです。


目次

  • はてなのインターンはこんなに凄い
  • インターンの概要
  • 会社の環境
  • チラシの裏
  • 来年インターンに応募したいと思っている人へ
  • 来年インターンに参加する人へ
  • 最後に

はてなのインターンはこんなに凄い

僕の情報の学部卒、現在情報の大学院修士1回生です。プログラミング歴は

  • scheme
    • 大学1-2回生の間の1年間に大学の講義で使った*1
  • C言語
    • 2-3回生の実験で使った
  • PHP
    • 3回生の時バイトでPHPを使った

こんな感じです。はてなで使っているPerlJavaScriptは初めてでした。で、どんだけはてなのインターンが凄いか端的に言うと、今誰かに一番使える言語は何?と聞かれたら僕は自信を持ってこう答えます。

Perlだと*2


インターンの概要

8月2日に始まり、8月27日までの4週間、20営業日の長期間のインターンです。しかし、インターン参加者全員がこの日程を最後まで全うできるとは限りません。前半2週間は講義、後半2週間は本物のはてなのサービスを開発という流れなんですが、後半に進むには審査があります。


前半の講義の内容はこんな感じです。

  • 講義#1: Perl によるオブジェクト指向プログラミング
  • 講義#2: ORM によるデータベース操作 (DBIx::MoCo を使った開発)
  • 講義#3: MVC によるウェブアプリケーション開発 (Ridge を使った開発)
  • 講義#4: JavaScript で学ぶ イベントドリブン
  • 講義#5: ユーザーインターフェース, HTML5
  • 講義#6: クローラ
  • 講義#7: 機械学習
  • 講義#8: データ構造
  • 講義#9: はてなのインフラについて

上から下まで盛り沢山です。これを2週間かけて勉強します。で、最後の講義以外は全て課題が出て、毎日この課題と格闘することになります。ちなみに講義資料は半分くらいは公開されています。2010-07-28


また、一日の流れはこんな感じ。

  • 10:00 : 始業。まずは朝会に参加。
  • 10:30 : 講義開始。
  • 12:00 : 講義終了&課題スタート。
  • 13:00 : 美味しいお昼ごはん。
  • 14:00 : 午後開始。引き続き課題をやる。
  • 19:00 : 定時。でもそんなの関係ねぇ。
  • 22:30 : 終わり。

募集要項には就業時間10:00〜19:00とありますが、真っ赤に染まった嘘です。いや、本当なんですが課題が終わらないので結局毎日22:30までいることになります。少なくとも僕はそうでした。

そんでもってこの課題は翌朝締切で、10点満点で採点されます。点数をつけるだけでなくここが悪いからこうした方が良い、ここが良いなど細かいアドバイスがもらえます。課題の再提出認められていてその再提出の最終的な締切は2週目の木曜日。後半に進むためにはその時点で全ての課題で合格点(6点)をもらう必要があります。

後半は実際に使われるはてなのサービス開発を行ないます。ひたすら開発です。お給料も出ます。


会社の環境

超良いです。

何がいいかと言うと

  • 木曜以外はオフィスランチが出る*3
  • 会社に用意されている飲み物飲み放題
  • 会社に用意されているお菓子食べ放題
  • 会社に用意されているカップ麺食い放題

お菓子大好きな俺歓喜w*4

飲み食い以外の話をすると

  • 分からないところがあっても聞いたら必ず答えてくれる。
  • 会社の雰囲気が凄くいい。
    • 皆超仲いいです。

チラシの裏

こんな会社のインターンに僕は参加したわけです。で、これの参加者のレベルが高い。

やばい。

凄い。

課題をやっていると、皆先に進んでいって焦ります。誰かがこのコード書き終わったー、とか言っている頃に僕は設計を考えたり、それを実現する関数とか調べててまだコードを書いてない始末。前半2週間は正直凄いきつかったです。

大学の課題くらいでしかコードを書かず、一応1年間コーディングのバイトをしてたけど大して身につかなかった僕は、ついていくのが精一杯どころかついていけてなかったです。課題の締切守れないし合格点の6点なんて全然届かない。その日の課題が出てもまだできていない前日の課題をやって提出してからやっとその日の課題に取り組む感じでした。

なんか俺場違いだな、てかなんで俺ここにいるんだろう?間違えて採用されたんじゃね?

本気でそう思いました。

本気でそう思いすぎて社員さんに「僕間違えて採用してないですか?」って聞いちゃったりしました。*5

あぁ、後半進みたかったなぁ、とか最初の1週間の週末に既に思ってました。で、2週目の木曜19時が最終締め切りだったんですが

しょうがないから朝まで待ってやんよ

という社員さんの神々しいお言葉*6を頂戴して「ちょっと悪あがきするか」と思って徹夜で今まで合格点に届かなかった課題に取り組みました。この時夜遅くまで付き合ってくれたメンターの id:cho45 さん、朝まで付き合ってくれた id:halfrack さん、本当に、心の底からありがとうございました!

で、この結果なんですがほとんどの課題で6点を超えたよ!後1つまだ採点されてないけどこれが6点超えたら後半行ける!というところまできて、その点数が・・・


3.75点


( ゚д゚)

(つд⊂)ゴシゴシ

(;゚д゚)

(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚)

絶望しました。*7この後一人ひっそりと別の部屋に呼ばれてid:cho45さん、id:onishiさん、id:stanakaさんとの4者面談がありました*8。「合格点に達していない人もいるけど今協議中」という話をそこで聞いたんですが、もう完全に落ちたと思ってました。

その日の午後、運命の審査結果発表・・・

全員後半に進んでいただきます!

・・・え?いいの?マジで!?うおおおおおおおおおおおおおおおおおおお


そんなこんなで後半に進めたわけです。後半はid:KHCmaster*9id:t_a_b_eとでキーワードチームに入り、はてなキーワードの中にひっそりと存在していた統計ページなんとかしよう、ということで具体的にどうするかまでは決まっていなかったので何を作るか考えるところから皆でやって、そのアイディアを形にして無事リリースされました!詳しくは後述。

この後半は超楽しかったです。超楽しかったです。大事なことなので(ry

ずっとはてな内だけのサーバで開発していて、実際にリリースされた時本物のhttp://d.hatena.ne.jp上で動いているのを見た時の感動と言ったらないです。マジで。id:onishiさん、id:yosukeさんには本当にお世話になりました。ありがとうございました!


で、インターンの最後にid:jkondoさん,id:onishiさん,id:stanakaさんと面談があったんですが、そこで

後半に進んだはいいけど、本当に大丈夫かと思っていた。けど、想像以上に伸びて皆感心している

という話を聞いて、感極まって正直泣きそうでした。ほんとに*10 *11


何を作ったか

はてなキーワードの統計ページを はてなキーワード トレンド としてリニューアルしました!

はてなサマーインターン2010発の新機能6つがリリース! - はてな広報ブログ

キーワードの「トレンド」ページを公開しました - はてなダイアリー日記

キーワードのはてなダイアリーで言及された回数とかがグラフで見れます。キーワード同士の比較とかもできます。

例えば

とか面白いよ!



来年インターン応募したいと思っている人へ

僕はid:yaottiのかの有名な(?)エントリはてなインターンの1ヶ月は精神と時の部屋状態だった件 - yaotti's diaryを去年読んですごいなー、僕もやりたいなぁとなんとなく思っていたので、このインターンに応募しました。

インターン採用不採用の基準は完全に技術力ソートというわけじゃないそうです*12それだけで決まったら僕採用されてないしね。ちなみに僕はESの使える言語の熟練度の項目で一番使える言語を5段階の2で出しました。志望動機書はid:yaottiに「なぜはてなか?を考えてES書いた」とアドバイスをもらってそれを心がけて書きました。

ここに去年のインターンの採用に関する話がちょっと載ってるので読んでみるといいかも*13「はてなサマーインターン2009」人事担当者のインサイドストーリー&エンジニア採用ここだけの話 - はてな広報ブログ


来年インターンに参加する人へ

まず、PerlとJavaScriptの予習をちゃんとしましょう。初めてのPerl,続初めてのPerlを読みましょう問題解きましょう。僕はインターン直前まで大学院の課題&テストをやっていて予習が2日間だけだったので、チラシの裏に書いたようなことに・・・。JavaScriptに関してはノー勉だったし・・・。

僕のように時間がない!という人は最低限

  • Perlの基本的な書き方(初めてのPerl 1-5章)
  • リファレンス(続初めてのPerl 3-4章)
  • オブジェクト(続初めてのPerl 8-9章)
  • モジュール(続初めてのPerl 12章)
    • FindBin
  • Data::Dumper

が何かくらいは分かっておくべき*14。その後正規表現やソートあたりをやりましょう。もちろん初めてのPerlじゃなくてもいいし。JavaScriptは気合で*15。あと開発はVMware上のCentOSでやるので*16Linuxの基本コマンドとかはもちろん、Sambaを使ったらWindowsからlinuxのファイルにアクセスできること*17とか知っておいたら幸せになれる。

最後に

このインターンに参加して、貴重な体験、自信、技術力、良い影響を与えてくれる友人など得られたものはとても多く、大きいです。

今までウェブサービスというのはネットの向こう側の人達が作っているもので、自分はそれを使ってるだけ、というイメージだったんですが今はその「ネットの向こう側の人達」になってしまったわけです。ネットの向こう側とこちら側の壁は果てしなく高い壁で遮られていると思っていて、4週間でその壁を超えてしまったことは僕にとっては大きな衝撃でした。この出来事が大きな自信につながりました。

また、社長(id:jkondo)から

今レベル50の人はもうなかなか伸びないけど、今レベル5の人は簡単にレベルアップできる。レベル5からレベルアップしてできるようになったことが、レベル50の人からしたら当たり前のことでも、本人は楽しくて仕方がない。それでまたレベルアップする。これを同じペースで繰り返してるうちにレベル50の奴なんか抜き去ってレベル100になっちゃうんだよ

という内容のことを聞きました*18。僕はインターンに参加して出来るようになったことが今楽しくて仕方が無いです。とりわけ僕は、この話のレベル5からレベル10にレベルアップした人のようなものでしょうか。レベル100まで行けるかどうか分かりませんが、このペースのままレベルアップし続けていきたいです。


このインターンに参加できて本当に良かったと思います。はてな社員の皆さん、僕と同じインターン生の皆さん、本当に、本当にありがとうございました!


あ、ちなみに夢に見たのは今朝の話です*19

*1:教科書はSICP

*2:次点がJavaScriptとC言語で悩むところです。

*3:木曜はお金を出せばお弁当が出ます

*4:もちろん自重したよ

*5:間違いじゃなかった!

*6:実際そんな言い方じゃないかったけど

*7:てか今点数確認して気づいたけど再提出する前の方が点数高いし。。。そんでこの時はそんなの気づく余裕もなかった

*8:この時「間違えて採用してないですか?」って聞いた

*9:ちなみに彼が使ってるエディタは自作らしい。皆今すぐvector khcmasterで検索するんだ!

*10:けど泣かない、男の子だもん

*11:もちろん辛口コメントもあったんだけど、自覚してるのでショックだったとかそういうのはなかった。むしろ評価が低いことをid:stanakaさんに慰められている感があって申し訳なかった。

*12:技術力だけで決まったら志望動機書なんていらないしね。

*13:このエントリ書いてる最中に見つけた。今さらだけどES書く前に見たかった。。。受かったからいいけど

*14:それだけだと僕のようになる

*15:by id:KHCmaster

*16:来年もそうだと言う保証はないけど多分同じ

*17:MacだとMacFusion?詳しくは知らない

*18:確か茂木健一郎の天才の本に載ってたって言ってたような

*19:このエントリのタイトルの話

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Connection: close