Pythonは人気のプログラミング言語の一つです。
プログラミングの初心者であれば、はじめての言語にPythonを選ぶ人も多いと思います。
インターネットでPythonを調べると、Web開発にも使えるし、ゲーム開発にも使えるから万能という記事をちらほら見かけます。
確かに何でもできるので、これは間違っていません。DjangoやFlask等のWebフレームワークを使えばWebアプリケーションも作れますし、PyGame等のライブラリを使用すればゲーム開発もできます。
ですが、実際にこの技術を勉強して職にありつけるかは別の話です。
趣味でプログラミングを勉強するのであれば、Pythonやりたいからと理由で取り敢えずやってみるのもいいでしょう。
ですが、勉強し、そのスキルを持ってエンジニア等になりたいと考えているのであれば、Pythonを学んだその先に自分が何をやりたいのかを明確にすることが必要だと思います。
Pythonを勉強すると何になれるの?
Pythonを学んだ先にあるもの、それは機械学習エンジニアかAIエンジニアです。
AIは数年前からホットなワードですが、このAI技術のベースになっているものが機械学習と呼ばれるもので、Pythonは機械学習の分野に強みを持ったプログラミング言語です。
なので、AIエンジニアや機械学習エンジニアになりたいと思っている方であれば、Pythonを初めての言語として選択するのは一番ベストな選択です。
逆にWebサイトを作りたいとか、ゲームを作りたいと思っている方には僕だったらPythonは勧めません。
何故なら、Webサイト制作はPHP,Ruby,Javascript等のプログラミング言語が主流ですし、ゲーム開発であればSwiftやJava、C#(Unity)を学んだ方が最速で自分の目標に到達できると思うからです。
プログラミング初心者のPython学習の進め方
さて、実際にPythonを学ぼうと決意したプログラミング初心者の方、ここからはPythonでのプログラミング学習の進め方を解説します。
まず、Python自体の勉強はプログラミング初心者でも難易度はそこまで高く無いかと思いますので安心して下さい。PHP等のWeb系の言語と難易度は同じくらいだと個人的には思います。
学び方は自分で本を買って学ぶか、もしくはProgate等のオンラインサービスを利用するのがオススメです。
Python初心者にオススメの本
プログラミング超初心者が初心者になるためのPython入門(1)
こちらの本はプログラミング超初歩的向けです。また、250円という破格値なので、お財布事情を気にせず買えるのもいいですね。
Pythonのバージョンは2系なので注意が必要ですが、プログラミングとはどんなもの?という部分から学ぶのであれば、バージョンが2系なのか3系なのかはあまり気にしなくて良いかと思います。
Python初心者にオススメのオンライン教材
Progate
Pythonをブラウザ上で動かしながら学びます。全部で5コースあり、全て無料で受講可能です。
PyQ
プログラミングの基礎から、機械学習までを網羅して学べます。Progateと同じくブラウザ上で動かしながら学べます。
個人用のプランとしては月額2980円のライトプランと、月額7980円のスタンダードプランがあります。
スタンダードプランでは、ライトプランのサービスに加え、PyQ上でプロに質問できるサービスとPyQに投稿された過去質問が閲覧できるサービスが利用できます。
Udemy
動画を通してプログラミングを学んでいくスタイルです。下記のコース以外にも探せば色々なコースがあるので、自分にあったコースを探してみるのも良いかもしれません。
→Udemyの「プログラミング言語 Python 3 入門」の詳細はこちら
Progateは無料なので取りえずやってみると良いと思います。それで、どうしても学習が進められないと感じる方は、プロに質問できるPyQもしくは動画で受講できるUdemy、どちらか自分に合ったほうを選びましょう。
Pythonの基礎学習後、機械学習の勉強を始めよう
Pythonの基礎学習が終わったら、次にいよいよ機械学習の勉強を始めるましょう。
「機械学習とは?」の疑問には下記の説明が分かりやすかったので抜粋します。
機械学習とは、コンピューターがデータから反復的に学習し、そこに潜むパターンを見つけ出すことです。そして学習した結果を新たなデータにあてはめることで、パターンにしたがって将来を予測することができます。人手によるプログラミングで実装していたアルゴリズムを、大量のデータから自動的に構築可能になるため、さまざまな分野で応用されています。
https://www.sas.com/ja_jp/insights/analytics/machine-learning.html
上記を画像で表すと下記のようなイメージです。

