文系でしたが情報系の大学院に進学します

学部が文系分野の専攻で、情報系の他学部大学院を受験していた

 

院試を受けるにあたって、先人のブログなどが役に立ったので、僕もそれにならって書こうと思う

 

Background

  • 理系として京都大総合人間学部に入学
  • 文転?して、学部時代の研究室は文系のところへ
  • コンピュータサイエンスは3年ぐらいからやりはじめた
  • 院試対策は4年の4月くらいから
  • 院は京都大情報学研究科(社会情報学)

 

参考にしてたページ

 

もくじ

院試は英語(TOEFL/TOEIC)、基礎科目(コンピュータ科学系)、専門科目、面接の配点があった

比率は、英語200:基礎150:専門300:面接100

  1. TOEFL/TOEIC対策
  2. 専門科目の対策
  3. 面接対策
  4. こまったこと

 文系から情報系に行きたい場合、一番のネックは、院試の専門科目の対策だと思う

 僕の場合も、専門科目の勉強をどうすればよいか分からなかった

 院の進学説明会(4月くらい)で、「どうやって専門科目は勉強したらいいか?」と教授たちに聞いたところ、「一番いいのは、学部の授業を受けることだけど、まあ英語と、基礎科目がちゃんとできればいいんじゃない?」といわれた

 

英語の対策

 僕はこの言葉を信じてTOEFLの対策に2か月、基礎科目&専門科目で2か月対策することにして、英語と基礎科目をしっかりやろうと計画した

 TOEFLの対策などをいろいろ調べたり、本を買って勉強したりしていた。ネット上の情報で、「(120点中)80点取れれば、足を引っ張ることはない」というのを目にしたので、とりあえず80点を目標に勉強していた

 

 そんなこんなで2か月ほど対策して、6月ごろにTOEFLを受験したが・・・

 

 大失敗

 

 そもそもTOEFLを始めて受けることもあって、試験への慣れが無かったこと

 あと、前日まで昼夜逆転生活が治らず、当日の朝、ごはんも食べずに会場に行ってしまったことで、ねむい&空腹で全く頭が回らなかった(これで10点以上損した気がする)

 

 ここでコンディショニングの重要性を痛感した

 反省を生かして、筆記試験の時は、2週間前くらいから早寝早起きにし、当日もご飯をしっかり食べて受験に臨んだ

 あたりまえのことだが、これまでは親などのサポートがあったので、こうしたことに無頓着でいてしまった

 

 理系の大学院は、英語の配点が高いところも多いと思うので、英語をしっかり準備しておくことは非常に重要だった

 実際に、京都大社会情報学でも、「去年までは英語の配点が高すぎて、専門科目がそれほどでなくても英語で受かってしまうケースが多く、今年から英語の配点を減らして専門科目を重視するようにした」

 

 この経緯は、のちの伏線になる

 

専門科目の対策

 英語で大失敗してしまったので、専門で獲るしかないとなった

 院試で出題されるテーマは毎年5つで、ほとんど変わらない

 例年は、5問のうち2問を答えるが、今年から3問を回答することになった

  • データベース
  • 情報システム
  • 機械学習ちっくななにか ×2
  • ヒューマンインターフェース

 この中で、「どの先生が作題していて、どの授業の資料を手に入れれば答えられるようになるか」という基準で、3つに絞って勉強することにした

 シラバスを見ながら突き合わせた結果、

  • データベース
  • 情報システム
  • ヒューマンインタフェース

 の3テーマに絞った

 機械学習系は、どの授業の資料を入手すればいいのかいまいちわからなかったので、やめた

 絞った3テーマの授業資料を手に入れるべく、教授にメールをして、研究室訪問ついでに資料をGetした

 

 勉強は、手に入れた資料を基に、各テーマごとに、ノート1冊が埋まるくらいにまとめた

 分からないところは、サーベイ論文を中心にリサーチして、分かるようにした

 

 院試の過去問のほか、当該授業の過去問データベースを利用して、どんな問題が出るかおおよそ検討をつけた

 

 (※情報システムは、去年から授業担当&院試の作題者が変わっているようだったので、最新の授業資料を手に入れていたことは非常に有用だった)

 

 2か月くらいの対策で、何とか3テーマを終わらせることが出来た

 

 そして、迎えた本番当日・・・

 

 出題傾向が劇的に変化し、全体的に難化していた(主観)

 

 事前に、今年から専門科目の比率を高めようとしていると把握していたおかげで、専門科目の難化や出題傾向の変化は予想していたので、冷静に対処できた(伏線回収)

 

 しかし、ヒューマンインタフェースは変化しすぎていて、対応不可能であった(ほぼ白紙)

 ただ、データベースや情報システムについては、難化をみこして、それなりに対策してきていたので8割くらい出来た気でいる

 

