読者です 読者をやめる 読者になる 読者になる

はてなインターンで 🍣 🍺 🍕 📝 🍛 🍜 💪 🏆 🍖 してきた話

インターン プログラミング

f:id:ak1t0:20160915190425p:plain

id:ak1t0です. はてなサマーインターン2016に参加してきました.

まとめ

whoami

プロフィール

  • 大学生
  • 情報系の学部に所属しているB3
  • セキュリティっぽい研究室に所属

プログラミングスキル

  • プログラミング歴3年
  • 趣味としてはそこそこ書ける程度
  • 実務経験ほぼゼロ
    (詳しくはここ)

応募から参加まで

境遇

プログラミングは, B1の頃にハッカーと画家という本に洗脳影響されたのがきっかけで始めました. 最初はWebアプリを目標にやっていたのですが, 途中で言語処理系とかセキュリティとかにも興味が出てきて, とりあえずは興味の赴くままに色々とやっていました. ただ, そんな生活もあっという間に終わり, 学部生活が残り2年を切ったので, 進路を真剣に考えざるを得なくなってきました. そこで, Webエンジニアという職を経験したいというのと, 精神と時の部屋と噂のはてなインターンで修行したいというのがあって, 応募しました.

格通

最初に合格メールが来たときは, 錯乱してメールヘッダを確認し始めるくらいには信じられなかったです. 5回くらい確認してようやく確信できました.

事前課題

MackerelコースはScalaJavaScriptの課題がありました. 特にScalaが難しくて, Javaの方言くらいに思ってたら死にかけました. Haskellを触ったことが無かったらやばかったと思います. コンパイル長い

前半

講義

1.5週間でWebアプリケーションの全てを消化するので密度がヤバいです. 構成は, (講義+基本課題+オプション課題) / day という感じでした. 基本課題が終わらないようなことはなかったけど, オプション課題をやっていると普通に22時までかかりました. 課題に悩みながら21時頃に食べるカレーや弁当は最高でした. 差し入れありがとうございました. また社員の方に飲みに連れて行ってもらって, ご馳走になりました. f:id:ak1t0:20160915170158j:plainf:id:ak1t0:20160915170200j:plainf:id:ak1t0:20160915170202j:plain

設計

正直な話, インターンに来るまでは, 設計なんてそこそこ適切にファイルやディレクトリを分割しておけばよくて, あまり意味のないものだと思っていました. しかし, 前半課題が, 前日作ったものに機能を足していく構造になっていて, 最初は無駄でしかないと思っていた層の分割が, 後々驚くほど上手く機能するのを見て, 設計が大事と言われる意味がよく分かりました.

Real World Machine Learning

機械学習は今年から始まった目玉講義で, 教科書の濃さがすごかったです. 内容は自然言語処理+機械学習で, 課題ははてなブックマークの生データを元にした悪意のあるコメントの検知の実装でした. Courseraの機械学習コースを1通りやっていたので油断していたら, 生データにボコボコにされました. 講師の方が1日で, インターン生が3日かけた学習器をあっという間に追い抜いていてすごかったです.

前半成果発表

前半学んだことをベースにWebアプリを2-3日で作りました. 前日の勉強会で知ったFlexboxのおかげで, 普段は悩ましいフッターの調整が即終わって最高でした. 1票も入らないかもと思ってビクビクしていたけれど, ちゃんと票をある程度貰えてよかったです. ほぼ外部APIのデモにしかなっていないという, 耳の痛い(けれどその通りな)コメントも貰いました.

前半感想

自分の知識の偏りや抜けをすごく実感して, 色々な分野を基礎からもう一度勉強し直したくなりました.

後半

チーム配属

初日の会議に遅刻という大ポカをいきなりやらかしました. Mackerelチームの方々本当に申し訳ありませんでした. 前半は課題で22時まで作業するのが基本だったので, チームに配属されると定時に帰れるようになるのは, 少し不思議な感じがしました.

やったこと

