世界で闘うプログラミング力を鍛える150問 〜トップIT企業のプログラマになるための本〜

先行発売のお知らせ (11/7 追記)

以下の店舗で先行発売が行われているらしいです.

なお,電子書籍版の発売も予定しているそうですが,調整中とのことで少し後になりそうです.

原著は既に第5版が発売されているアメリカのベストセラー書『Cracking the Coding Interview』の翻訳を行いました.11/13 発売らしいです.翻訳は,『Short Coding』の Ozy さんと『プログラミングコンテストチャレンジブック』の俺・岩田・北川で行いました.

世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~

世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~

本書の内容を一言で言うと「採用面接の攻略本」です.面接でエンジニアより出題される技術的な問題に上手く答えるために,アルゴリズムとデータ構造を中心とした様々な知識と考え方,そして問題例と解法が網羅されています.

問題の大部分はホワイトボードでのコーディングを想定した問題で,ひと捻り効いた問題もあり,プログラミングのパズルとして,プログラミングをする全ての人が楽しみながらコンピュータサイエンスの基礎知識や活用法を復習できる本になっていると思います.難易度は,プログラミングコンテストチャレンジブックに比べるとかなり易しめです.


日本でも一部では既によく知られており,ブログなどで取り上げられています.


マイナビブックスのページは以下になります.


以下は,監訳者まえがきの抜粋です.

本書はアメリカで既に第5版が出版され、Amazon.comでは100件を超えるレビューを持つベストセラー書の日本語版です。GoogleMicrosoftAppleといった有名IT企業でエンジニアとして働き、多くの採用プロセスに関わってきた著者によって、より人気のあるIT企業の面接に合格するための、いわば「採用面接の攻略本」として書かれました。


しかしアメリカでのヒットもそのはず、本書の内容は「採用面接の攻略本」にしておくのはとてももったいないものになっています。それどころか、コンピュータやプログラミングを知るすべての人が、アルゴリズムを中心としたコンピュータサイエンスの基礎知識と活用法を楽しみながら学べる本と言えるでしょう。


本書はアメリカのIT企業における採用に関する詳細な説明から始まりますが、主な部分は面接で出題される技術的な問題例と、その解説から成っています。問題の大部分はホワイトボードでのコーディングを想定した問題で、プログラムを書く問題ということになります。豊富な経験を持つ著者が選りすぐった問題であり、どれも基礎的な知識をちょっとしたひらめきにより活用する良問ばかりです。


アルゴリズム的な問題と解説を中心とした本として我々は『プログラミングコンテストチャレンジブック』を執筆し、広い層に好評を博しました。本書はそれに類似した位置づけと言えます。特に知識の解説だけでなく、その活用法に重点を置いているという、珍しい特徴を共通して持っています。一方、我々の本ではプログラミングコンテストの問題を扱っていたのに対し、本書で扱われているのは面接の問題であるという違いがあります。本書の問題はトップ企業が面接で使う問題であり、そこにはトップ企業が求める能力が凝縮されています。また、仕様の曖昧な部分を自分で適切に設定する問題や、特殊な環境を想定したプログラムを書く問題も面接ならではと言えるでしょう。さらにオブジェクト指向設計、並列・分散システム、データベースというような発展的なトピックの問題までもが含まれています。


問題を通じてアルゴリズム等の力を身に付けたい人、プログラミングのパズルを楽しみたい人、近々面接を受ける人、逆に近々面接を行う人、アメリカの企業の文化に興味がある人など、さまざまな人に自分の読み方で活用してもらえればと思います。


以下,目次です.

  • I.面接の流れ
    • 概要 / どのように問題が選ばれるか / 面接準備予定表 / 評価プロセス / 正しくない答え / 面接時の服装 / 失敗トップ10 / よくある質問
  • II.面接試験の舞台裏
  • III.特殊な状況
    • 経験のある志願者 / テスターとSDET / プログラム/プロダクト・マネージャ / 開発リーダー/マネージャ / ベンチャー企業
  • IV.面接の前に
    • 良い経験を得る / ネットワークを築く / 履歴書の書き方
  • V.行動に関する質問
    • 準備 / 対策
  • VI.技術的な質問
    • 準備 / 対策 / アルゴリズム5つの手法 / 良い、きれいなコードとは
  • VII.オファーとその後
    • オファーと不採用の取り扱い / オファーの評価 / 交渉 / 仕事をしていく上で
  • VIII.問題
    • [データ構造]
      • Chapter 1 配列と文字列
      • Chapter 2 連結リスト
      • Chapter 3 スタックとキュー
      • Chapter 4 木とグラフ
    • [考え方とアルゴリズム]
    • [知識ベース]
      • Chapter 13 CとC++
      • Chapter 14 Java
      • Chapter 15 データベース
      • Chapter 16 スレッドとロック
    • [追加練習問題]
      • Chapter 17 中級編
      • Chapter 18 上級編
  • IX. 解法
    • [データ構造]
      • Chapter 1 "配列と文字列"の解法
      • Chapter 2 "連結リスト"の解法
      • Chapter 3 "スタックとキュー"の解法
      • Chapter 4 "木とグラフ"の解法
    • [考え方とアルゴリズム]
      • Chapter 5 "ビット操作"の解法
      • Chapter 6 "頭の体操"の解法
      • Chapter 7 "数学と確率"の解法
      • Chapter 8 "オブジェクト指向設計"の解法
      • Chapter 9 "再帰動的計画法"の解法
      • Chapter 10 "スケーラビリティとメモリ制限"の解法
      • Chapter 11 "ソートと探索"の解法
      • Chapter 12 "テスト"の解法
    • [知識ベース]
      • Chapter 13 "CとC++"の解法
      • Chapter 14 "Java"の解法
      • Chapter 15 "データベース"の解法
      • Chapter 16 "スレッドとロック"の解法
    • [追加練習問題]
      • Chapter 17 "中級編"の解法
      • Chapter 18 "上級編"の解法
  • X.謝辞
  • XI.索引
  • XII.プロフィール


……この内容では簡単すぎるという方は,以下の書籍をどうぞ.

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

Short Coding ~職人達の技法~

Short Coding ~職人達の技法~