株式会社永和システムマネジメントを退職して大学院に進学します

はじめに

近況報告を兼ねて退職エントリを書きました。


要約

  • 新卒入社して約2年半勤めた株式会社永和システムマネジメントを9月10日付で退職しました
  • 9月20日より東京大学大学院情報理工学系研究科創造情報学専攻に進学します


私について

学士課程では経済学を専攻していました。ゼミに所属していなかったこともあり、3年生の途中からプログラミングを始め2社でインターンをしていました。4年生の冬頃に就活をして内定をいただいたRubyアジャイル受託開発を行っている会社でプログラマをしていました。


何をしていたか

受託開発を行っている会社なので色んな会社のソフトウェア開発のお手伝いをしていました。在籍したのは2年5ヶ月でしたが合計5社のお客様と仕事させていただきました。具体的なサービス名は挙げられないのですが、様々な業種のRailsアプリケーション開発は貴重な経験になりました。また所属していたアジャイル事業部ではアジャイル開発を得意とするメンバーが揃っており、期限が決まっている中でプロジェクトをいかに成功に導くかといったことも学びました。さらに会社のお金でRubyKaigiやRubyConf Taiwanといったカンファレンスにも参加させていただきました。


退職理由

会社に不満があったわけではないです。米グリーンカード抽選に当選してからこの先どうしようか考えた結果、大学院に進学することに決めました。アメリカの大学院にしなかった理由は学部の専攻が情報系ではなく、またGPAが低かったため向こうの中堅校でも受かるのは難しそうだと判断したためです。お金の問題もありました。


志望校・研究室選定について

まず自分の実力から行けそうな大学院をピックアップして、その中から興味を持てる研究室を探しました。3月くらいまでは社会人特別選抜があり英語と口述試験のみで受験できる筑波大学にしようと考えていたのですが、東工大修士課程に通う友人に「東工大も対策次第で十分合格可能だし東工大も考えてみたら」と言われ、最初から無理そうだと候補から外していた大学院も含め研究室を改めて考えてみました。そして数学の代わりにプログラミングを選択できる東大の創造情報を見つけ、プログラマなら余裕やろと思い、研究室も面白そうなところがあったのでそこに決めました。


試験対策について

こちらに書きましたので興味がある人はどうぞ。


研究内容について

詳しくは決まっていないので分野だけ書くとマシンパーセプション、コンピュータビジョン、自然言語処理、深層学習といったところです。


最後に

フルタイムで働きながら合格できたのは残業がほとんどない超絶ホワイトな会社(と一緒のプロジェクトメンバー)のおかげでした。お仕事で関わった皆様大変お世話になりました。前職の事業部について知りたい方は事業部長が公開しているスライドが参考になるかもしれません。(みんな大好きお給料の情報もあります)

www.slideshare.net

色々と端折って書いたところもあるので質問などある方は@h_isasまでお願いします。

2020年度 創造情報学専攻 夏入試について

東京大学大学院 情報理工学系研究科 創造情報学専攻の2020年度夏入試を受験し合格しました。 試験内容や対策に使用した書籍などを紹介します。

試験内容について

試験は以下の4つで構成されます。

  • 一般教育科目(数学 or プログラミング)
  • 外国語(TOEFL iBT or TOEFL ITP)
  • 専門科目(創造情報学 or コンピュータ科学 or 数理情報学 or システム情報学 or 電子情報学)
  • 口述試験

私はプログラミング、TOEFL ITP、創造情報学を選択しました。 点数開示の申請を行ったので結果が出次第点数を公開しますが、手応え的にはプログラミング5割、専門6割、英語7割5分といった感じです。 今年はプログラミングが難化したと感じるので、例年の過去問で7割位取れてると良いと思います。 口述試験は時間にして5分程だったので点数の差はほとんどつかないと思われます。


(10月4日追記)
開示の結果が出たので載せておきます。専門が思ったより取れていなかったですね... ギリギリ合格のラインのような気がします。結果的には第一志望の研究室に正式に配属されたので良かったのですが。

f:id:hkame6926:20191004222855j:plain
開示結果

詳しい入試案内はこちらを参照してください。

https://www.i.u-tokyo.ac.jp/edu/course/ci/2020-ci-entrance.pdf


勉強内容や使用した参考書について

プログラミング

お仕事でコードを書いていたので使った書籍としては1冊のみです。ここに載っている問題のほぼ全てをRubyで再実装しました。専門科目のアルゴリズムの対策も兼ねています。

