Lean Baseball

No Engineering, No Baseball.

Pythonで仕事をする人のための書籍まとめ2021 - 学習, 業務効率化, アプリ開発からデータサイエンスまで

2020年も多くの素晴らしい技術書がたくさん出ました.

その中でも(昨今のトレンド・流行りも手伝ってか)Python本の多さ・充実度合いは目立つものがあります.

(このエントリーを執筆した12/19時点で)Amazonの本カテゴリで「Python」と検索すると1,000件以上出てきます*1.

これだと目的の本にたどり着くだけで疲れそうです.

このエントリーでは,

  • 主にPythonを学びたい・現在使っている方
  • 手元の業務を効率化したり, RPAっぽいことをやりたい方
  • エンジニア・データサイエンティストとして業務や趣味・個人開発をされている方

を対象に,

今そして来年2021年に読んでおきたいPython関連書籍(と抑えておきたいサービス)

をエンジニアでありデータサイエンティストである私独自の視点で紹介します*2.

なおこのエントリーはこのブログで例年執筆している「Python本まとめ」の2021年版となります.

※2020年版はこちら

【ダイジェスト】厳選オススメ4冊

このエントリー自体, 文量が多いので先に「最低でもこれだけ抑えると幸せ」という4冊を紹介します.

独学プログラマー」は, (Pythonに限らず)これからプログラミングを始める方, エンジニア志望の方すべてにオススメしたい一冊です.

18刷が出るぐらい, 多くの方々・エンジニアに愛されている本でプログラミングの基礎から仕事で大事なことまで教えてくれる名著です.

ちょっとPythonやプログラミングに慣れたあたりで「そうだ, 自分の仕事を楽にしよう」という, 業務効率化を頑張りたい方はぜひ「仕事がはかどる〜」のシリーズを読むと良いかもです.

大抵の仕事でExcelやCSV, スプレッドシートはよく使うと思うのできっと参考になると思います.

主に現役のエンジニア・プログラマーにオススメしたいのが「自走プログラマー」です.

コード実装やクラス設計といったレビューで意見が分かれそうなポイント, レビューそのものの良いやり方, 要件定義やFWへの乗っかり方(巨人の肩に乗るというやつですね)など, 給料をもらってプロフェッショナルとして働く時にふと欲しくなるTipsが満載で素晴らしいです.

データサイエンス・機械学習などで初学の人からすでに実践されている人まで幅広く参考になる便利な書籍が「東京大学のデータサイエンティスト育成講座」です

かなりボリュームありますが網羅性・深み両方あってすごく良いです, データサイエンス系で読む書籍に迷ったらこれです!と言っていいぐらい良著です.

おしながき

ここから本編ですが, 「データサイエンス系の本が知りたい」「ひとまず学習できればOK」など, 目的に合わせて読み飛ばしてもらえると読みやすいかもです.

Pythonオススメ書籍まとめ2021

軽く全体像の解説をしたあとに,

  • Python・プログラミングを学ぶ方
  • ひとまず手元の仕事を楽にしたい方
  • エンジニアリングをしている方
  • データサイエンティスト・データ分析系の方

それぞれ向けの話を各セクションで紹介します.

全体像

私は最低でも週一回本屋さんの技術書コーナーを眺めるようにしている*3のですが, ここ数年のトレンドとして,

  • プログラミング, 特にPythonは今後必要なスキルですよ!
  • 業務効率化やRPA(Robotic Process Automation), プログラミングでやれるんですよ!
  • AI・機械学習・ディープラーニングといったらPythonでしょう!

...と言わんばかりにPythonの本が増えてきました.*4

というわけで, 「きっとPython本を求めている方はこういう目的だろう!」というイメージの元, 目的別の書籍・サービスのオススメを絵図にしました(下図)

f:id:shinyorke:20201219203225p:plain
【絵】2021年, 目的別オススメ本(本以外のものもあります)

色分けの意味合いですが,

  • 青色は初心者・初学者向けだったり, エンジニアもデータサイエンティストもそれ以外の人も色々と恩恵に授かるもの.
  • 橙色はプログラミングを生業の中心とする職業向けのもの. 具体的にはエンジニアやデータサイエンティスト向け

と解釈していただけるとすごくわかりやすいと思います.

Python(プログラミング)を学ぶ

Pythonおよび, Pythonに限らずプログラミングを学ぼうとされている方に向けてのオススメです.

