プログラミング

プログラミング初心者だけどPythonを学ぶべき?学ぶべき人とオススメの学習法について

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コースあり、全て無料で受講可能です。

→Progateの詳細はこちら

PyQ

プログラミングの基礎から、機械学習までを網羅して学べます。Progateと同じくブラウザ上で動かしながら学べます。

個人用のプランとしては月額2980円のライトプランと、月額7980円のスタンダードプランがあります。

スタンダードプランでは、ライトプランのサービスに加え、PyQ上でプロに質問できるサービス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です。繰り返しになりますが、機械学習まで一貫して学べます。

→PyQの詳細はこちら

Udemy

Pythonの基礎学習でも紹介したUdemyですが、機械学習の動画教材もあります。下記以外にも色々あるので、自分が好きな動画を探してみましょう。

→Udemyの「みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習」の詳細はこちら

アウトプットできるサイト

機械学習はアウトプットしていかないと、自分がどれだけ理解できているのか不安になってきます。自分の場合はKaggleを使用して、アウトプットしていました。

Kaggle

Kaggleは英語ですが、同じ問題を色々な人が解いているので、その手法を見ることができ勉強になります。

→Kaggleの詳細はこちら

僕が勉強していた当時はUdemyの機械学習やPyQはまだ無かったので、まずは、やる夫で学ぶ機械学習ゼロから作るDeepLearningを読み、次にCoursera、そして最後に実践用の書籍を用いながらKaggleでアウトプットと言う順番で学びを進めました。

でも、今だとクオリティの高い教材が色々あるので、PyQUdemyから入るのが良いかと思います。

ただ、いくら教材が良いとは言え、機械学習を独学で学ぶのは結構ハードル高いのが現実です。何故なら、プログラミングの知識のみならず、数学・統計の知識も必要になってくるからです。

なので、独学でやってみて挫折しそうな人は、メンター付きでモチベーションを維持しながら学べるプログラミングスクールという選択肢もありますので紹介します。

機械学習が学べるプログラミングスクール

Aidemy(アイデミー)

完全オンラインのAIに特価したプログラミングスクールです。

→Aidemyの詳細はこちら

Tech Boost(テックブースト)

教室・オンラインどちらでも受講可能です。機械学習以外にも、Web系、ブロックチェーンが学べるようです。

→Tech Boostの詳細はこちら

DIVE INTO CODE

機械学習エンジニアコースはオンラインでの受講はできないようですので、教室に行く必要がありそうです。

ですが、メンターのレベルが総じて高い印象を受けましたし、コースも実際に業務で使える実践レベルまで網羅しているので、卒業する頃には相当な技術力になっていると思います。

→DIVE INTO CODEの詳細はこちら

まとめ

Pythonは機械学習と合わせることで強力なプログラミング言語になります。

機械学習はプログラミングのスキルに加えて、数学、統計の知識が必要ですので学習を進めるのは簡単ではないです。ですが、その分まだまだ技術者が足りていないので、スキルとして身につけてしまえば、他の技術者と差をつけられると思います。

そのためには、自分に合った学習方法を見つけて、挫折しないように学習を進めていきましょう。