近年、デジタルを活用したさまざまなテクノロジーが急速に発展するだけでなく、身近な生活で実用されるようになってきています。そのなかでも、AI(人工知能)やディープラーニングといった分野は非常に注目されていますが、これらを支えているプログラミング言語のひとつがPythonです。
今回は、特にこれからPythonを学びたい初心者におすすめの本や参考書をご紹介します。
そもそも、Pythonとは?
Pythonは数あるプログラミング言語のひとつですが、他の言語と比較してシンプルな書き方でプログラミング初心者でも習得しやすい言語です。少ないコードで分かりやすい構造となっており、プログラミング教育でもよく使われています。
分野としては、やはりAI(人工知能)に強く、さまざまなライブラリが揃っています。もちろん、AIやディープラーニング等だけではなく、Web開発等にもPythonは用いられています。
Pythonが使用されている身近な例:ダイナミックプライシング
AIやディープラーニングというと、少し難しいイメージがあるかもしれませんが、今や身近な生活のさまざまな場面で活用されています。このブログはスポーツビジネスがメインテーマなので、チケット価格に適用されることが増えている「ダイナミックプライシング」を例に挙げます。
ダイナミックプライシングは、従来のようにスタジアムの座席をいくつかのランクに分け、一律の値段を設定するのではなく、在庫の状況や曜日、対戦チームなどさまざまな要素を踏まえたうえで最適な価格をリアルタイムで算出し、ファンに提示します。もっと抽象化すると「需要」と「供給」のそれぞれに影響しうる要素とそのデータを基に、需要が逼迫しそうであれば価格を上げ、チケットが余りそうであれば価格を下げるという仕組みです。ホテルや航空券をイメージするとより分かりやすいでしょう。
とはいっても、活用が始まったばかりのスポーツの分野で、ホテルや航空券以上に変数が多いのもあり、すぐに適性な価格を安定して提供できるとは限りません。そこで、データに基づく予測と実績の差分をAIが機械学習していきながら、ダイナミックプライシングの精度を高めていきます。
この文脈でいえば、ダイナミックプライシングによる価格の算出や、機械学習においてPythonが活躍しているといえます。
Pythonが使用されている身近な例:ドライバー配車サービス
従来のタクシー業界の常識を覆したUberの配車サービスのアルゴリズムにPythonが使われているとされています。Uberは、簡単にいえばあるA地点からB地点に移動したい人と、空き時間で自家用車などで送迎しお金を稼ぎたいドライバーをマッチングするサービスです。乗客のリクエストと各ドライバーの現在位置などから最適なマッチングを行いますが、最初から精度が高かったわけではありません。サービスが広く利用され配車実績などのデータが蓄積されることで、Pythonを活用したディープラーニングが効果を発揮し、マッチングの精度が上がっています。日本では規制などもありタクシーとしてのUberよりはUber Eatsが認知されていますが、このサービスの配車でもPythonのライブラリが活躍していると推測できます。
なぜ、Pythonを勉強するとよいのか
初心者としてPythonを学ぶメリットをご紹介しますが、基本的にはJavaの記事でJavaをおすすめした理由と本質は同じです。
シンプルに、Pythonを使ったWebサービスや、Pythonが強みを持つAIやディープラーニングに関連したビジネスが増加している、というのが大きな理由です。つまり、Pythonを習得することで、エンジニアとして対応できる案件が多くなります。
また、これはJavaとは異なる点ですが、Javaと比較するとまだまだ普及し始めている段階でもあり、Pythonのプロフェッショナルが比較的少なく、習得できればエンジニアとしての希少価値が上がることも期待できます。
Python初心者におすすめの学習法
この記事にたどり着いてくれている方のなかには、これからPythonの学習を始めたい方も多いでしょう。さらには、プログラミング自体が初めて、という方もいるかもしれません。
私のエンジニアとしての経験(最初はJavaでした)をもとに、初心者におすすめの勉強法を挙げるとすると、やはり本を読み進めるだけでなく、少しでいいので同時並行で「アウトプット」していくことです。本でPythonの基本的な記述や仕組みを読んだだけでは、なかなか身につきません。環境構築まではしなくてもオンライン上で簡単なプログラミングができるサービスなどもあるので、本で読み進めた内容を実際にコードで書いてみることの積み重ねが、Python習得の近道といえるでしょう。
そして、モチベーションを保つこと、より「自分ごと」として効率よくPythonを習得するためには、いま本で読んでいるPythonの内容がどのようなサービスで、システムのなかでどのように機能しているかをイメージするのがおすすめです。
とはいえ、Python学習で「実践」のモチベーションをどう保てばいい?
Pythonに限らず、プログラミング習得において「習うより慣れろ」が大原則ではありますが、無目的にコードを書くのは初心者にとって苦痛でしょう。そこでおすすめなのは、「趣味」と無理やりでも結びつけることです。
たとえば、Pythonの醍醐味のひとつ「データ分析」の実践において、無意味な数字やデータをいじっていてもモチベーションを保てないでしょう。そこで、学生時代までずっと野球をしてきた私の場合、野球にまつわるさまざまな数字を扱い、データ解析の練習をしていました。これにより、無目的にPythonを使って練習していた時と比べ、学習スピードが格段に上がりました。
記法などの最低限の基礎はまず本で網羅したうえで、その段階をクリアしたあとは本で学習した内容を好きなテーマや興味のあるトピックで実践するというサイクルを回すとモチベーションを保ちながら効率よくPythonを学習できるでしょう。
Pythonの本をKindle Unlimitedで覗くこともできる
本記事でこれからご紹介するPythonの本・参考書がおすすめではありますが、特にPythonの習得を検討している初心者・入門者の方にとって、いきなり書籍を購入するのは勇気がいるかもしれません。
そんな方におすすめなのは、Kindle Unlimitedです。初めて会員になる場合、無料体験期間もあるので、タイミングにもよりますが以下のような本を無料で読むことが可能です。
- スラスラ読める Pythonふりがなプログラミング
- Progateの次に学ぶ!Python演習問題100問パック!〜データ構造編〜
- Marketing Python マーケティング・パイソン AI時代マーケターの独習プログラミング入門(できるビジネス) できるビジネスシリーズ
- Pythonを活用したビッグデータ処理入門
費用を抑えつつ、気軽にPythonについて学びたい方はKindle Unlimitedのお試し利用もおすすめです。
Python初心者におすすめの本をご紹介
それでは、これからPythonを学んでいきたい初心者におすすめの本をご紹介していきます。
Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ
最初の1冊としておすすめなのがこの本です。会話形式で進むため、読みやすくPythonについてだけでなくプログラミングの基礎を学べます。これからPythonの勉強を始めたいけど、そもそもプログラミング自体を学んだことがない初心者の方には特におすすめです。
たのしいプログラミング Pythonではじめよう!
こちらも、楽しくPythonの勉強を始めたい方におすすめの本です。豊富やイラストで視覚的にPythonの理解を深められ、学んだことをパズルや例題を通じて定着させることができます。
Pythonエンジニア ファーストブック
こちらは、これからPythonエンジニアとして活躍していきたい方におすすめしたい1冊。Pythonの基本はもちろん、エンジニアとして開発業務に取り組む心構えや開発プロジェクトの大まかな流れなど、エンジニアとして知っておくべきことが網羅的かつ実用的に学べます。
独学プログラマー Python言語の基本から仕事のやり方まで
近年、ある種の「プログラミングブーム」のような状態で、さまざまなプログラミングスクールがあるほどですが、費用を抑えながら独学でPythonを始めたい方が多いのも事実でしょう。本書は、独学でPythonを学びたい初心者に非常におすすめできる一冊です。Pythonを武器にどう仕事を進めるか、といった内容まで踏み込んで書かれています。
PythonでExcel、メール、Webを自動化する本
Pythonあるいはそもそものプログラミング自体、エンジニアのためのものというイメージが強いかもしれませんが、実はPythonは非エンジニアの方でも日々の業務に役立てることができます。Excelを駆使してさまざまな業務を行うことも多いですが、「この作業をもっと効率化できないかな?」と思うことがある方におすすめです。また、これからPythonを勉強していきたい方で、まずは身近な業務から活用してみたい方は、本書を読みながら実践してみることをおすすめします。
Pythonデータサイエンス
Pythonを学びたい方のなかには「データサイエンス」「データ分析」に興味のある方も多いでしょう。本書は、Pythonを用いたデータサイエンスの入門書として定評があり、Pythonによるデータ集計や機械学習などのデータ分析手法の基礎を学べます。
Python初心者におすすめの学習サイト
最近はインターネットを活用してPythonを学習することもできます。初心者のなかにも、いきなり本だとハードルが高いと感じる人もいるでしょう。そこで、Pythonの学習におすすめのサイトをいくつかご紹介します。
Progate・Pythonコース
開発環境を用意することなくPythonのコードをWeb上で書きながら知識や技術を習得できるサービスです。Pythonの全てのコースを受講するには有料会員となることが必要ですが、無料でも一部レッスンを受けられます。自分のペースで気軽に学べるので、本を買って本格的にPythonを学ぶ前に、一度Progateで試してみるのもよいでしょう。
Python | プログラミングの入門なら基礎から学べるProgate[プロゲート]
ドットインストール・Python 3入門
こちらもPython初心者にうってつけの学習サイトです。数分間の短い動画(解説や実演つき)を見ながらPythonを学ぶことができます。1つの動画が短く、移動中などでもさくっと勉強できるのもありがたいポイントですね。受講者からの質問や回答も閲覧でき、Python学習のつまづきポイントもチェックできます。こちらも一部無料公開されており、初めての方は覗いてみることをおすすめします。
Python 3入門 (全31回) - プログラミングならドットインストール
Pythonを武器に実現したいキャリアを描く
Pythonに限らず、プログラミングを習得したいという人が増えていますが、そのモチベーションが長続きする人とそうでない人がいます。なんとなく「手に職をつけたい」といった理由で始めてしまうと、思うように進まないと挫折しかねません。
Pythonの習得は「手段」であって、「目的」ではありません。Pythonを用いてどのような仕事をしてみたいのか、できる範囲でイメージしてみることが大切です。たとえば、本記事の例で紹介した「ダイナミックプライシング」のシステム開発に携わる、といった目標があれば、本を読み進めるなかでその内容がダイナミックプライシングにどう関連するか考えるようになり、学びが深まるでしょう。
自身の好きな分野やサービスなどから逆算しながら、Pythonの勉強に取り組んでみてください。
Pythonエンジニアでも、技術に加え「コミュニケーション力」が大事な理由
新卒からエンジニアとしてお仕事をしている筆者も体感として感じていますが、当初と比べて単にコードを書けるだけのエンジニアの価値は下がってきている雰囲気はあります。以前であればPythonを扱えるだけである程度希少価値がありましたが、プログラミングスクール全盛のいま、飽和状態になりつつあります。
AIの活用により、プログラミング自体は必ずしも人間がやる必要はなくなってくる可能性もあるなか、どのように自身の価値を高めていくか。ひとつの答えが以下の動画にあると思っています。これからPythonを学びたい方も、この観点を持って学習を進めるのをおすすめします。