プログラミング

Python初心者におすすめの参考書を分野別に紹介します。

Keito Ochiai

大学を飛び級で卒業後、MBA(経営大学院)に進学して経営戦略と会計を学ぶ。現在は、データ分析を用いて企業との共同研究に従事。趣味は読書とSwitch、カラオケ。最近はアソビ大全のトイテニスを極めてます。

本稿では、文系でPythonを習得してデータ分析の業務に活かしている筆者が、Python初学者に向けておすすめの参考書を紹介します。レベル別に分けているので、自分に合ったレベルの参考書を使ってください。

すべて筆者が実際に使ったものなので、レビューの信頼性は高いはずです。

【基礎レベル】の参考書

筆者が最初に使ったのは、オライリー本と呼ばれるプログラミングの教科書です。これはオライリー・ジャパンが発行している本のシリーズで、エンジニアにとってはバイブルのような書籍になっています。

内容の構成が丁寧であることはもちろん、Pythonで初心者が学ぶべき内容を網羅しており、応用にも繋げやすくなっています。多少分厚いのがネックであるものの、この本の内容を写経するように学ぶことで、学習をどんどん進めていけるはずです。

本書で最も特筆すべき点は、Pythonの基礎文法だけではなく、データベースやWebアプリ、OS・システム面(ファイルやディレクトリ)、並行処理やネットワークについての記述がある点です。つまり、実務で使える知識や、日常で使っているコンピューターの構造についても学ぶことが出来ます。

このような基礎的な知識は、エンジニアとしてのレベルが高まるほどに重要度を増してきます。プログラムの構造を理解して設計を行ったり、構造上の欠陥を発見するためには、こうした基礎的な知識を有している必要があるからです。その点で、本書はPythonだけでなく、コンピュータ全体に触れられる書籍と言えるでしょう。

上記のオライリー本は、レイアウトが見やすい・デザインに凝っているといった観点で見ると、一般的な書籍よりも劣っている部分があります。内容の網羅性よりも、デザイン性や学習のしやすさといった観点を重視するなら、本書をお勧めしておきます。

内容の濃さこそオライリー本には劣るものの、Python初心者にとっては内容は十分であり、かつ学習のしやすさも担保されていると言えます。

Pythonどころか、プログラミング自体が初めてだという方には本書がおすすめです。本書では、プログラミングの基本事項からPythonを解説しています。Pythonの書籍は、他の言語をある程度学んだ人向けに書かれることが多いため、プログラミング自体の基本事項を解説している書籍は多くありません。

その点、本書は「プログラミング」の初心者も想定している点で、初心者の需要にマッチしていると言えるでしょう。if文やfor文、クラスといった概念について知らない方には、本書をおすすめ出来ます。

【データ分析】の参考書

Pythonの学習を始めようと思った方の多くは、データサイエンティストとしてデータ分析を身に付けようとしているはずです。Pythonの得意分野はデータ分析や機械学習であるため、それらに関連した書籍も豊富に存在しています。本稿では、データ分析の基礎を築くための参考書を紹介します。

本書は、データ分析の基本となるPandasとNumpyを扱った書籍です。PandasやNumpyは「ライブラリ」と呼ばれています。イメージとしては、Python内での計算を高速化してくれる便利なツールです。

Pandasを用いると、ファイルの読み込みや書き込み、1次元データや2次元データの処理を楽にすることが出来ます。これに対してNumpyは、データを配列と呼ばれるリスト的な構造に置いて、計算処理を効率化してくれるライブラリです。これらを使うのと使わないのでは、プログラムの効率性(≒実行速度)が数十倍、数百倍も異なってきます。

本書では、PandasとNumpyを用いてデータ分析の基礎を学びます。具体的には、2つのライブラリの使い方を体系的に学び、その後はデータ整形の方法を学びます。最後には、データ分析の実例を用いて、実務で分析を行えるレベルまで実力を向上させることが可能になっています。

特に重要なのは、データ整形に関する記述です。データ分析のほとんどの時間は、ファイルやデータベースから得られた各データを、分析が行いやすい形に成型するために使われています。データサイエンティストと聞くと、優れたモデルを作ってデータ分析を行うイメージがあるものの、実際にはデータの処理を行うことが大半なのです。

その点において、本書はデータ整形の方法をかなり詳しく解説しています。本書の内容をある程度抑えれば、実務で使えるようなデータ処理が行えるようになるはずです。この時点でも、データ分析者の卵としてはある程度の実力を得ることが可能です。

