世界で闘うプログラミング力を鍛える本(セカイデタタカウプログラミングリョクヲキタエルホン)
コーディング面接 189 問とその解法
プログラミング- 著者:
- Gayle Laakmann McDowell(ゲイル ラークマン マクダウェル)
- 出版社:
- マイナビ出版
- 出版日:
- 2016年09月28日頃
- ISBN:
- 9784839960100
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
人気のあるトップ IT 企業で行われるプログラミング面接に合格し採用されるための攻略本として、マイクロソフト、アップル、グーグルでエンジニアとして働き、かつ多くの採用プロセスに関わってきた著者によって本書は執筆されました。米国で大人気のコンピュータプログラミングに関するベストセラー書 (Cracking the Coding Interview: 189 Programming Questions and Solutions) の日本語版です。
本書で取り上げるプログラミング問題はトップ IT 企業が求める能力が凝縮されている面接で実際に使われた問題です。そしてなによりもアルゴリズムを中心としたコンピュータサイエンスの基礎知識や活用法を楽しみながら学べる内容となっています。
前著「世界で闘うプログラミング力を鍛える 150 問」と比べ問題数が増えただけでなく、 Big-O 記法の解説章や発展課題、解き方のヒントの追加、また全ての問題がカテゴライズされより読みやすくなりました。
問題を出しっぱなしにしない著者の親切丁寧な解説が本書最大の特徴です。
技書の森解説
『世界で闘うプログラミング力を鍛える本 コーディング面接 189 問とその解法』は、米国の技術面接対策書 "Cracking the Coding Interview: 189 Programming Questions and Solutions" の日本語版です。 Gayle Laakmann McDowell 氏の著書を岡田佑一氏と小林啓倫氏が訳し、 2017 年 2 月にマイナビ出版から刊行されました。版元の紹介文によれば、著者はマイクロソフト、アップル、グーグルでエンジニアとして働き、多くの採用プロセスに関わってきた人物で、収録されている 189 問はトップ IT 企業の面接で実際に使われた問題です。出題する側を経験した人間が、問われる能力と評価のされ方を踏まえて書いた対策書という点が、この本の立ち位置を決めています。
前著 150 問からの改良点と本書の特徴
同じ著者の翻訳書には前著『世界で闘うプログラミング力を鍛える 150 問』があり、本書はその後継にあたります。版元の紹介文は前著との違いとして、問題数の増加に加えて、Big-O 記法 (計算量の表記法) を解説する章の追加、発展課題や解き方のヒントの追加、全問題のカテゴリ分けを挙げています。また、問題を出しっぱなしにせず 1 問ずつ丁寧に解説するのが本書最大の特徴だと明言しており、答え合わせだけで終わらない作りが版元自身の売りになっています。
コーディング面接という形式の難しさ
コーディング面接という形式には、通常のアルゴリズム学習と異なる難しさがあります。制限時間の中で、初見の問題を、考えを声に出して整理しながら解き、計算量の見積もりまで説明することが求められるため、静かに問題集を解く勉強だけでは訓練しきれない領域があるのです。曖昧な出題条件をどう質問で明確にするか、素朴な解法から効率的な解法へどう段階を踏んで改善して見せるか、といった振る舞いは、実際の出題例と模範的な解法の導出過程を数多く追うことでしか身につきません。 189 問という分量とカテゴリ分けされた構成は、この反復訓練のためにあります。
読む前の注意: 米国の面接文化と 2017 年刊
読む際の注意点も 2 つあります。第 1 に、想定されている面接文化は米国のテック企業のものなので、日本国内の採用プロセスとそのまま一致するとは限りません。第 2 に、本書は 2017 年刊であり、アルゴリズムとデータ構造という中身は古びにくい一方、各社の選考プロセスや出題傾向そのものは変わり得るため、応募先の実際の選考形式は募集要項や公式の採用情報で確認してください。また、じっくり紙で問題演習を積む本なので、手早く要点だけさらいたい人には向きません。
向いている読者: 転職と基礎の鍛え直し
それでも、コーディングテストや技術面接を課す企業への転職を考えている人、外資系テック企業に挑戦したい人にとって、出題側の視点で書かれた大量の実例と解法をまとめて手に入れられる本は貴重です。面接対策を離れても、計算量を意識してコードを改善する訓練の素材として使えるため、データ構造とアルゴリズム の基礎を実戦形式で鍛え直したい人にも役立ちます。腰を据えて 1 問ずつ潰していく価値のある一冊です。
言及 Qiita 記事 (33 件)
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~
♡ 8323アルゴリズム, algorithm, AtCoder, 競技プログラミング, 新人プログラマ応援アルゴリズムとは何か!? ~ 文系理系問わず楽しめる精選 6 問 ~
♡ 2542アルゴリズム, 機械学習, DeepLearning, 競技プログラミング, 新人プログラマ応援1年半のソフトウェアエンジニア長期インターンで出会ったオススメ本をたくさん紹介します
♡ 858本, インターン, 書籍紹介DFS (深さ優先探索) 超入門! 〜 グラフ・アルゴリズムの世界への入口 〜【後編】
♡ 709アルゴリズム, AtCoder, 競技プログラミング, グラフ理論, 探索【2020年】史上最もおすすめされているプログラミング本【25選】
♡ 25プログラミング, 初心者, まとめ, 書籍, 新人プログラマ応援初めての自作キーボード
♡ 7Keyboard, 自作キーボード, Keyball[5章編]C++で「世界で闘うプログラミング力を鍛える本」をやっていく
♡ 3C++「世界で闘うプログラミング力を鍛える本」Pythonコード解答例 - 1.1 重複のない文字列
♡ 3Python, 世界で闘うプログラミング力を鍛える150問, 世界で闘うプログラミング力を鍛える本コーディング面接の問題に挑戦, そして4+1通りの解答
♡ 3C++, アルゴリズム, プログラミング, コーディング面接【Java】不変オブジェクトのStringと可変オブジェクトのStringBuilder
♡ 2Java, string, 文字列, StringBuilder, 計算量
この本に興味がある方におすすめ
この本に関連
関連記事
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。
本を読むスピードは気にしなくていい
1 ページ読むのに 10 分かかっても問題ありません。プログラミングの本はゆっくり読むのが正解である理由と、焦らず読み進めるコツを紹介します。
アルゴリズム本ガイド - 競プロだけじゃない、実務に活きる選び方
アルゴリズム本の 3 タイプと、実務でアルゴリズムの知識が活きる場面、数学が苦手な人向けの学習ルートを紹介します。
関連用語
競技プログラミング
与えられた問題を制限時間内に正確 / 高速に解くプログラミング競技
グラフアルゴリズム
ノードとエッジで構成されるグラフ構造に対する探索 / 最短経路 / 接続性の分析アルゴリズム
依存グラフとは - モジュール間の依存関係を可視化する方法
依存グラフはパッケージやモジュール間の依存関係を有向グラフで表現する手法。循環依存の検出 / ビルド順序の決定 / 影響範囲分析での活用法を解説
プログラミング
コンピュータに実行させる手順をプログラミング言語で記述し、動作を作り出す行為
グラフデータベース
ノード (エンティティ) とエッジ (関係) でデータを表現し、複雑な関係性のクエリに特化したデータベース
ペアプログラミング
2 人の開発者が 1 台の PC で協力してコードを書く開発手法