上記図の一番左にあるのはMNISTと呼ばれる手書き文字を集めたデータなんですが、機械学習を学んでると色々なところで目にする機会があると思います。
Googleの機械学習のフレームワークであるTensorFlowのチュートリアルでも昔使われていましたが、今はファッションアイテムの画像を使ったチュートリアルに変わっているみたいです。
TensorFlowのチュートリアル
https://www.tensorflow.org/tutorials/keras/basic_classification
この内部のメカニズムを知ることが機械学習エンジニアは必要になってきます。
機械学習勉強者の為のおすすめ教材
次に、機械学習の勉強者の為のおすすめ教材について紹介します。独学タイプとスクールタイプに分けて紹介します。
独学タイプにオススメのWebサイト、書籍
まずはWebサイトと書籍を紹介します。
やる夫で学ぶ機械学習
やる夫で学ぶシリーズの機械学習版です。僕も最初はやる夫のお世話になりました。
ゼロから作るDeepLearning
PythonでDeepLearningの基礎が学べます。これはめちゃくちゃオススメです。
scikit-learnとTensorFlowによる実践機械学習
実戦形式で色々な機械学習の手法が学べます。機械学習の基礎を学んだ後、いざ実践したいって時に役に立つ本です。
独学タイプにオススメのオンライン教材
次にオンライン教材を紹介します。
Coursera
Courseraとは世界の大学の講義をオンラインで受講できるサービスになります。
このCourseraのMachineLearningコースは機械学習の初学者に分かりやすいと評判です。また、このコースは無料ですので、無料で世界最高峰の講義を受けれるんだから受けない選択肢は無いと思います。
音声は英語ですが、有志が日本語訳をしてくれているので、日本語字幕で見ることが出来ます。たまに変な日本語訳がありますが、全然理解できるレベルです。
言語はPythonではなく、Octaveという機械学習用の言語を使用しているんですが、Pythonを学んだ方ならそこまで抵抗なく使えると思います。
機械学習とは?という部分から、有名な機械学習手法について学べます。
あとは、何と言ってもこのコースの講師である、Andrew Ng先生が励ましながら講義を進めてくれるので、挫折しそうになっても、もう少し頑張ってみようかなって気にさせられます!
→CourseraのMachineLearningコースの詳細はこちら
PyQ
Pythonの基礎学習でも紹介したPyQです。繰り返しになりますが、機械学習まで一貫して学べます。
Udemy
Pythonの基礎学習でも紹介したUdemyですが、機械学習の動画教材もあります。下記以外にも色々あるので、自分が好きな動画を探してみましょう。
→Udemyの「みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習」の詳細はこちら
アウトプットできるサイト
機械学習はアウトプットしていかないと、自分がどれだけ理解できているのか不安になってきます。自分の場合はKaggleを使用して、アウトプットしていました。
Kaggle
Kaggleは英語ですが、同じ問題を色々な人が解いているので、その手法を見ることができ勉強になります。
僕が勉強していた当時はUdemyの機械学習やPyQはまだ無かったので、まずは、やる夫で学ぶ機械学習、ゼロから作るDeepLearningを読み、次にCoursera、そして最後に実践用の書籍を用いながらKaggleでアウトプットと言う順番で学びを進めました。
でも、今だとクオリティの高い教材が色々あるので、PyQやUdemyから入るのが良いかと思います。
ただ、いくら教材が良いとは言え、機械学習を独学で学ぶのは結構ハードル高いのが現実です。何故なら、プログラミングの知識のみならず、数学・統計の知識も必要になってくるからです。
なので、独学でやってみて挫折しそうな人は、メンター付きでモチベーションを維持しながら学べるプログラミングスクールという選択肢もありますので紹介します。
機械学習が学べるプログラミングスクール
Aidemy(アイデミー)
完全オンラインのAIに特価したプログラミングスクールです。
Tech Boost(テックブースト)
教室・オンラインどちらでも受講可能です。機械学習以外にも、Web系、ブロックチェーンが学べるようです。
DIVE INTO CODE
機械学習エンジニアコースはオンラインでの受講はできないようですので、教室に行く必要がありそうです。
ですが、メンターのレベルが総じて高い印象を受けましたし、コースも実際に業務で使える実践レベルまで網羅しているので、卒業する頃には相当な技術力になっていると思います。
まとめ
Pythonは機械学習と合わせることで強力なプログラミング言語になります。
機械学習はプログラミングのスキルに加えて、数学、統計の知識が必要ですので学習を進めるのは簡単ではないです。ですが、その分まだまだ技術者が足りていないので、スキルとして身につけてしまえば、他の技術者と差をつけられると思います。
そのためには、自分に合った学習方法を見つけて、挫折しないように学習を進めていきましょう。