インターン生にやってもらいたいことというGitHubのIssueがあって, そこにあるタスクを選んでこなしていく感じでした.

初Angular

いきなりテンプレートに<ng-model>とか<ng-class>とか出てきて面食らったので調べてみると, Angularの機能だということが分かりました. Angularについては, 最近よくdisられているというメタ情報くらいしか知りませんでした. 結果として, フロントエンドという未知の領域に, Angularという未知のフレームワークで挑む必要があってけっこう辛かったです. 最初はdirective?なにそれ美味しいの?という状態でした. Angularは詳しくないと言いつつ, 初日からどんどんフロントエンドに手を入れていくペアのid:upamuneが頼もしかったです.

コードレビュー

今までコードレビューの経験が無かったのでとても新鮮でした.

リリース

自分たちの作った機能が, デザイナーさんの手によって調整されて, 実際に告知ブログに紹介されて, リリースされるというのは, 言葉にできない感動があって本当に最高です.

最高!!!

最終成果発表

優勝(優勝)

僅差でしたが優勝できました. Mackerelチームのインターン開始以来常に優勝する伝統を維持(1/1 → 2/2)できて良かったです.

雑感

東京でのエンジニア生活やはてなのサポートの話, また, ここには書けないような話まで, 社員の方から色々な話を聞かせてもらいました. 他にも, 隣の研究室出身の方が居て驚きました.

まかない

野菜が一杯使われてて栄養バランスが良いし美味しいしすごかったです. この1ヶ月でだいぶ健康的な体になった気がします. 前半の成果発表前にぎりぎりまでコード書いてて, その日のハヤシライスを食べ損なったのが心残りです.

打ち上げ

三嶋亭のすき焼き. 最高. 肉も美味しいが漬け物も美味しい. f:id:ak1t0:20160915170212j:plain

Mackerelチーム

メンターのid:itchynyさんだけでなくid:astjさんやid:daiksyさん, デザイナーのid:takuwologさん, 東京のid:stefafafanさんにもとてもお世話になりました. id:itchynyさんとid:haya14busaさんとペアのid:upamuneがみんなVimmerで, Vim力がすごかったです. f:id:ak1t0:20160915170205j:plain f:id:ak1t0:20160915170208j:plain

生活

自分は月曜日から金曜日まではホテルで, 土日は帰る半ホテル組といった感じでした. 個人的な事情だったにも関わらず, 色々と対応していただいて, id:tomomiiさんありがとうごさいました.

インターン

id:upamune Mackerelチームのペア. 芹澤優. Vimmer. フロントエンド力とGo力がすごくて頼もしかった. 最高. 朝は色々と迷惑をかけて申し訳なかったです.

id:hantas セキュキャンからそのままインターンに来た強者. ISUCONよろしくお願いします.

id:miki_bene お酒を飲み過ぎる人. 大学のレポートが辛そうだった.

id:mr-sunege プレゼンのプロ. 両方の成果発表ですごかった.

id:polamjag DJ烏丸御池. 打ち上げの日まで本名を知らなかった.

id:susisu 半額シールの人. Glitchすごかった.

id:takuya-nakamura めっちゃ飯を食う人. ○ワン○をも恐れぬアイデア.

賞金

PS4買います.

応募のすすめ

プロのエンジニアに講義+αしてもらえて, 本物のソースコードに触れて, ハイレベルなインターン生と知り合えて, 実際の開発を体験できて, 美味しいまかないがあって, 給料も貰えます. シュッと書いてシュッと応募しましょう!!! ポートフォリオが要るので, github.io等でまとめておくと良いと思います.

最後に

メンターのid:itchynyさん, 実行委員長のid:daiksyさん, そして今回のインターンに関わる全ての方々, 本当にありがとうございました.

おまけ

高倉二条のラーメン f:id:ak1t0:20160915170211j:plain

他のインターン生のレポート blog.upamune.com

susisu.hatenablog.com

polamjag.hatenablog.jp

mr-sunege.hatenablog.com

blog.taniho.net

benevolent0505.hatenablog.com