後はひたすら過去問を解きました。PC 内に保存されたライブラリ等の使用やソースプログラム等の流用が認められているので、ネットでググるのではなくローカルに保存したライブラリのみを参照して問題を解く訓練をしました。試験当日もバイナリファイル内の文字列を8bit 符号なし整数へ置き換える処理が求められ、うーん分からないなと思いながらリファレンスマニュアルをgrepしたところString#unpackでできそうだと分かり事なきを得ました。


英語

少し内容が古い気もしたので他の書籍の方が良いかもしれません。

はじめて受けるTOEFL ITP TEST総合対策 (<CD+テキスト>)

はじめて受けるTOEFL ITP TEST総合対策 ()

  • 作者: 島崎美登里,ポール・ワーデン,ロバート・ヒル
  • 出版社/メーカー: 語研
  • 発売日: 2010/03/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 1人 クリック: 3回
  • この商品を含むブログを見る
TOEFL ITP TEST実戦問題集

TOEFL ITP TEST実戦問題集

  • 作者: ポール・ワーデン,ロバート・ヒルキ,松谷偉弘
  • 出版社/メーカー: 語研
  • 発売日: 2011/12/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 2人 クリック: 2回
  • この商品を含むブログを見る


専門科目

過去問を見ていただくと分かりますが範囲がとても幅広いです。勉強時間が限られていたので数学は最低限にし、物理やロボティクス、信号処理は捨てて比較的頻出なアルゴリズム論理回路、コンピュータアーキテクチャを重点的に勉強しました。後は大門3の語句問題の対策に時間を割きました。応用情報を取るために買ったはいいものの読んでいなかった本が思いの外役に立ったのは意外でした。

大問1,2用

データ構造とアルゴリズム (新・情報 通信システム工学)

データ構造とアルゴリズム (新・情報 通信システム工学)

アルゴリズムイントロダクション 第3版 総合版:世界標準MIT教科書

アルゴリズムイントロダクション 第3版 総合版:世界標準MIT教科書

論理回路入門 (グラフィック情報工学ライブラリ)

論理回路入門 (グラフィック情報工学ライブラリ)

コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)

コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)

コンピュータの構成と設計 第5版 上・下電子合本版

コンピュータの構成と設計 第5版 上・下電子合本版

オペレーティングシステムの仕組み (情報科学こんせぷつ)

オペレーティングシステムの仕組み (情報科学こんせぷつ)

大問3用

平成31年【春期】/01年【秋期】応用情報技術者 合格教本

平成31年【春期】/01年【秋期】応用情報技術者 合格教本

IT Text 離散数学

IT Text 離散数学

東京大学工学教程 情報工学 機械学習

東京大学工学教程 情報工学 機械学習

コンピュータグラフィックス [改訂新版]

コンピュータグラフィックス [改訂新版]

情報理論 (ちくま学芸文庫)

情報理論 (ちくま学芸文庫)


その他参考にしたサイト

Rails Developers Meetup 2018: Day 1 でスポンサートークをしました

Rails Developers Meetup 2018: Day 1 で株式会社永和システムマネジメントのスポンサートークをしました。@koic さんお誘い頂きありがとうございます。

 

当日発表したスライドはこちらです。

speakerdeck.com

 

 

 

スライド22枚目ytdが予想に反して反響があったためその裏話をしようと思います。

 

当時実装していたのは「連続〇〇日数」をトップページに表示するというものでした。連続ログイン日数などを想像していただけたらと思います。

トップページということもあり、毎回DBに問い合わせて値を取るとSQLの発行で重くなることが懸念され、「前日までの連続〇〇日数」を日時バッチで求めておいてDBに保存すると良いのではと考えました。

そこで前日までの連続日数を保存するカラム名の案の一つとしてcontinuous_login_until_yesterdayのようなものを考えました。しかしOracleのカラム名は30 CHAR以内です。continuous_login_until_yesterdayは32文字なのでアウト。そこで苦肉の策で出てきたのがytdです。continuous_login_until_ytdですと26文字なので30文字に収まります。

 

このように考えていたところ@koic さんからレビューを受けました。

ytd は一般的に意味が分からなくて、メンテナンスする人が大変な思いをします。

再考の結果「前日までの連続〇〇日数」をDBに保存する方針ではなく、アクセス時にDBに問い合わせて値を取る方針に変えました。SQLを見直した結果負荷をあまりかけずに済みそうだと判明したためです。

 

本編のスライドでは割愛しましたがレビューには続きがありました。

以下を熟読してくださいな (この URL 毎年伝えている) 。

http://www.clear-code.com/blog/2012/6/28.html#.E7.95.A5.E3.81.95.E3.81.AA.E3.81.84

 命名において略すことがいかに好ましくないかを学びました。このポストは定期的に何回も読み直しています。皆さんもぜひご一読ください。