独学コンピューターサイエンティスト Python で学ぶアルゴリズムとデータ構造
ドクガクコンピューターサイエンティストパイソンデマナブアルゴリズムトデータコウゾウ
- 著者:
- コーリー・アルソフ / 清水川 貴之 / 新木 雅也 / 大村 和子 / tell-k(コーリーアルソフ / シミズカワタカユキ / アラキマサヤ / オオムラカズコ / テルケー)
- 出版社:
- 日経 BP
- 出版日:
- 2022年08月27日頃
- ISBN:
- 9784296070343
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
プログラミング入門書として広く活用いただいている『独学プログラマー』の姉妹書が登場。第 2 弾の本書は、コンピューターサイエンス (計算機科学) の入門書です。
アルゴリズムとデータ構造について、図および Python のコードで具体的に示しながら、分かりやすく説明します。
「独学プログラマー」が活躍するうえで役に立つ、基本的な概念と実装を紹介します。
本書に登場するコードは、日経 BOOK プラスの本書ウェブページからダウンロードいただけます。詳細な目次ページ (PDF) もそちらからダウンロードいただけます。
独学プログラマーが理解しておくべきもっとも大切な分野を学ぼう!
私は当時、スタンフォード大学、カリフォルニア大学バークレイ校、カリフ ォルニア工科大学を出た優秀なプログラマーと一緒のチームにいました。コンピューターサイエンスを十分に理解している同僚たちの中で、不安で、居心地の悪さを感じていました。独学プログラマーとしてコンピューターサイエンスを学ぶことで、このような不安を最小限に抑えられます。
さらに、アルゴリズムとデータ構造を学ぶことで、プログラマーとして成長できます。成長の鍵は、フィードバックループにあります。フィードバックループとは、学んだことを実行してみて、それが期待どおりかどうかすぐに確認することです。
ーー「イントロダクション」より
1 冊目としてちょうど良い難易度
本書の著者、コーリー・アルソフ (Cory Althoff) は、独学プログラマーです。前作『独学プログラマー』は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。彼の独学プログラマーとしての学び方は、多くの人に支持されています。
前作のあとがきでも触れましたが、コーリー自身が学びの途中にあり、対象読者と同じ視点でアルゴリズムとデータ構造というコンピューターサイエンスの必須知識を説明してくれていることに価値があります。アルゴリズムとデータ構造を扱う本はたくさんありますが、本書ほど入門しやすく説明してくれている本は稀でしょう。
本書は、難しい内容であるアルゴリズムとデータ構造について、要点を絞って分かりやすく伝えています。そのため、これらを学ぶ 1 冊目としてちょうど良い難易度になっています。本書を読んだ後ならきっと、技術面接においてある程度の自信が持てるでしょうし、プログラムを実装する際にもキーワードとその内容を知っているので、文献探しや実装例を見つけ出す手がかりが得やすいでしょう。
ーー「日本語版あとがき」より
技書の森解説
独学でプログラミングを身につけた人が次に何を学ぶべきかに答える本が、『独学コンピューターサイエンティスト Python で学ぶアルゴリズムとデータ構造』 (コーリー・アルソフ 著、清水川 貴之 監訳、新木 雅也、tell-k、大村 和子、清水川 貴之 訳、日経 BP、2022 年 8 月刊) です。原タイトルは THE SELF-TAUGHT COMPUTER SCIENTIST で、版元は本書をプログラミング入門書『独学プログラマー』の姉妹書であり、コンピューターサイエンスの入門書だと案内しています。アルゴリズムとデータ構造を、図と Python のコードで具体的に示しながら説明する構成です。
アルゴリズム入門とデータ構造の 2 部に補章 3 本の構成
目次は 3 部に分かれています。第 1 部「アルゴリズム入門」は第 0 章のイントロダクションから始まり、第 1 章「アルゴリズムとは何か?」のあとに再帰、探索アルゴリズム、ソートアルゴリズム、文字列のアルゴリズム、数学の章が続き、第 7 章は「独学伝: マーガレット・ハミルトン」です。第 2 部「データ構造」は第 8 章「データ構造とは何か?」に続いて配列、連結リスト、スタック、キュー、ハッシュテーブル、二分木、二分ヒープ、グラフを 1 章ずつ取り上げ、第 17 章「独学伝: イーロン・マスク」と第 18 章「次のステップ」で閉じます。第 3 部「もっと学ぼう」には、ハッシュテーブルとダイクストラ法を題材にした 2 本の補章と、補章 3「継続して学ぶために」が収められています。本書のコードと詳細な目次の PDF は、日経 BOOK プラスの本書のページで配布されていると版元は案内しています。
計算量の見積もりがデータ構造の選び方を決める
アルゴリズムとデータ構造を学ぶ価値は、同じ結果を返すプログラムのどれが速く、どれがメモリを食うのかを、書く前に見積もれるようになる点にあります。その見積もりの共通言語が 計算量 で、入力が 10 倍になったとき処理時間が 10 倍で済むのか 100 倍に膨らむのかを、実装の細部から切り離して比べられます。たとえば Python のリストに対する所属判定は先頭から順に調べる線形探索ですが、辞書や集合は ハッシュテーブル として実装されているため、平均すると要素数に関係なくほぼ一定の時間で済みます。配列と連結リスト、スタックとキュー、二分木とヒープの違いも、どの操作を速くするために何を犠牲にしているかという同じ問いで整理できます。独学で書けるようになったコードが、データ量が増えたときに急に遅くなる理由を説明できるかどうかは、この視点を持っているかどうかで分かれます。
Python の文法を終えた独学者の 2 冊目として
版元が紹介文に引く日本語版あとがきは、本書が難しい内容であるアルゴリズムとデータ構造について要点を絞って伝えており、学ぶ 1 冊目としてちょうど良い難易度だと述べています。同じあとがきは、本書を読んだ後なら技術面接においてある程度の自信が持てるだろうと述べています。コードを追いながら読む本なので、Python の関数、リスト、辞書、クラスの書き方を一通り知っていると読み進めやすくなります。一方で、アルゴリズムの正しさの証明や計算量の厳密な解析を体系的に学びたい人は、理論を軸にした教科書と組み合わせるほうが目的に合います。自分に合う難しさの一冊を比べたい場合は、アルゴリズム本の選び方 で本のタイプの違いを確かめておくと選びやすくなります。
『独学プログラマー』を読み終えた人や、仕事でコードを書いているのにデータ構造の名前と使いどころが結びついていない人にとって、本書はその空白を Python のコードで埋めていける一冊です。技術面接を控えている人や、ライブラリの説明に出てくる計算量の表記を自分で読めるようになりたい人は、第 1 部から順に手を動かすことで、判断の根拠を言葉にしやすくなります。
言及した記事 (1 件)
この本は技書デッキのカードです (攻撃 8) 図鑑でこの本を見る
この本に興味がある方におすすめ
関連する本
コーリー・アルソフ の他の書籍
関連記事
アルゴリズム本ガイド - 競プロだけじゃない、実務に活きる選び方
アルゴリズム本の 3 タイプと、実務でアルゴリズムの知識が活きる場面、数学が苦手な人向けの学習ルートを紹介します。
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。
機械学習 / ディープラーニング本ガイド - エンジニアが読むべき AI 技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルート、ディープラーニング本への進み方、ML 本の賞味期限の見極め方を解説します。