大切なので2度言いますが, 「独学プログラマー」は, (Pythonに限らず)これからプログラミングを始める方, エンジニア志望の方すべてにオススメしたい一冊です.

私はたまに人にプログラミングを教える機会があるのですが, その時は「スラスラわかるPython*5」と「独学プログラマー」は教本・バイブルとして強くおすすめするぐらいに信頼して使っています.

月並みな言い方をすると, 迷ったら独学プログラマーです.

Python実践入門で深く学ぶ

Pythonの言語仕様を網羅した上で隅から隅まで丁寧に書かれている「Python実践入門」も素晴らしい書籍です.

ご自宅やオフィスに一冊あるとすごく便利です!というのと, エンジニアリングのところで紹介する「自走プログラマー」とも通じる所があってすごく良いと思います.

オンライン学習を活用する

また, Pythonを学ぶ方法として,

  • プログラミングスクールに通う
  • 書籍やオンラインサービスを使って独学(自学自習)する
  • オンライン開催している勉強会に参加する

等, 色々とあると思いますが, 個人的にはオンライン学習をする際は「PyQ」をオススメします.

pyq.jp

Pythonのプロフェッショナルが揃うビープラウドさんが開発・運営している安心と信頼のクオリティーで使っていて気持ちがよいサービスだと思います(ちょっと前ですが感想ブログも書きました).

また, 初心者や学習されている方だけでなく, プロフェッショナルなエンジニアから見ても欲しくなるようなリリースもあったりと素晴らしいです.

blog.pyq.jp

書籍とは違い, オンライン学習サービスは常にアップデートがあるのでその辺でオススメです.

業務効率化をしてみよう

ここで言う「業務効率化」は,

人がわざわざやる必要が無い, ちょっとしたプログラミング・ツールで解決できる「退屈な仕事」を自動化する

という意味合いです. RPAの入り口と言っていいかもです*6.

退屈な仕事は自動化しよう

この分野でPythonが盛り上がったのはオライリーの「退屈な仕事はPythonにやらせよう」が最初かなと思います.

ただ, この書籍は「キーボード入力をプログラミングで代替する」「利用シーンが実はちょっと微妙」など, 少々癖がある書籍(という話を以前ブログで書きました)だったりするので, 「自動化をがんばりましょう」という書籍を読むとより実践的・イメージが湧いてオススメです.

ちなみにですが, 「そもそもどんな作業が自動化できるかイメージが沸かない」みたいなのもあると思います*7.

これらも書籍にヒントや実例があったりしますが, 考え方の起点・基本もあったりするので参考になると嬉しいです(手前味噌).

shinyorke.hatenablog.com

Colaboratoryで退屈から快適に

また, これは自分がよくやってるのですが,

  • データ集計や自動化などを人に引き継ぐ
  • 業務上のノウハウ, やったことを「動くコード」として渡す
  • ↑を通じて他の人にも軽くプログラミングしてもらう

という目的でColaboratoryを使うのもオススメです.

colab.research.google.com

ちょっとした作業や高度な電卓代わりに使うだけでなく,

  • Pythonを学ぶ・覚える
  • 統計や機械学習を学ぶ・仕事にする(そもそもそのための道具)

で大活躍するので, 「退屈な仕事をこなす」段階でColaboratoryデビューするとすごく良いと思います.

エンジニアリング

主にWebアプリケーション開発の話題中心です.

(大切なので2度言いますが)主に現役のエンジニア・プログラマーにオススメしたいのが「自走プログラマー」です.

  • Pythonのコーディング作法だったりテストなどのプラクティス
  • 要件定義・クラス設計等のアウトライン的なデザイン・設計
  • Frameworkの活用, よく使われるDjango(Web Framework)の痒い所に手が届くTips

これらがよくまとまっていて, 名前の通り「自走できるプログラマー」に必要不可欠な一冊という印象を感じます.

チームで開発されている方にもオススメですが, 小さい企業・スタートアップ*8やフリーランス等で一人〜少人数で働いてる方は一冊あるとホント便利だと思います.

アジャイルからチーム開発を学ぶ

チームとして開発していると, チーム特有のコミュニケーション(仕様の確認だったりコードレビューだったりetc...)を気にする頃合いとなります.

3人以上のチームで働く方はこのタイミングでぜひ「アジャイル」の思想・概念と, いくつかのアジャイルな手法(プラクティス)を少しずつ学ぶといいかなと思います.

