【初学者向け】プログラミング未経験の文系卒がAI開発会社に入社するまでに勉強したこと

# はじめに
こんにちは！
株式会社エイアイ・フィールドの加藤と申します。
この記事は株式会社エイアイ・フィールドアドベントカレンダー2021の23日目の記事です。

今回はこれからデータサイエンティスト・機械学習エンジニアを目指したいと考えている方向けに
文系卒・プログラミング未経験者がAI開発会社に入社するまでに勉強してきたことをお伝えしたいと思います。

# 本記事の対象
・機械学習の勉強を始めたいが何から手を付ければいいのか分からない方
・本当に自分がデータサイエティストとして働くことができるのか不安に思っている方

# 学習開始前の自分のスペック
・年齢：27歳
・大学：文系卒（国際政治学科）簡単な統計（回帰分析）の経験はあり
・プログラミング経験：皆無
・前職：ITコンサルタント、WEBマーケター



# 学習期間
2021年6月～2021年10月（5ヶ月間）
※前職を5末に退社し、別で個人事業を営みながら並行して学習
※学習時間は1日5~6時間程


# 学習内容（時系列）
## 2021年6月
### 学習トピック：Python基礎、コンピュータサイエンス
この頃はプログラミングのプの字も分からず・・・。
手始めにPythonの基礎文法、コンピュータが動く仕組みを学ぶところからスタートしました。


### 教材リスト：
|No.| 教材名 | URL |
|:-:|:-|:-|
|1|現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル| https://www.udemy.com/course/python-beginner/|
|2|Progateの次に学ぶ！Python演習問題100問パック！〜データ型・制御構文編〜|https://www.udemy.com/course/python-exercise100/|
|3|CS50 for Japanese: コンピュータサイエンスの入門|https://cs50.jp/|
|4|キタミ式イラストIT塾 応用情報技術者|www.amazon.co.jp/dp/B082DW5WPS|



## 2021年7月
### 学習トピック：アルゴリズム・データ構造・数学基礎
Pythonを学んだことでプログラミングの楽しさに目覚めます。
この月はクイックソートをはじめとした各種アルゴリズム、データ構造を中心に学習を進めました。
競技プログラミングの問題を解いたり、とにかく楽しく勉強できていたのですが、アルゴリズムの学習は
データサイエンティスト・機械学習エンジニアを目指す上では必ずしも必要ではありません。
今思い返すと、少し遠回りをしてしまった印象です。
逆に微分積分などの数学基礎は必須なので、この時期に学んでおいて良かったと思っています。

### 教材リスト：
|No.| 教材名 | URL |
|:-:|:-|:-|
|1|現役シリコンバレーエンジニアが教えるアルゴリズム・データ構造・コーディングテスト入門|https://www.udemy.com/course/python-algo/|
|2|アルゴリズム図鑑 絵で見てわかる26のアルゴリズム|www.amazon.co.jp/dp/B07179Q3MJ|
|3|最強最速アルゴリズマー養成講座|https://www.itmedia.co.jp/keywords/algorithmer.html|
|4|AtCoder Beginners Selection|https://atcoder.jp/contests/abs|
|5|競プロ典型 90 問|https://atcoder.jp/contests/typical90|
|6|高校数学の基本問題|https://www.geisya.or.jp/~mwm48961/koukou/index_m.htm|
|7|データ分析のための統計学入門|http://www.kunitomo-lab.sakura.ne.jp/2021-3-3Open(S).pdf|
|8|AI・機械学習の数学入門|https://atmarkit.itmedia.co.jp/ait/subtop/features/di/mathematics_index.html|


## 2021年8月
### 学習トピック：WEBスクレイピング・機械学習
遠回りその②。WEBスクレイピングは本当にいらなかった…。
Pythonで色々できることを知り片っ端から試しているような時期でした。
この頃から機械学習についても本腰を入れて学び始めます。


### 教材リスト：
|No.| 教材名 | URL |
|:-:|:-|:-|
|1|Pythonによるビジネスに役立つWebスクレイピング|https://www.udemy.com/course/python-web-scraping-with-beautifulsoup-selenium-requests/|
|2|【世界で74万人が受講】基礎から理解し、Pythonで実装！機械学習26のアルゴリズムを理論と実践を通じてマスターしよう|https://www.udemy.com/course/ml-with-python/|
|3|Machine Learning A-Z™: Hands-On Python & R In Data Science|https://www.udemy.com/course/machinelearning/|
※No.2と3は同じ内容の日本語版/英語版です。英語に抵抗がなければNo.3をおすすめします。