面接対策

 面接は、筆記の翌日にあった

 出願の際に「研究計画書」を提出していたが、僕の場合、出願後、「研究計画書」の内容に不満を感じてきていたので、当日に、新しい研究計画を提示しようと考えた

 そのために、研究計画をスライドにまとめ、(PowerPointなどを使用できないと書かれていたので)紙に印刷して当日配ろうと計画していた

 

 僕のイメージでは、面接は、(大学入試で受けたときのように)教官と3・4人で話すものだと思っていたが、実際には、

 

 割と広めの教室の教壇に立たされ、2,30人の教授たちの前で説明する

 

 ものだった

 一応、事前にそういう形態もあることを知っていたので、新しい研究計画を配れない場合に、大きめの紙にスライドを印刷して、紙芝居的なことを出来るようにもしておいたので、それは良かった

 

 あと、募集要項には、面接は「5分程度でまず説明し、それから質疑」と書かれていたが、実際には

 

 1分で研究抱負を説明し、(場合によって)質疑が少しある

 

 だった

 僕の場合、研究抱負を説明した後、志望動機を説明するように求められた

 

 作ってきた研究計画は、要項通り5分程度にまとめる予定だったので、1分ではうまく説明できなかったが、スライドっぽいものを持ってきておいたおかげで、熱意だけはアピールできたのではないかと思っている

 

こまったこと

 

 一番難しかったのは、スケジュール調整だった

 僕の場合、卒論が全くの分野違いになるので、卒論の時間と院試対策の時間の割り振りが難しかった

 基本的に院試対策を優先し、卒論は最低限くらいの進捗で行こうとしたが、それなりに時間は取られた

 

 また、授業も結構あったので、7月は、卒論&定期試験&院試が重なってしまった

 

まとめ

  • 英語はだいじ
  • 専門科目は、教授とか知り合いとかに頼んで資料をgetすればなんとかなる
  • 準備時間がないなら、情報戦が必須
  • さいごまであきらめない

 畑違いのところへ行こうとすると、その分野(や近い分野)でやってきた人に勝てるのか不安になるが、最後まであきらめなければなんとかなる(倍率が高くなければ・・・)

 

 まあ、早い段階から決めて準備しておけば、こんなことにはならかった。

 

 

 ともあれ、受かったので、楽しく研究していきたいと思う

 

 

 

 

MANABIYAに行ってきたよ(2日目)

MANABIYA2日目の記事です。

manabiya.tech

 

今日聞いたこと

 

The Angular World

 Angular日本ユーザー会会長の稲富さん(@laco2net)による講演。スライドはこちら。

 

slides.com

 以下勝手な要約。

 Angularは、単なるフレームワークではなく、統合開発プラットフォーム、またエコシステムの側面も持っている。

 フレームワークとして:CoreとFeatureに分けられ、各種ライブラリがまとまったものとしてのAngular。チーム開発に向いている。

 プラットフォームとして:CLIやLintツールなどが提供され、開発支援が手厚い。

 エコシステムとして:多くの開発者とコミュニティ、整備されたリリース。

 ウェブフロントエンドは過渡期にあり、SPAが一般化する中で、GUIアプリケーションの知見を取り入れている段階。その中で、Webにもとめられる機能は多く、さらに環境が異なる(ブラウザの違いetc)ところを吸収できるよう、フレームワークを使うことは必須。Angularは、ややこしいところはブラックボックス化し、アプリ開発に集中できる。(要約終わり)

 

 ReactでSPA作るよりAngularで作っていったほうがたぶん楽。

 

エンジニアのための経営戦略

 サイボウズの西尾さん(@nishio)による講演。スライドはこちら。

www.dropbox.com

 要点としては、

 「損切りを考慮しつつ、新しいことに挑戦していく(スモールステップ)」

 「時間というリソースを知識に振り分ける戦略(知識獲得戦略)」

 「知識獲得戦略における知識獲得術としての知識の横流し戦術」

 というところ。ある分野で専門性を高めていくことだけが知識獲得戦略ではない。複数の違った分野にまたがって知識を獲得し、分野Aで得た知識を分野Bで使う(見返りに分野Bの知識をもらう)みたいな、知識で"貿易"するような戦略もあるということ。

 

 ググっても存在しない知識を得るって難しくて、ググれば出てくるけど理解が難しい知識を分かりやすく教えられるって方向でいくのもありだよね。

 