agilemanifesto.org

agilemanifesto.org

アジャイルソフトウェア開発宣言(Agile Manifest)はぜひ一度ご覧になると良いでしょう.

アジャイルはあくまで「思想」「概念」なので, 具体的な手法・プラクティスは別にあります.

  • スクラム開発
  • XP(eXtreme Programming)
  • ペアプログラミング(モブプログラミング)

(粒度は違いますが)上記3つすべて「アジャイルの思想」から生まれたプラクティスです.

この辺はぜひアジャイルやスクラムの書籍を読んでみたりするといいと思います.

アジャイルに関しても, Pythonの次ぐらいに書籍やノウハウが結構ある*9ので是非インターネット上で発信している人やブログなどを追うと良いかもです.

個人開発をはじめよう

お仕事でエンジニアリングをする以外にも,

  • 副業・サイドプロジェクトを始める
  • とにかく自分が欲しい物を作る

など, 「主役が自分な開発」である「個人開発」をするとすごく良いと思います.

個人開発をすると,

  • 仕事で扱っていない技術の経験を積める(好きな言語・技術で遊べる)
  • プロジェクトをやりきることによる経験. サービス運営・運用の経験, ポートフォリオの充実化etc...
  • 結果として, やれることが増えて仕事や就職・転職の機会でより有利に働く*10

という経験が積めるのでかなりオススメです.

拙作ではありますが個人開発のノウハウ・良さについては以下のエントリーにもありますので興味が出た方は「個人開発をはじめよう」と合わせて読んでいただけると嬉しいです.

shinyorke.hatenablog.com

個人開発はやっていて楽しいですし趣味や実益という意味でも面白い(例えプロジェクトがしくじっても学びが残る)ので気になったかたは是非やってみるといいかもです.

データサイエンス

最後はデータサイエンス編です.

  • アナリスト的な業務で統計や数学を扱う
  • 機械学習・ディープラーニングを使った開発とか研究

といった方が対象です.

初心者から中級者ぐらいまでの方にオススメしたいのは, 「東京大学のデータサイエンティスト育成講座」です.

過不足なく網羅的・体系的にまとまっていて良い書籍だと思います.

最初にやられる方は上記の書籍などを参考に,

  • Kaggle等のコンペに参加したり
  • 自分が気になることをデータ集めて調べたり
  • 上記の活動をブログなどで発信したり

というのを繰り返しやると実力も付く, アウトプットも増えてポートフォリオが充実するといいことだらけなのでかなりオススメします*11.

100本ノックで経験を積む

実務で「言語処理やらなきゃ」「機械学習でいい感じにしたいのだが...」という方は100本ノック系の書籍があると最高に良いです.

一つ一つのtipsが一本のノック⚾️という単位で出来ているので,

  • ひとまず最初からやって100本打ち返す
  • 知ってるやつはすっ飛ばして学びたいやつだけ打ち返す

みたいな学び方・トレーニングができるので最高に良いと思います.

プロから学ぶ分析と可視化

これは私個人が感じたトレンドでもあるのですが,

データアナリティクス・データサイエンスのノウハウをコンサルの仕事術から学ぶ風潮🤔

があるなあと思ったのが2020年の書籍やブログの雰囲気だったりします.

たとえばこちらのアクセンチュアさんの本は, Pythonによるデータサイエンス・機械学習の話もかなりよく書かれているのですが, それ以上に

  • なぜデータアナリティクスをやるのか
  • AIプロジェクトの進め方
  • 統計・アルゴリズムの選択の勘所

等, 「これってひと昔前なら秘伝のタレで外には出ないような内容では?」という濃い話が載っていたりとすごく面白かったです.

これらのトレンドの詳細については,

shinyorke.hatenablog.com

shinyorke.hatenablog.com

こちらのエントリーでまとめていますので気になる方はぜひ御覧ください*12.

また, これも今年のトレンドかなと思うのですが,

  • データビジュアライゼーションのライブラリ・Frameworkの紹介
  • そもそものデータ可視化の基本

をPythonエンジニアやデータサイエンティスト向けに解説する書籍も増えた気がします.

最近発売された「Python インタラクティブ・データビジュアライゼーション入門」はPlotlyやDashといった最近の可視化ライブラリ・Frameworkを紹介していますし,

データ視覚化のデザイン

データ視覚化のデザイン

