オススメ書籍
shimizukawa.iconがオススメする本をまとめています。
内容は更新日付時点の内容もので、随時更新していきます。
プログラミング入門
そもそもコンピューターの中で何が起きているのか、から始まる本です。OSの役割、バイナリ、コンパイラ、インタプリタ、アセンブラ、メモリ・・といった、コンピューターの基礎知識を紹介しています。5章ではプログラミング言語の基本要素、条件分岐や繰り返しといった概念が図解で分かりやすく紹介されています。Pythonは登場しません。
第2版が出ています。Pythonのインストール、エディタの使い方、コマンドラインの使い方など、初めてプログラミングに触れる方向けに図を多く使い、手順を分かりやすく紹介しています。
shimizukawa.iconが翻訳・監修しました。おかげさまでたくさんの方に読まれています。
本書は、プログラミングに入門した頃に私が欲しかった「プログラミング自体を学ぶ本」であり「独学者のための地図」です。本書で伝えているのは、Pythonに限らない「プログラミング全般」の知識です。古くは『Pythonで学ぶプログラム作法』 (アラン・ゴールド、2001年 ピアソンエデュケーション)がまさにそのための書籍でしたが、そういった位置づけの書籍はほとんどありませんでした。
言語仕様を学ぶだけではプログラムは作れません。本書は学びに向かうための心構えから始まり、Python言語入門だけでなく、周辺ツールの使い方や、データ構造とアルゴリズム、プログラミングで仕事を得るまでの進み方、そしてチームで働くために必要なことなど、プログラミングに関わる全般の知識のエッセンスを紹介しています。
本書はエッセイであり、言語入門でもあり、仕事にも役立つ本です。Pythonに限らずプログラミングとはどういうことか、というイメージを掴みたい方にお勧めです。
Python入門を超分かりやすい言葉と絵で丁寧に解説。プログラミングの考え方にはあまり触れていない
Python入門
Python言語入門者向けに、分かりやすく紹介しています。プログラミングの知識を多少持っている人向けです。Python言語がもつ多くの機能について、幅広く丁寧に紹介しています。
第4版が出ています。Python公式の読み物の書籍版。Pythonのはじめ方について紹介されています。リファレンスと異なり説明を多く書いていてありますが、これまで全くプログラミングをしたことがない、という方には少し難しいかもしれません。このチュートリアルが難しい人は、より入門向けの本を読むと良い 「必修編」で 実践に必要な基礎知識がひと通り網羅。「実践編」は何かを作る全体像をなぞりながら必要な知識を学ぶのにうってつけ。やってみて出来ないところを練習する方式で進めたい、実践から学びたい人は「実践編」から始めて分からない部分にマーカーをひきつつ、「必修編」の当該箇所で基礎を押さえながら読み進める方式がお勧めです。
Python中級
「プログラミング入門者が中級者にランクアップ」するのに必要な知識を、120のトピックでお伝えする本です。実際の現場で起こった問題とその解決方法を元に、設計や開発プロセスのベストプラクティスを紹介。Pythonにくわしくない方でも、プログラミング言語の文法を知っている方であれば理解できるようにしています。次のURLで抜粋版が参照できます。 https://jisou-programmer.beproud.jp/ コンピューターサイエンス
分かりやすいイラストでアルゴリズムを解説していて、直感的に理解できます。 if文やfor文といった制御構文の動きや、データの変化、関数の使いどころといったプログラミングの基礎も含めて紹介しています。
アルゴリズムを絵で見て視覚的に理解するための本です。『独学コンピューターサイエンティスト』で扱った多くのアルゴリズムとデータ構造がイラストで紹介されています。アルゴリズムを使うことでデータがどのように変わっていくのか、どのような結果が得られるのかを紹介しています。データの動きをアニメーションで確認できる、同タイトルのスマートフォン向けアプリが公開されています。
副題「Pythonで学ぶアルゴリズムとデータ構造」の名前の通り、 Pythonを使って「データ構造とアルゴリズム」の知識を紹介する本です。
独学プログラマーはコンピューターサイエンスの学位を持たず、独学でプログラミングスキルを身に付けた人ですが、そうであってもコンピューターサイエンスが大事な知識だということに変わりはありません。本書は、難しい内容であるアルゴリズムとデータ構造について、要点を絞って分かりやすく伝えています。
本書の著者、コーリー・アルソフは、「独学プログラマー」です。コーリー自身が学びの途中にあり、対象読者と同じ視点でアルゴリズムとデータ構造というコンピューターサイエンスの必須知識を説明してくれていることに価値があります。独学プログラマーがコンピューターサイエンスを学ぶ1冊目としてちょうど良い難易度になっています。
アルゴリズムとデータ構造をPythonで学ぶ本です。各章の最初に「なぜアルゴリズムが重要か」が解説されていて、章後半には練習問題と演習があり、解き方がていねいに解説されています。『独学コンピューターサイエンティスト』と比べて、プログラムコードや解説文は少し難しいかもしれませんが、図が分かりやすいため、Pythonコードと図を見比べながら理解するのに向いています。
自分の訳書『独学コンピューターサイエンティスト』の翻訳時に参考にした本です。
さまざまなデータ構造について詳しく説明し、そこから適したアルゴリズムを導き出す方法を解説している入門書です。データ構造についてより詳細に知りたい方に適しています。データ構造を考えるうえで必須となる、実行時間、時間計算量、オーダーの定義についても詳しく説明しています。この本の内容は原文と日本語版どちらもクリエイティブコモンズ継承ライセンス(CC BY)で公開されています。解説に使われている言語はC++ですが、Python版コードも以下で公開されています。 https://github.com/spinute/ods/tree/ja/python/ods データ構造とアルゴリズムについての入門書です。かなりのボリュームがあり、内容も詳細です。コードはC言語で解説されていて、全体の構成は『独学コンピューターサイエンティスト』に似ています。各データ構造について抽象データ型(ADT)を明示しているので、概念と実装の違いに迷ったらこの本を参照するのが良いでしょう。演習問題が全体の3割くらいあるので、この本を手に取った方はぜひ挑戦してみてください。
プログラミングエッセイ
言語に依存しないプログラミングの非常に読みやす解説本です。プログラミングとは人間がコンピューターに1つずつ全ての手順を教える手段だということを具体的な例を通して紹介している、「プログラミングの考え方」を学べる本です。プログラミング言語はほとんど登場しません。改訂版『これからはじめるプログラミング 作って覚える基礎の基礎』(技術評論社、2016)ではより具体的に理解できるようにプログラミング言語として「Scratch」を採用しています。
達人プログラマー 第2版が2020年に出ています。プロのプログラマーとして仕事をしていくために必要な、生産性の高いプログラマーになるための多くの実践的な手法を紹介しています。この手法は入門者かベテランかに関わらず、物作りのさまざまな場面で役立ちます。 プログラマーとしてキャリアの築く、自分を売り込む、面接を受ける戦略、学び続ける、体と心を鍛える、お金に強くなる。プログラマー人生を送るために必要な、プログラミング以外のスキルにつ>いて数多く紹介しています。
プログラミングとどう向き合うのか、なぜPythonを選択するのか、について紹介されています。多くの人がこのエッセイを読んでPythonを使い始めました。
ブライアン・カーニハン(Brian W. Kernighan)先生によるコンピューターサイエンスの入門書です。プリンストン大学で一般人向けに行っている講義に基づくので読みやすく、理系ではない人にも分かりやすくざっくりと学ぶのに適しています。扱っている範囲は、ハードウェアから始まり、CPU、プログラミング、ネットワーク、プライバシーとセキュリティなど広く、アルゴリズムとデータ構造以外の分野について学ぶのにお勧めできる1冊です。
Python活用
Pythonをプログラミング以外の仕事に便利に利用したい人向け。Pythonを使ってプログラミングを学ぶ本。プログラミングを覚えたら、何ができるようになるのか、実現できることが分かります。前半はPythonの入門で、プログラムの動作をフローチャート付きで>分かりやすく紹介したり、ちょっとしたツールやゲームの実装を織り交ぜて説明しているのでイメージが付きやすくなっています。後半ではExcelやWordのファイル操作、CSV処理、メール送信、Webスクレイピングなど多くの仕事に使えそうな実例でライブラリの使い方を学ぶ構成になっています。
1版はRPA/自動化が流行り始めた頃の本で、ざっくり読んで紹介したりしました。
できる 仕事がはかどるPython自動処理 全部入り。
2019/5/24
自動化関連で、知り合いの著書。
この分野は変化が激しいので似たような本がいくつかあり、それらの中でも変化に強い書き方になっているかどうか分かれそうなので、本の通りに動くかどうかやってみないと分からないし、ダメでも諦めずに別の本も参考にしつつ試してみてください。
Pythonの便利に使えるライブラリ情報
Pythonでプログラムを作成するときに役立つ機能とライブラリを網羅した、実践的なレシピ集。環境構築、コーディング規約、言語仕様、クラス、型ヒントなどを解説。また、よく使われる標準ライブラリとサードパーティ製ライブラリをサンプルコードと合わせて紹介。
Pythonでプログラミングの仕事
BeProudで執筆した、Pythonを使って仕事をしていくためのノウハウ本です。Webアプリ開発の始め方、チーム開発手法、デプロイの自動化、ドキュメント、自動テスト、など入門から先の、Pythonに関連した「環境」をどう扱っていくのかをまとめています。 Pythonの上級者
卓越したPythonプログラマになるための必読書です。Pythonの高度な話題やベストプラクティスを紹介しています。
Python言語そのものを深く濃く学べる
Python言語そのものを深く濃く学べる
デザインパターンをPythonに適用する考え方について詳しく紹介している書籍
エキPyに近い内容を扱っている
Python 3.4 の言語仕様を元に言語を深掘りした本です。
オライリージャパン、2024年
信頼性の高いワークフローを構築するモダンテクニック、というサブタイトルどおり、Pythonのパッケージ開発や仕事で使う上で必要となるワークフローの構築と、そのフローの中でどのようなツールをどう使っていくのか、を pip、pip-tools、Poetry、Nox、pytest、Ruff、uv、Rye、Coverage.py、mypy をベースに紹介しています。本書でuvを紹介していますがuvの進化が速すぎて今やデファクトのPythonパッケージマネージャーの地位を獲得しつつあります。最新ツール紹介としてはともかく、なぜそのワークフローが必要なのか、なぜその時点でこれらのツールチェインを選択したのか、という考え方の方が重要で、本書はそこを理解するための本として読むのが良いでしょう。その考え方が分かればあとは各自で最新ツールを選んでいけると思います。
機械学習・統計
「ゼロから」は「知識ゼロから」ではなく「便利な既製品を使わない」という意味。プログラミングとPythonを知っていて、機械学習に使われる数式とDeep Learningの仕組みを知るために、ライブラリ等使わずにPythonコードで学習してく本。
ソフトウェア設計
著者のblog記事をまとめた本。Java前提だけど設計の様々な観点が紹介されている
Agileとは何だったのか、今はどう考えると良いのかが解説された本です。
見積
人生
お金
出産・子育て