Python 初心者からMLまでの勉強path（自分用）

とりあえず今流行りのPythonで機械学習を勉強したいので、自分がどのような過程で勉強していくのかの備忘録。

-- 筆者について-- 
• アメリカの大学で Computer Science を去年専攻し始めた者

• 専攻を変えるまで、一度もターミナル (Mac愛好者) を使ったことのないヒヨコの中のヒヨコ

• 現在はなんとか　C++　でアルゴリズムなどを諸々勉強中

• 夏休みを利用して　サマークラス、バイト、リサーチアシスタントと色々ぶっこんだため、pythonのお勉強時間は夜か週末のみ(汗

• 教授に「早く自分がCSのどの分野を勉強したいか決めなきゃヤバイぞ」言われて焦り中

• 前学期、大学で　Intro to Python を　electives として取ったものの、いきなりGomoku AI を課題として作れと言われてそこから機械学習に興味を持ち始めた。

以下の過程はロングランを予定しているので、期間は無期限だがとりあえず早く終わらせるようにfanが燃え焦げる勢いで頑張る。

# *注意
•　私の使っている本は日本では手に入らない可能性あり
•　リソースは、ほぼ全て英語で書かれている
•　備忘ログなので、説明とか、そこらへんは適当
•　私がこの過程で勉強しているだけであって、読者様に合う合わないや、リソースの良し悪しはとりあえず気にしない
• 間違えだらけかもしれないが、その辺はご了承を


## Python 勉強に使っている本、リソース##

1. MITx: 6.00. 1x "Introduction to Computer Science" -[https://www.edx.org](https://www.edx.org/)
    - 初心者むけだけど、結構むずい？
    - Online Resource
    - 有名大学の授業がフリーで受けられる
    - 6.00. 2x Introduction to Computational Thinking and Data Science　コースをこの間終了。
    - **現在は　coursera の machine learning コースを受講中。**

2. ['Python Crash Course: A Hands-On, Project-Based Introduction to Programming' by Eric Matthes](http://a.co/eHr1LzA)
    - 表紙の蛇が目印
    - とりあえず初めに読んだ
    - **実践編放置中…**
    - 初心者におすすめ

3. 'Python Programming: An Introduction to Computer Science, 3rd Ed' by John Zelle
    - 同じくイントロ本
    - 買ったものの読んでないけれど参考書程度にちらほら読むつもり
    - レビュー的に良さげだった
 
    

## 数学　
- Calculus 2, linear algebra, applied stats はとったものの忘れかけているのでMLのためにも高校数学らへんから勉強し直す
- とは言ったものの、全部を覚えるのは無理ゲーなので、とりあえず高校数学はパラっと読んでだいたい理解し、微分積分や統計学にフォーカス
- あまりの意味不明さに、自信無くしそうなのでとりあえずは、この公式でこーんなときに使ってこーんな感じに解くのね、ぐらいの軽さでやっていく
- 数学公式集などが乗ってるサイトはファボる

- 自分的に学んだ方がいいだろうリスト（⭐️= 優先して勉強するべきと思う項目）
    - Linear Algebra⭐️ **(勉強中…）**
    - Probability Theory & Stats⭐️　**(勉強中…）**
    - Multivariate Calc⭐️
    - Algorithm and Complexity⭐️ (学校がC++で教えているので...)
    - Signal Processing
    - Optimization Theory
    - その他諸々（追加予定）
    
1. やさしい高校数学 by きさらぎ　ひろし
    - とりあえず手元にあったから
    - わかりやすいと思う
    - 数II しかないため、そこから勉強中
  
2. [MIT linear algebra](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/)⭐️
    - 口コミで素晴らしい講座らしい
    - 日本語で言う、線形代数（多分）
    

3. Essential Calculus: James Stewart
    - 大学の授業で買った本、つまり教科書
    - 青い表紙の目印
    - 値段馬鹿高い
    - とりあえず微分積分
    - ぶっちゃけ長すぎて公式とか例を参考にしたい時のみ
   
4. [Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-to-frontiers) by UTAustinX from edx
**(受講中)**

• octavia や matlab を使う

5. 'Essential Math for Machine Learning: Python Edition' by Microsoft from https://edx.org

*他は随時追加していく

##アルゴリズムとか忘れちゃった！てへぺろな時
1. [Problem Solving with Algorithms and Data Structures using Python](http://interactivepython.org/courselib/static/pythonds/index.html)
    - 英語だけど分かりやすいネ
    - グラフとかのDFS, BFSとか忘れるんで助かる。



## Machine Learning
1. [Awesome machine learning] (https://github.com/josephmisiti/awesome-machine-learning) by josephmisiti
    - リソースの塊
    
2. [numpy practice](https://github.com/rougier/numpy-100)
3. [hands on machine learning](https://github.com/ageron/handson-ml)⭐️
4. [machine learning by Andrew Ng] (https://www.coursera.org/learn/machine-learning/home/welcome)⭐️
    - 凄いらしい
    - 現在9週目。一気にやるのがおすすめ
    - 初めに取るべきクラス
    
5. [ML from edx course](https://www.edx.org/course/machine-learning-columbiax-csmm-102x-3)
6. [Machine Learning Fundamentals](https://courses.edx.org/courses/course-v1:UCSanDiegoX+DS220x+1T2018/course/) by UCSanDiego from edx
7. 'Machine Learning with Python: From Linear Models to Deep Learning' by MITx -  6.86x⭐️
8. 'Principles of Machine Learning: Python Edition' by microsoft from edx
9. [Google ML crash course](https://techdevguide.withgoogle.com/paths/machine-learning/featured/ml-crash-course#!)
  
買った本達：
- [Deep Learning with Python](http://a.co/9ZAJgFm) by Francois Chollet 
- [Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems](http://a.co/ayeAoGh)

本などは多分pdfバージョンが見つかるかもしれない

## Data Science 
のちに追加

    
## Python tutorial from YouTube（全部英語）
- [Corey Schafer](https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g)⭐️
    - 勝手にpythonの師匠と呼ばせてもらっている
    - 教え方がうまい
    - tutorial いっぱい
    - もっぱらわからない時や、暇な時は、この人のtutorial見てる
    
- [sentdex] (https://www.youtube.com/user/sentdex)

- [thenewboston](https://www.youtube.com/user/thenewboston)
    - 大先生と勝手に呼んでいる
    - tutorial いっぱい
    
- [CS dojo](https://www.youtube.com/channel/UCxX9wt5FWQUAAz4UrysqK9A)
    - 日本人の方（英語で教えているけれども）
    - 初心者向け？
    - google インタビューの質問とかkwsk説明してくれるよ
    - モチベ上がるよ


- [derek banas](https://www.youtube.com/channel/UCwRXb5dUK4cvsHbx-rGzSgw)

- その他
   

## その他のよく使うリソース
- [geek for geeks](https://www.geeksforgeeks.org/)
- [medium](https://medium.com/)
    - テック系の記事多めで神
    - 暇な時読む
- [stack overflow](https://stackoverflow.com/)
- [Qiita](https://qiita.com/)（言わずもがな）
- [GitHub](https://github.com/)
- ググる 
    - ほぼこれ
- [edx.org](https://www.edx.org/)
- [coursera](https://www.coursera.org/)
- [real python](https://realpython.com/)


## コーディング練習
•１日に最低1個は解く
• 解き終えたら他人の解答見て勉強
• 解けたら自分を褒める（やる気長持ち）
- [code byte](https://coderbyte.com/)
- [code wars](https://www.codewars.com/)
- [code signal](https://codesignal.com/) ⭐️　→問題がたまに意味不明
- [code chef](https://www.codechef.com/)
- [leet code](https://leetcode.com/)
- [career cup](https://careercup.com/)


# links 
• [機械学習エンジニアに必要なスキル](https://avinton.com/academy/machine-learning-engineer-skills-required-ja/)
• [機械学習をマスターしたいと思ったときのケース別学習法] (https://geechs-magazine.com/tag/lifehack/20161121_2)

もし、これがおすすめなんて本や、サイトがありましたら教えてくださると大変助かります。
ぶっちゃけ機械学習系のチュートリアルとか本とか多すぎて、どっからて始めればいいのか不明なのが正直な本音