株式会社永和システムマネジメントを退職して大学院に進学します
はじめに
近況報告を兼ねて退職エントリを書きました。
要約
私について
学士課程では経済学を専攻していました。ゼミに所属していなかったこともあり、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日追記)
開示の結果が出たので載せておきます。専門が思ったより取れていなかったですね... ギリギリ合格のラインのような気がします。結果的には第一志望の研究室に正式に配属されたので良かったのですが。
詳しい入試案内はこちらを参照してください。
https://www.i.u-tokyo.ac.jp/edu/course/ci/2020-ci-entrance.pdf
勉強内容や使用した参考書について
プログラミング
お仕事でコードを書いていたので使った書籍としては1冊のみです。ここに載っている問題のほぼ全てをRubyで再実装しました。専門科目のアルゴリズムの対策も兼ねています。
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
- 作者: 渡部有隆
- 出版社/メーカー: マイナビ出版
- 発売日: 2015/01/30
- メディア: Kindle版
- この商品を含むブログを見る
後はひたすら過去問を解きました。PC 内に保存されたライブラリ等の使用やソースプログラム等の流用が認められているので、ネットでググるのではなくローカルに保存したライブラリのみを参照して問題を解く訓練をしました。試験当日もバイナリファイル内の文字列を8bit 符号なし整数へ置き換える処理が求められ、うーん分からないなと思いながらリファレンスマニュアルをgrepしたところString#unpackでできそうだと分かり事なきを得ました。
英語
少し内容が古い気もしたので他の書籍の方が良いかもしれません。
- 作者: 島崎美登里,ポール・ワーデン,ロバート・ヒルキ
- 出版社/メーカー: 語研
- 発売日: 2010/03/01
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 3回
- この商品を含むブログを見る
- 作者: ポール・ワーデン,ロバート・ヒルキ,松谷偉弘
- 出版社/メーカー: 語研
- 発売日: 2011/12/01
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 2回
- この商品を含むブログを見る
専門科目
過去問を見ていただくと分かりますが範囲がとても幅広いです。勉強時間が限られていたので数学は最低限にし、物理やロボティクス、信号処理は捨てて比較的頻出なアルゴリズム、論理回路、コンピュータアーキテクチャを重点的に勉強しました。後は大門3の語句問題の対策に時間を割きました。応用情報を取るために買ったはいいものの読んでいなかった本が思いの外役に立ったのは意外でした。
大問1,2用
- 作者: 五十嵐健夫
- 出版社/メーカー: 数理工学社
- 発売日: 2007/10/01
- メディア: 単行本
- 購入: 14人 クリック: 122回
- この商品を含むブログ (10件) を見る
アルゴリズムイントロダクション 第3版 総合版:世界標準MIT教科書
- 作者: Thomas H. Cormen,Clifford Stein,Ronald L. Rivest,Charles E. Leiserson
- 出版社/メーカー: 近代科学社
- 発売日: 2018/01/09
- メディア: Kindle版
- この商品を含むブログ (4件) を見る
- 作者: 菅原一孔
- 出版社/メーカー: 数理工学社
- 発売日: 2013/02/01
- メディア: 単行本
- この商品を含むブログを見る
コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)
- 作者: 坂井修一,電子情報通信学会,電子通信学会=
- 出版社/メーカー: コロナ社
- 発売日: 2004/03/01
- メディア: 単行本
- 購入: 8人 クリック: 75回
- この商品を含むブログ (2件) を見る
- 作者: デイビッド・A・パターソン
- 出版社/メーカー: 日経BP
- 発売日: 2016/10/26
- メディア: Kindle版
- この商品を含むブログ (6件) を見る
- 作者: 河野健二
- 出版社/メーカー: 朝倉書店
- 発売日: 2007/10/01
- メディア: 単行本
- 購入: 2人 クリック: 19回
- この商品を含むブログ (6件) を見る
大問3用
- 作者: 大滝みや子,岡嶋裕史
- 出版社/メーカー: 技術評論社
- 発売日: 2018/12/12
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
- 作者: 松原良太,大嶌彰昇,藤田慎也,小関健太,中上川友樹,佐久間雅,津垣正男
- 出版社/メーカー: オーム社
- 発売日: 2010/10/21
- メディア: 単行本(ソフトカバー)
- 購入: 9人 クリック: 122回
- この商品を含むブログ (1件) を見る
- 作者: 中川裕志,東京大学工学教程編纂委員会
- 出版社/メーカー: 丸善出版
- 発売日: 2015/11/01
- メディア: 単行本
- この商品を含むブログを見る
ネットワーク工学―インターネットとディジタル技術の基礎 (新・情報 通信システム工学)
- 作者: 江崎浩
- 出版社/メーカー: 数理工学社
- 発売日: 2007/07/01
- メディア: 単行本
- クリック: 1回
- この商品を含むブログ (1件) を見る
- 出版社/メーカー: 画像情報教育振興協会
- 発売日: 2016/09/20
- メディア: 単行本
- この商品を含むブログを見る
- 作者: 甘利俊一
- 出版社/メーカー: 筑摩書房
- 発売日: 2011/04/08
- メディア: 単行本
- 購入: 4人 クリック: 48回
- この商品を含むブログ (11件) を見る
その他参考にしたサイト
2019冬入試で創造情報に合格した人のブログ ryosuke0711.hatenablog.com
その人のプログラミングの過去問解答 github.com
過去の語句問題など大問3対策 github.com
Rails Developers Meetup 2018: Day 1 でスポンサートークをしました
Rails Developers Meetup 2018: Day 1 で株式会社永和システムマネジメントのスポンサートークをしました。@koic さんお誘い頂きありがとうございます。
当日発表したスライドはこちらです。
スライド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
命名において略すことがいかに好ましくないかを学びました。このポストは定期的に何回も読み直しています。皆さんもぜひご一読ください。