ISBN 9784296070343

独学コンピューターサイエンティスト Pythonで学ぶアルゴリズムとデータ構造

独学コンピューターサイエンティスト Pythonで学ぶアルゴリズムとデータ構造
出版社
日経BP
刊行
2022-08

概要

独学プログラマーがアルゴリズムとデータ構造をPythonで習得する

想定読者

『独学プログラマー』を読み終えた、またはPython基礎を身につけた自学者で、コンピューターサイエンスの必須知識を体系的に補完したいエンジニア

こんな人には向いていない

  • アルゴリズムとデータ構造をすでに体系的に学んだ経験があり、各種計算量の証明や高度な最適化手法を求める読者には物足りない可能性がある
  • Pythonの基礎構文をまだ習得していない段階の読者には、コード例を追うための前提知識が不足する
  • 競技プログラミングや技術面接の応用問題を大量にこなしたい読者には、問題演習の量が少ない

読了後にできるようになること

  • 配列・リスト・スタック・キュー・ハッシュテーブル・木・グラフといった主要データ構造の概念と、Pythonでの実装方法
  • 線形探索・二分探索・バブルソート・マージソート・クイックソートなど代表的アルゴリズムの仕組みと使い分け
  • 時間計算量(Big-O記法)の読み方と、処理コストの概算をコードレビューや設計に活用する感覚
  • 技術面接でよく問われるアルゴリズム・データ構造の頻出トピックを自力で説明できる語彙の獲得
  • コンピューターサイエンスを正規教育で学ばなかったことへの不安を、独学で段階的に解消する学習経路の把握

ハイライト

  • アルゴリズムとデータ構造を学ぶことで、プログラマーとして成長できます。成長の鍵は、フィードバックループにあります。学んだことを実行してみて、それが期待どおりかどうかすぐに確認することです。(著者自身の独学体験から導いた本書の学習方針を端的に示す箇所)
  • 本書を読んだ後ならきっと、技術面接においてある程度の自信が持てるでしょうし、プログラムを実装する際にもキーワードとその内容を知っているので、文献探しや実装例を見つけ出す手がかりが得やすいでしょう。(本書が実務・面接の両面で果たす役割を具体的に言語化している。購入動機として最も直接的な記述)

外部からの言及

  • JavaScript でアルゴリズムを学ぶ際の参考文献として挙げられており、Python以外の言語で学ぶ学習者がCS基礎の参照元として本書を活用しているケースがある(qiita)

編集メモ

Qiita言及2件・累計likes0件。楽天ランキング情報なし。シリーズ前作『独学プログラマー』は国内で広く知られているが、本書の外部シグナルは現時点では少ない。入門CS書として位置づけられるが、Qiitaコミュニティでの引用実績は限定的

読む前に押さえておきたいこと

  • PythonのリストやDictionary、for/while ループ、関数定義を実際に書いたことがある程度のコード経験
  • 特定のIDEやエディタへの習熟は不要だが、Pythonコードをローカル環境で実行できるセットアップが整っていること

学習のコツ

  • 前作『独学プログラマー』を読了済みであれば、本書は第1章から順に読む必要はなく、苦手なデータ構造(木・グラフなど)から先に着手しても文脈が追いやすい
  • 各章末のコードをそのまま写経するのではなく、章の内容を一度閉じてから白紙に実装し直すことで、Big-Oの感覚が身につきやすい
  • 技術面接対策が目的の場合は、配列・リスト・ハッシュテーブル・二分探索・ソートの章を重点的に押さえ、その後で木・グラフに進む順序が効率的
  • 本書のコードサンプルは日経BOOKプラスのウェブページからダウンロードできるため、手元で動かしながら読み進めることで理解速度が上がる
出版社による内容紹介

プログラミング入門書として広く活用いただいている『独学プログラマー』の姉妹書が登場。第2弾の本書は、コンピューターサイエンス(計算機科学)の入門書です。 アルゴリズムとデータ構造について、図およびPythonのコードで具体的に示しながら、分かりやすく説明します。 「独学プログラマー」が活躍するうえで役に立つ、基本的な概念と実装を紹介します。 本書に登場するコードは、日経BOOKプラスの本書ウェブページからダウンロードいただけます。詳細な目次ページ(PDF)もそちらからダウンロードいただけます。 独学プログラマーが理解しておくべきもっとも大切な分野を学ぼう! 私は当時、スタンフォード大学、カリフォルニア大学バークレイ校、カリフ ォルニア工科大学を出た優秀なプログラマーと一緒のチームにいました。コンピューターサイエンスを十分に理解している同僚たちの中で、不安で、居心地の悪さを感じていました。独学プログラマーとしてコンピューターサイエンスを学ぶことで、このような不安を最小限に抑えられます。 さらに、アルゴリズムとデータ構造を学ぶことで、プログラマーとして成長できます。成長の鍵は、フィードバックループにあります。フィードバックループとは、学んだことを実行してみて、それが期待どおりかどうかすぐに確認することです。 ーー「イントロダクション」より 1冊目としてちょうど良い難易度 本書の著者、コーリー・アルソフ(Cory Althoff)は、独学プログラマーです。前作『独学プログラマー』は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。彼の独学プログラマーとしての学び方は、多くの人に支持されています。 前作のあとがきでも触れましたが、コーリー自身が学びの途中にあり、対象読者と同じ視点でアルゴリズムとデータ構造というコンピューターサイエンスの必須知識を説明してくれていることに価値があります。アルゴリズムとデータ構造を扱う本はたくさんありますが、本書ほど入門しやすく説明してくれている本は稀でしょう。 本書は、難しい内容であるアルゴリズムとデータ構造について、要点を絞って分かりやすく伝えています。そのため、これらを学ぶ1冊目としてちょうど良い難易度になっています。本書を読んだ後ならきっと、技術面接においてある程度の自信が持てるでしょうし、プログラムを実装する際にもキーワードとその内容を知っているので、文献探しや実装例を見つけ出す手がかりが得やすいでしょう。 ーー「日本語版あとがき」より

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。