可視化やビジュアライゼーションのテクニックをデザイン・色使いの視点で説いている「データ視覚化のデザイン」のような書籍がPythonのデータサイエンス本やプログラミング本と並べている本屋さんも多いことを考えるとこれはそのまま来年のトレンドにもなりそうです*13.

結び

2020年のエントリーに引き続き, 2021年に読むべきPythonおよび周辺トピックスの書籍紹介をさせていただきました.

最後にひと言だけ添えると,

ここまでのまとめはあくまで私(shinyorke)のセレクトであり, 最後はご自身で選んだ書籍・やることを大切にして欲しい!

です.

ここにある書籍以外にも素晴らしい書籍やサービスもあります(今回のエントリーで泣く泣く掲載を見送ったものも結構あります), ご自身で選ばれた選択肢を信じて自学自習されるのが一番良いと思います!

すでにPython・プログラミングで仕事をしている方も, これから仕事にされる方も, 何かの参考になると幸いです.

最後までお読みいただきありがとうございました&良いクリスマス良いお年を!

【オマケ】個人的なオススメ3冊

これも毎年恒例?です, 個人的に良かったPython・データサイエンス関係の書籍です.

友人・知人が執筆・監修したというのもありますが, データサイエンスだけでなくプログラミング・エンジニアリングという視点でも読み応えあるプロ向けの一冊でした.

熱い感想はこちらにまとめています.

shinyorke.hatenablog.com

医療統計よりもさらにニッチな野球の統計学「セイバーメトリクス」について日本でも素晴らしい書籍が出ました.

Analyzing Baseball Data with Rの日本語版で, 私も技術レビューで協力させてもらいました.

shinyorke.hatenablog.com

真似して野球データサイエンスされる方が増えると嬉しいです.

これは現在進行系で読んでいる&2021年にがんばりたいお金の話です.

来年は野球に加えてヘルスケアとお金で頑張りたいと思います!*14

*1:全部がプログラミングの本ではない(本物のニシキヘビの話も, モンティ・パイソンの話も両方あるかもしれない)ですが, 選ぶのに難儀な件数なのは間違いないはず.

*2:あくまで選者である私のセレクションなのでそこそこの偏り・好みで選んでることはご了承ください.

*3:純粋に本屋が好きなのと, 面白い技術書があったらすぐ読みたいのでそういった意味で足をよく運びます.

*4:写真は撮っていない(というか基本は撮っちゃダメ)ので想像しにくいかもですが, 本屋に行くとすぐわかると思います.

*5:こちらも大変素晴らしい書籍でこのブログでも何度か紹介させてもらいました. ただ, Pythonのバージョンが3.6と微妙に古く(ちなみに現在の最新メジャーバージョンは3.9です), 今回は混乱を避けるため本筋のオススメからは外しています.

*6:RPA自体はもうちょっと大げさ?大掛かり??なしくみを指すことが多い印象がありますが, 個人的には手元の仕事をひとまず楽にできるだけでも立派なRPAだと思っています(のでRPAという表現を使っています).

*7:実はこれがよくある話でして, 大抵の場合プログラミングを生業としているエンジニアと話すことでネタが思いつく, とかはあると思います&もしやったことない人がいたら試してみるといいかもです.

*8:エンジニアが一人, 二人とかでコードレビューよりも先にデリバリーだろ!っていうフェーズの会社さん・エンジニアにとって強力な武器だと思っています. この本を読んだとき, 「ああ, スタートアップの一人エンジニア時代にあったら良かったな」と思いました.

*9:正直スクラムの書籍も相当増えたなと思っています.

*10:弊社(JX通信社)もそうなのですが, ポートフォリオや本職以外の経験を転職・就職時に求められる機会は確実に増えている印象があります(インターン・新卒・中途関係なく). キャリアチェンジを考えている方は特にやっておくといいかもしれません.

*11:理由としては...個人開発の件で書いたのと全く一緒となります. 最終的な就職・転職・仕事選びに有利に働くと思います.

*12:2本とも多くの方からフィードバックをいただきました. 書いた本人としてはここまで読まれたのに驚きを感じたと同時にPython・データサイエンスのトレンドも日々動くものだなと改めて学びました.

*13:この辺も資料の見せ方・説明とかの視点でコンサルタントのテクニックだったりするんですよね. 個人的にはコンサルタントの役割も変わりつつあるなとも別の意味で感じています.

*14:いずれも個人開発です, 話はまたいずれ...