“PythonでAIとかディープラーニングが出来るらしい。”
そんな軽い気持ちでPythonに興味をもった私ですが、文系大卒の広告運用者でエンジニアとは若干遠い仕事をしており、pythonでやりたい事など具体的な目標はありませんでした。
モチベーションを上げる為にも、以下3点をまずクリアーにする必要がありました。
①Pythonを学ぶことで何が出来る様になるのか。
②他のプログラミング言語と何が違うのか。
③そもそも、どうやって勉強すれば良いのか。
①、②に関しては検索すればなんとなくわかった様な気になりますが、具体的にイメージすることはできません。
独学の過程でPythonへの理解を深めることで、何が出来るのかが見えてきます。
そこで、今回は③にフォーカスして、”知識ゼロ。なんとなくPythonってカッコいい”状態の私が、Pythonで何が出来るのか理解し、ちょっとづつ業務に使える様になっていくまでの学習過程を記載していきます。
独学の過程で様々なサイトや入門本を活用しておりますので、昔の私と同じ状態の方には参考になると思います。
“Pythonって結構簡単な言語なんでしょ。HTML&CSSはわかるし余裕っしょ。”最初はそんな軽い気持ちでした。
この状態で学習をはじめた私は、ある時、急にモチベーションが消え挫折しました。
原因は分かっています。Pythonで出来ると言われている事と、長かった入門期に出来る事のギャップが大きすぎるからです。
まず、ざっとGoogle先生が「Python できること」で教えてくれた理想郷を簡単に並べていきます。
1.機械学習・ディープラーニング
データを食べさせる事でそのパターンやルールの発見や学習が可能。
画像認識や自動翻訳などができる様になる。
バナー等のクリエイティブを自動で作る仕組みが作れそうだ…
2.アプリ開発
InstagramやDropbox、YouTubeはPythonを用いて開発されている。
デスクトップアプリやスマホアプリの制作も可能。
…アプリ開発もできるならPythonなんでもできるじゃん。
3.スクレイピング
プログラムに膨大なWebサイトの情報を取得・加工させる事が可能。
ポータルサイトから営業リストを作成したり、競合サイトの順位を取得してきたりできそうだ。
4.人工知能(AI)開発
抽象的なワードですが、人工知能(AI)の定義の中には機械学習やディープラーニングも含まれます。
ざっくり言うと、人間の知的活動をプログラムが行える様になります。
なんか凄いもの開発できそう…
5.データ処理
エクセルやCSVデータ、データベースの処理をプログラムが短時間で行う。
業務効率化で役立ちそう!
Pythonを学習してしまえば、最先端の技術を扱える様になる事がなんとなく分かるかと思います。
しかし、現時点で全部できる様になるには、紆余曲折もあり途方もない時間がかかると言う事が分かりました。
後述する無料・有料Webサービス、書籍、動画講義、YouTubeを利用してみて約半年程経ちますが、現在できる事と言えば、3.スクレイピング、5.データ処理程度です。
ここまでできる様になってやっと、学習のコツをなんとなく掴む事が出来、現在行っている作業の課題からトップダウンで何を学んでいけば良いか具体的にイメージすることもできる様になりました。
入門書籍、利用サービスの選定や学習に対するマインドセットをしっかり準備しておかないと、いくつかのギャップに直面した際挫折してしまいます。
学習開始当初はPythonを学習する目的が明確でなかった為、様々な書籍を購入しました。
WebサービスやYouTubeも活用して非常に遠い回り道をしてしまった印象です。
また、毎日1時間はデスクに座ってPythonを弄ると言うルールを決めたのですが、それも上手く機能しませんでした。
理由はタイトルの通り、マインドセットが出来ていなかった事、Pythonを学習する目的を抽象的にも設定しなかった事にあると思います。
前述した通り、毎日Pythonのコードを書いていればいつかPythonでできる事が増えていくだろうと考え、毎日最低1時間Pythonを触る時間を作りました。
と言うのも、中学・高校と毎日英語の本1ページを3回音読すると言うタスクを自分に課して、気付いたらTOEICで良い点を取れる様になっていたと言う体験があったからです。
種類の違う入門書を2冊、学習サービスを2つメインで使用し、分からない箇所があれば理解できるまで他の書籍の参考箇所を探すと言った作業を行っていました。
これが、間違いだと後から気付くのでした。
100%理解しないと次に進みたくない性分で、理解出来ない箇所があれば一つ戻ってまた学習してみる。と言う進め方では、同じ箇所を何度も何冊も調べる必要があるので時間効率が悪く、進展が遅い為モチベーションを維持することも難しいです。
また、外部モジュールを扱う段階に入ると、そのコードへの理解が追いつかなくなり挫折します。と言うか、私はしました。
例えば以下です。
import pandas as pd df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], index=['one', 'two', 'three'], columns=['a', 'b', 'c'])
あー、なるほど。pandasをpdとしてインポートして……は?
なんかグラフ出来たけど、変数dfにpandasのDataFrameクラスのインスタンスを生成して、、、なんで[[]]なんだ??なんで、引数にindexとかcolumnsとか入ってるんだ??
よし、クラスに関してもっと詳しく書いてある書籍を探そう!
となっちゃう訳です。
そこで、私が出した結論としては、
基礎(関数・クラスまで)はしっかりやってもOK!
あとは体系的に(このコードを書けばこう動くと)理解する。
今まで使ってきた教材の中から、”これはやって良かった。”と思う教材を紹介していきます。
プログラミングって何?は?と言う状態でPythonを学習する際に非常に役立ちました。
“ふりがなプログラミング”と言うだけあり、Pythonのコードを英単語の様な形で理解していく事が可能です。
以下1ページを抜粋しています。
パイソンのインストールやIDLEの使い方から、ライブラリの使い方まで非常にわかりやすく記述してくれているのでPythonの基礎を体系的に理解する事が出来ました。
後述する、Progateと一緒にこちらを使う事でお互い理解出来ない部分を補完し合ってくれました。
Amazonに「GUIオートメーションにはこういうライブラリがあり、基本的にこうやって使う”程度の説明なら、ライブラリのチュートリアルを見たほうが良い。」と言う口コミがあり、購入をためらいました。
しかし、私はまだ入門段階で、チュートリアルに記載してある事全てを完璧に理解出来るレベルに無く購入に踏み切りました。
買ってみて良かったと思う部分は、「スラスラ読めるPythonふりがなプログラミング」よりも踏み込んだ基礎を学習する事が出来た事と、本書のおかげでJupyter notebookを使いはじめた事です。
特に良かった点は、エクセルやCSVの処理、スクレイピング、画像の操作など、実業務にも生かせるプログラムを実際に作れる様になった事です。
本書に記載していないライブラリを使った方が勝手が良いと言うこともありましたが、体系的にPythonの用途を理解する事に役立ちました。
良い教材だとは思うのですが、私には合いませんでした。
ジャンケンゲームやタイピングゲームをPythonで作っていくのですが、途中からコードの解説が省略(?)される様になり読了出来ませんでした。
結構長い事コードが書いてあるので、入門者向けにもう少し詳しくコードの意味を解説して欲しいと思います。
コードの意味とか細かく理解しなくていいから、PythonでGUI(画面上)で何か動かしてみたい方や、自分でライブラリのチュートリアルを読みつつ進められる方はおすすめです!
※そもそも、私はPythonでゲームを作りたいと言う願望が無かったのがリタイアの原因かもしれません。
Pythonに入門したての頃に、前述の「スラスラ読めるPythonふりがなプログラミング」と後述するProgateと共に使用していました。
犬ちゃん(?)とやぎ先生(?)の対話形式で3章までは非常に分かりやすく、この調子だと4章の”アプリを作ってみよう”も全然イケるだろうと言う期待を見事に裏切られました。
マインドセットが出来ていなかった為、4章以降の急激な難易度高騰についていけず読了出来ませんでした。
また、入門の部分においては、「スラスラ読めるPythonふりがなプログラミング」や「退屈なことはPythonにやらせよう」に濃さが劣るので、この2冊で全然事足りる印象です。
個人的には2冊目以降に購入する価値は無いと思います。
ノープログラマーからPythonを学習するなら、Progate一択と言って良いと思います。
Progateは教科書を見つつコードをブラウザ上で記述・実行できる為、まずぶち当たる壁である開発環境の構築が必要ありません。
コンテンツは全5章からなっており、Pythonの基礎を抑えて学習した内容をジャンケンゲーム制作や買い物システムの構築と言う形でアウトプットできる為知識として身につけやすい環境が整っています。
有料会員(月額1,000円程度)に登録すると、疑問点をチューターに質問できる点も良かったです。
Pythonの学習のみなら、ひと月で余裕を持って終われますし、2章くらいまでは無料開放されているので実質1,000円ちょっとでチューター付き、Pythonの基礎を抑えられると考えると高コスパだと思います。
私はアウトプットできる教材として、Progateを。インプット要因として「Pythonふりがなプログラミング」を活用しました。
【Python入門】初心者でも簡単にできるじゃんけんゲームの作り方 はProgateと「Pythonふりがなプログラミング」を参考に作成しました。
※Saas型教材なので、学習後は登録解除を忘れない様にしましょう!
PyQも教科書を見つつコードをブラウザ上で記述・実行できる為、環境開発は必要ありません。
教材も多く、1つ1つのコンテンツ内容もかなり濃いものとなっているのですが、月額3,040円と割高の印象です。
だらだらと1年間やっていたら35,000円オーバーしてしまいます。
入門者が機械学習をできる様になるまで教材が揃っていますが、内容は少し難しめの印象で、ある程度事前に知識をつけてから開始しないと理解に時間がかかり費用がかさんでしまいます。
ただし、各コンテンツで本当に詳しくコードを解説されている為、
まずは前述した書籍や、Progate、後述するUdemyで事前に知識をつけ、知識を深めたい部分を発見する事。
そして、一度10日間の無料体験を行い、学習期間を設定してからPyQに取り組む事をおすすめします。
買い切りで動画コンテンツを購入できるプラットフォームです。
セール時に購入する事で、安価に有名で分かりやすい講師の授業をうける事が出来ます。
自分の進展やセール日に合わせて、講座を購入する事で効率よく学習を進める事が出来ました。
因みに私は以下講座を購入ずみです。
はじめてのPython3。経験0からGUIアプリケーションを作れるまでの基礎力を!
ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】
本来数万円する講座だけあり、ボリュームがあります。
また、「はじめてのPython3。経験0からGUIアプリケーションを作れるまでの基礎力を!」はPyQの初心者コースあたりまでは網羅されている印象です。
機械学習講座をメインに展開しているキカガクの元講師いまにゅー(今西航平)さんのYouTubeチャンネルです。
中学生でもわかるPython入門では、Pythonの基礎をとにかく分かりやすく説明してくれています。
正直、この動画を見ておけば先述した入門本は購入する必要が無かったかなーと思うほどの内容となっています。
また、Python活用シリーズではライブラリの触りが簡単に説明されており、ぐるなびAPIを使ってスクレイピングを行う等具体的なアウトプットをする事が可能です。
尚、私がUdemyで購入した「PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】」も今西さんが講師をしています。
Pandasの入門でお世話になりました。
キノコードさんはコードの説明が若干分かりづらい印象なので、自分でライブラリのチュートリアルがある程度理解できる様になってからご覧いただく事をおすすめします。
特にアウトプットを中心に講座を展開していらっしゃるので、このあたりからPythonを書く楽しさを実感しはじめました。
【Pandas入門】データフレームのインデックスやカラム操作方法メモ はキノコードさんのチャンネルを参考に、足りない部分を自身で調べたメモとなっています。
想像していたよりボリューミーな内容となってしました。
個人的にはProgateや書籍「スラスラ読めるPythonふりがなプログラミング」、いまにゅさんの中学生でもわかるPython入門あたりでPythonの基礎を抑えられたら、
キノコードさんのチャンネルや書籍「退屈なことはPythonにやらせよう」を用いて実際に役立つシステムを体系的にアウトプットしつつ、理解を深める為にPyQを使うといった感じで進めれば最短で進められたなぁ、と言う印象です。
最近やっと、pandasやnumpy、BeautifulSoupを用いてもっとータ分析を行ってみたい。データを使ってディープラーニングで未来を予測したい、という自分の目的も定まってきました。
今後は学習スピードアップの為(本音を言うと数学が苦手な為)スクールに通うことも検討しています。