## 2021年9月
### 学習トピック：機械学習・ネットワーク・アプリ開発
遠回りその③。転職活動に備えポートフォリオの準備をしようとアプリ開発の勉強に手を出しました。ただ、データサイエンス職でポートフォリオを求められることは非常に稀なので、学習は不要でした。結局ポートフォリオも作らず仕舞い…。

### 教材リスト：
|No.| 教材名 | URL |
|:-:|:-|:-|
|1|JDLA認定プログラム「ラビット★チャレンジ」|https://ai999.careers/rabbit/|
|2|「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか|www.amazon.co.jp/dp/4774142352|
|3|爆速で5つのPython Webアプリを開発|https://www.udemy.com/course/python-streamlit/|


## 2021年10月
### 学習トピック：機械学習・データ分析コンペ・SQL
ここにきて今更バイブル「ゼロから作るDeep Learning」を読了。
分かりやすさに感動すると共に学習初期に読んでおけばよかったと後悔しました。
この時期はこれまでの復習をしながらアウトプットを兼ねてデータ分析コンペに参加していました。

### 教材リスト：
|No.| 教材名 | URL |
|:-:|:-|:-|
|1|ゼロから作るDeep Learning①―Pythonで学ぶディープラーニングの理論と実装|www.amazon.co.jp/dp/4873117585|
|2|ゼロから作るDeep Learning②―自然言語処理編|www.amazon.co.jp/dp/4873118360|
|3|Kaggleで勝つデータ分析の技術|www.amazon.co.jp/dp/4297108437|
|4|はじめてのSQL ・データ分析入門 -データベースのデータをビジネスパーソンが現場で活用するためのSQL初心者向コース|https://www.udemy.com/course/standard-sql-for-beginners/|（）



以上、学習内容を時系列でご紹介しました。
この後、10月中旬から転職活動スタート、12月1日にエイアイ・フィールド入社となります。
※書類選考20社の内、通過が8社、内定をいただけたのは2社といった結果でした。



# まとめと振り返り
学習時間と教材にかかった金額は下記のとおりです。

総学習時間：570時間
金額：60,212円　※Udemy講座はセール時にまとめ買い、本はなるべく中古で購入しました。

## 反省点トップ3
以下、学習期間を振り返った反省点です。
### 1位：本筋と関係ない学習に時間を割きすぎた
アルゴリズム・WEBスクレイピング、アプリ製作等々、転職には必要のない学習に時間を使ってしまい非常に勿体ないことをしました。
（競技プログラミングは今も続けているので、いい趣味を持てたとは思っています。）

### 2位：SQLをもっと学んでおけば良かった
データサイエンティストの実務ではPythonと同じくらいSQLの使用頻度も高いです。
※機械学習エンジニアは別
実際、転職時の書類選考でもSQLの学習内容が浅いことで落とされる場面もありました。

### 3位：転職時期を明確に定めてスケジュールを立てるべきだった
これは転職活動に対する反省でもあります。
私は2021年10月中旬頃から転職活動をはじめましたが、あらかじめ転職時期を決めていたわけではありません。
一通り学習し終えたのでそろそろ就職するか～といったノリでした。

その結果、夏に空いていたポジションが締め切られていたり、内定をいただいても入社日は来年になるなどなるべく早く働きたかった自分としては芳しくない状況を経験することになります。

運良く内定をいただき、12月から働くことができたものの、もう少し計画的に行動すれば良かったなと思っています。
転職時期を決めてスケジュールを立てていれば、余計な学習に時間を割くこともなかったかな。


# さいごに
今回はプログラミング未経験の文系卒がAI開発会社に入社するまでに勉強したことをご紹介しました。

実際に働きはじめた感想ですが、入社して3週間、自分の無力さを痛感させられる毎日を送っています。
社内会議で発言できるほどの知識もなく、やりたいことはあるものの、それをどう実現するか見当がつきません。
机上の勉強と実務の間に立ちふさがる、高くて厚い壁をよじよじ登りはじめたところです。

転職前の事前学習ではスタートラインにも立てていなかったんだなぁと実感しています。
ちょっとできる気になっていた自分が恥ずかしいです。

学習はあくまで学習。
一刻も早く終わらせて、実務経験を積むのがエンジニアとして成長するための唯一の道だと思います。

一方、AI職の人気の高まりに伴い、実務経験を積むためのハードルも年々上がってきています。
特に文系やプログラミング未経験者は採用する側からしても過去の実績からポテンシャルの測りようがないので、計画的に学習し、知識をアピールすることでしかチャンスを掴めません。

この記事の内容が少しでもお役に立てていれば幸甚です。

お読みいただきありがとうございました。