プログラミングのクロスセッション

 プログラミング言語やらのクロスセッション。型付けとバグとか、スピードと綺麗さとかいろいろ話してた。大体忘れた。

 

まとめ

 MANABIYA両日で、Web/モバイル/インフラ/xR/AI/プログラミングといったさまざまな分野の話を聞けたのはとても有益だった。IoTについてはほぼ触れてないので、今後何かしらの機会を見つけたい。

 MANABIYAスライド集的なツイートがあったので張っておく。

MANABIYAに行ってきたよ(1日目)

ブログはじめました。

 

今日は、

manabiya.tech

 に行ってきました。

 

聞いたこと

  • ReactNativeの現在と未来
  • Javaのカルチャーとグロース
  • AI屋さんの一日
  • AlibabaCloudのテクノロジー
  • AWSで見るマイクロサービス、サーバレスの流れ
  • メルカリのインフラについて

見たこと/やったこと

  • HTC VIVEの体験
  • テクノスポーツHADOの体験
  • セグウェイ試乗

 

ReactNativeコミュニティの現在と未来について

 ReactNativeJapanの中田さん(@besutome)による講演。

 ReactNativeの開発状況などの解説・ツールの紹介などをしていた。とても有益であった。簡単に紹介すると、

  • Facebook
     開発元であるFacebookは基本的に地盤固めの地味な作業をやってる。
  • Expo
     expoは、PCで開発しているReactNativeをスマホですぐに動かせる、というもの。接続設定なども不要で、PCに表示されるQRコードスマホで読み込むと、スマホで動作確認が出来るという便利。さらに、ReactNativeで開発していてもネイティブ機能(カメラ使うとか、etc)の修正はストアを通してアップデートしなければならないが、Expoはそういったネイティブ機能をJS上で動かすので、ストアを通さずにアップデート出来る。詳しい説明は以下のURLがよさそう。

    blog.gmork.in

  • Snack
     Expoが開発しているWeb上でReactNativeを試せるやつ

    ykubot.com

  • ReasonML
     Facebookの開発した言語。革新的らしい。全く知らなかった。簡単に言うと、OCamlC言語っぽくしてJSとの親和性を高めてくれる。詳しいことは以下参照。

    2ality.com

  • ReactXP

     WindowsでReactNativeアプリが動くよ、というライブラリ。ちなみにwindowsSkypeアプリをReactNative化している。

     

  • BuilderX

     JSX構文を使うReactNativeは、デザインと開発をうまく分離できない。しかし、BuilderXを使えば、デザインと開発を分けやすくなるよ。Reactでも出来ないかな?
  • そのほか(キーワードのみ)
     wix/detox: E2Eテスト
     react native navigation: react-routerのモバイル版的な、react navigationというのもある
     InfiniteRed/reacttron: デスクトップアプリに出来るツール
     shoutem: ワードプレスみたいなやつ

  ReactNativeもしくは、モバイルネイティブアプリ開発に関しては、PWAの動向が気になるが、中田さんによれば、PWAがどうなっても、ReactNativeは悪い方向には行かないからやっとけば?とのこと。また、ReactNativeは、ウェブサービスをネイティブアプリ化するのには向いている(スマホのネイティブ機能(カメラとかジャイロとか)をあまり使わないアプリ)。iOSAndroidで完全にコードを共有するのはノウハウがないと難しい。機能とデザインのコンポーネントは分離しておこうとかも仰ってた。

 

Javaのカルチャーとグロース

 Javaの歴史とか今後の展望について、JJUG会長の鈴木さん(@yusuke_arclamp)による講演。以下がそのスライド。

 

www.slideshare.net

  Javaよく知らなかったけど、面白そうなので、ちょっとやってみようかなと思う感じ。でもC#のほうが良いってみんな言ってる。

 