上記の本では、PandasとNumpyやデータ処理に関する記述がメインでした。それに対して、本書ではデータ分析に関わる事項をより広く学ぶことが出来ます。例えば、scikit-learnは機械学習を扱うライブラリであり、機械学習に対する知見を深めることが可能です。

データの前処理(整形)に関する記述は上記のものに劣るものの、データ分析の全体像を掴みたい人にはこちらがおすすめです。もちろん、PandasやNumpyのライブラリも解説されているので、データ分析を学ぶ書籍としては一級品と言えます。

【機械学習】の参考書

本稿では、機械学習の入門本にはこの1冊のみをお勧めしておきます。オライリー・ジャパンから発行されている書籍は内容の精緻度が高く、初学者がPythonを学ぶにはうってつけだからです。さらに、機械学習の分野では本書の右に出るものはないと思います。

本書を学び終えると、機械学習の一連の流れとscikit-learnライブラリの使い方を習得することが出来ます。一般的によく用いられる「教師あり学習」についてのサンプルコードが豊富に載せられているため、実務面でも応用が出来るはずです。

その一方で、教師なし学習については分かりづらい内容を一部含んでいます。この辺りに関しては、別の書籍で学ぶ必要があるものの、初学者が教師なし学習を実務で用いることはあまりないため、最初は読み飛ばしてもよい部分です。

【Webアプリ】の参考書

最後に、Pythonで作ることの出来る分野にはWebアプリが存在します。本書は、Pythonやプログラミングの初心者に向けて、Webアプリケーションの作り方を解説した書籍です。

一般的に、技術書を読んでいる初心者が挫折する一番の理由は、実際の開発ではなく基礎事項の学習が延々と続くからです。受験勉強であれば、習ったことを活かしてすぐに演習問題を解くものの、エンジニアの世界ではそれがないのです。

こうした観点を踏まえると、本書は技術の解説よりも開発に重きを置いており、初学者でも挫折せずにWebアプリの開発を進めることが出来ます。実際に手を動かしながら学ぶので、学習のスピードも高まるはずです。

とはいえ、本書は本当に入門のレベルを扱っているため、本書の後により専門的な技術書でWebアプリについて勉強する必要があるでしょう。

オンライン学習サービスだと、ここまでの内容が網羅できる

本稿では、Python初心者向けに各分野の参考書をご紹介しました。

しかし、技術書は1冊が4,000円するものも多く、何冊も購入を重ねるとすぐに5桁を突破してしまいます。そこで、本稿ではオンライン学習サービスもおすすめしておきます。

筆者は実際に、「PyQ」というオンライン学習サービスで学習を始めました。PyQでは、本稿で紹介した内容を簡潔に網羅することが出来ます。もちろん、技術書1冊1冊の内容の濃さには劣るものの、Pythonを低価格で体系的に学ぶという観点からは、PyQに圧倒的なメリットが存在します。

内容は、Pythonの基本事項やデータ分析の流れ、機械学習やWebアプリの開発知識を含んでいます。特筆すべきは、技術書に書かれていない、「綺麗なコードの書き方」や「ユニットテスト」、「実務での振る舞い」といった、経験的な知見を含んでいる点です。ここは、技術書で身に付けるのがなかなか難しい分野です。

以下の記事でPyQについて詳しく解説していますので、PyQで学習の効率を上げたいという人は読んでみて下さい。

プログラミング

PyQはPython初心者に超おすすめ出来る教材だった。

2020/9/21  

Keito(@keito_dilige)です。 本稿では、文系からデータ分析業務に関わるようになった私が、Pythonのオンライン学習サービスであるPyQをレビューします。結論から言うと、PyQはPy ...

独学では技術書を用いた学習方法が一般的ですが、オンライン学習サービスを用いると、効率的かつ体系的にPythonを学ぶことが出来ます。PyQのリンクを以下に貼っておきますので、気になった方はぜひ検討してみて下さい。

オンラインPython学習サービス「PyQ™(パイキュー)」

Twitter(フォローや質問等)
メールでの質問やお仕事依頼

人気記事

no image 1

1日2時間でTOEIC800点台へ。就活や昇進に使える、超効率的な勉強法。
その秘訣とは……
1:基礎力を底上げすること
2:戦略的に解くこと

2

本稿では、転職における「市場価値」を高めるための方策を提案します。本稿で扱う内容は、すべて経営戦略に基づいたものになっており、「そもそも市場価値とは何か」といった定義から、「市場価値を高めて維持する方 ...

© 2020 Diligent Life