AI屋さんの一日

 Yahoo!の河合さん(@vaaaaanquish)による講演。AIerのリアルな仕事内容について。以下勝手な要約。

 研究・分析・モデリングの3分野に大きく分けられ、それぞれ基盤技術は似ているがアウトプットは全く異なるので、単純にすべてまとめて「AI人材」と扱うのは危ない。モデリングならAPI作ってサービスインとか出来るけど、分析や研究の人は苦手だったりetc。

 AIerが最も時間をかけているのはデータの収集とクレンジング(データをきれいにすること)で、AIerとしてもここに時間をかけたい。これは、データの量と質が精度に大きく影響するからであり、逆に、バックエンドの整備(データ収集インフラや計算インフラetc)やパラメータ調整、可視化ツールなんかは時間を使いたくないので、なるべく自動化していきたい。(要約終わり)

 

 機械学習関連の講演はどれも人気でした。AI開発は泥臭い。

 

AlibabaCloudのテクノロジー

 AlibabaCloud(SBクラウド)の森さん(@mosuke5)の講演。近年目覚しく成長しているAlibabaのIaaS、AlibabaCloudのテクノロジーの紹介。
 アリババ、テンセント、バイドゥをはじめとして、この1年で中国ITの存在感強くなってるよね、という話から始まり、AlibabaCloudは大体を内製していて、Alibabaのテクノロジーすごいよという話でした。メモ取ってなかったのでだいぶ忘れました。

 日本だと、IaaSはほぼUSって感じで、Alibabaやら中国系はほとんど存在感ないけど、今後伸びてくるのだろうか?(AlibabaCloudはすでに世界3位のシェア。)

 

AWSで見るマイクロサービス、サーバレスの流れ

 AWS日本の亀田さんによる講演。AWSの歴史を見ながら、現在のトレンドであるマイクロサービスやサーバーレスまでを辿るもの。以下、勝手な要約。

 2000年代、Webの発展ともに、基幹系・複雑系業務をweb経由で出来る説が浮上して誕生したのが"Web Service"という考え方。これに則って開発されたのがAWSの始まり。当初はAPIサービス群だった。

 (明日追記します)

 

メルカリのインフラについて

 メルカリの長野さん(@kazeburo)による講演。今勢いに乗ってるメルカリのインフラ周りの構成(マイクロサービスonマルチクラウド)についての説明。以下、勝手な要約。

 JP/US/UKという3リージョンで展開するメルカリは、それぞれのリージョンでサービスが少しずつ違っていて、APIなどのレポジトリも3バージョンに分けられている(元々は一つにしていたが、フォークした)。メルカリという企業がスケールする中で、エンジニア1000人体制を目指していて、そのためにマイクロサービス化を推進していった。これによって、開発スピードを落とさずにスケールしていける。また、メルカリはJPではさくらインターネットとGoogleComputeEngine、USではGCEとAWS、UKではGCEみたいなクラウド構成を取っている。こういうマルチクラウドで問題になるのはサーバーの場所が結構違うことで、日本ではさくらサーバーが石狩、GCEが東京にあるので、ここでスピードが10~100倍くらい変わってしまうので、ハンドシェイクの省略や、プロキシさしたりしてやって問題解決。

 所感:スピード感の重視されるプロジェクトでは、マイクロサービス導入はほとんど避けられないように思えるので、dockerとかk8sとかは多少は勉強しないといけないみたいな。docker知らないやつはエンジニアじゃないとかいう過激派もいる。

 

HTC VIVE

 HTC好きです。スマホもHTC。VRは、2~3年前に、ビックカメラで試したことが合って以来の体験。そのころに比べて格段に画質・fps・ジャイロ・空間把握などが向上しており、ほとんど違和感なく出来るようになっていた。使った後のVR酔いは多少合ったが許容範囲内。VRについては、ゲームよりネット会議とかのほう(VRチャットとか)に期待しています。家でヴァーチャルリモートワーク出来たら良いよね。

 

HADO

 テクノスポーツHADOを体験してみました。HADOは、スマホを使ったARゲームで、エネルギー弾を相手に当てたり、避けたりして争うスポーツ。後ろの落書きみたいな壁がマーカーになっていて、これがカメラの中に収まってないといけない。スマホを使っているからなのか、結構視野が狭くて、2vs2だと、結構頭を回さないといけない。もうちょっと没入感が欲しいよ。

youtu.be

 

 セグウェイ

 楽しい。20分くらい試乗した。100万する。公道走れない。自転車で良いかな・・・。自動運転とか出来るようになったら、レンタセグウェイみたいな感じで使えるかも。日本でレンタサイクルがスケールしない原因の一つに、中国みたいに人海戦術で自転車の再配置するのが大変なところがあると思っているので、自動運転で勝手に再配置するようになれば、その問題はクリアできるのでは。

 

2日目に続く