関連サイト
本書の関連ページが用意されています。
内容紹介
人気のあるトップIT企業で行われるコーディング面接に合格し採用されるための攻略本として、グーグル等でエンジニアとして働き、かつ多くの採用プロセスに関わってきた著者によって本書は執筆されました。米国で大人気のコンピュータプログラミングに関するベストセラー書(Cracking the Coding Interview: 189 Programming Questions and Solutions)の日本語版です。
本書で取り上げるプログラミング問題はトップIT企業が求める能力が凝縮されている、面接で実際に使われたものです。そしてなによりもアルゴリズムを中心としたコンピュータサイエンスの基礎知識や活用法を楽しみながら学べる内容となっています。
前著「世界で闘うプログラミング力を鍛える150問」と比べ計算量に関する説明がより詳細になりました。新規の問題はもちろん、既存の問題についても時間計算量・空間計算量の記述が追加され、計算量の見積もりについての話題も参考になるでしょう。また木とグラフ・探索アルゴリズムに関する説明も充実したものになり、純粋なプログラミング技術書としてのバランスと深みが増しました。Big-O記法の解説章や発展課題、解き方のヒントの追加、また全ての問題がカテゴライズされより読みやすくなりました。
本書が支持されている理由は「面接」という限られた時間だけにフォーカスするのではなく、その前後における行動までアドバイスしてくれている点です。「エンジニアとして日々をどう過ごすか」を考える上で非常に有益でしょう。
自分がプログラマとして現在「どんな分野」に関して、どの程度の「能力」があるのか。これからのキャリアアップに必要な知識やスキルを考える手がかりとして。あるいは本当に優秀な候補者を採用する面接を行うための一冊として。
本書にはそのヒントがたくさん含まれています。
書誌情報
- 著者: Gayle Laakmann McDowell(著), 岡田佑一, 小林啓倫(訳)
- 発行日: 2017-03-10 (紙書籍版発行日: 2017-03-10)
- 最終更新日: 2019-02-25
- バージョン: 1.2.0
- ページ数: 772ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
Gayle Laakmann McDowell
Gayle Laakmann McDowel(l ゲイル・L・マクダウェル)は強力なバックグラウンド:ソフトウェア開発とその雇用面の両方に豊富な経験を持ちあわせている。彼女はソフトウェアエンジニアとして、マイクロソフト、アップル、グーグルに勤務した経験を持つ。特にグーグルでの3年間は、トップ面接官の1人として、採用委員会のメンバーを務めた。米国およびその他の国で数百もの候補者に面接を行い、採用委員会では数千もの面接結果の評価、より多くの履歴書評価を行った。候補者としては、マイクロソフト、グーグル、アマゾン、IBM、アップルを含む20社以上から採用オファーを受けた。
マクダウェルは、候補者らがコーディング面接にチャレンジする際、最高の状態で臨めることを可能とするCareerCupを設立した。CareerCup.comでは有名企業による数千もの面接問題データベースを提供し、面接に関するアドバイスのためのフォーラムも設置している。
本書に加え、彼女には以下の2つの著作がある。『Cracking the Tech Career: Insider Advice on Landing a Job at Google, Microsoft, Apple, or Any Top Tech Company』は大手IT 企業での面接プロセスを幅広く取り扱ったものである。大学1年生からマーケティングのプロまで、これらの企業でキャリアアップのためどのように身を置くかについて洞察している。
『Cracking the PM Interview: How to Land a Product Manager Job in Technology 』(日本語版: マイナビ出版刊『世界で闘うプロダクトマネジャーになるための本 ̶トップIT 企業のPMとして就職する方法』)はスタートアップ企業や巨大IT 企業のプロダクト・マネジメントの役割に焦点を当てている。これらの役割を担っていくための戦略を提供し、どのようにPM面接の準備をするかを求職者に伝授する。
CareerCupと彼女の役割は、テクニカル企業における採用プロセスのコンサルティング、技術面接のトレーニング・ワークショップの指導、獲得面接のための新興企業のエンジニアの指導である。
マクダウェルはペンシルベニア大学でコンピュータサイエンスの学士および修士号を、ウォートンスクールでMBAを取得している。カリフォルニア州パロアルト在住。夫、2人の息子、犬およびコンピュータ科学の本と共に暮らし、また毎日コーディングを行っている。
岡田佑一
小さな学習塾を営む。子どもたちとの日常から生まれたアイデアを元にプログラミング問題を多数作成し、解説記事等の執筆活動も行っている。著書に『ショートコーディング 職人達の技法』、執筆協力に『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造 』(以上、マイナビ出版)。
小林啓倫
経営コンサルタント。システムエンジニアとしてキャリアを積んだ後、米バブソン大学でMBAを取得。その後外資系コンサルティングファーム、国内ベンチャー企業を経て、現在はコンサルタント業の傍ら、ライター/翻訳者としても活動。著書に『FinTechが変える! 金融×テクノロジーが生み出す新たなビジネス』(朝日新聞出版)、監訳書に『世界で闘うプロダクトマネジャーになるための本(』マイナビ出版)、訳書に『ソーシャル物理学「: 良いアイデアはいかに広がるか」の新しい科学』(草思社)など多数。
目次
I. 面接の流れ
II. 面接試験の舞台裏
- マイクロソフト、アマゾン、グーグル、アップル、フェイスブック、パランティールの面接
III. 特殊な状況
- 職歴の長い候補者
- テスターとSDET
- プロダクト/プログラム・マネージャ
- 開発リーダー/マネージャ
- スタートアップ起業
- 合併や買収による人材獲得
IV. 面接の前に
- 履歴書の書き方
- 準備表
V. 行動に関する質問
- 面接準備の表
- 技術的プロジェクトについて整理する
VI. ビッグ・オー記法(Big O)
VII. 技術的な質問
- 問題攻略ガイド
- 最適化と解答テクニック
- 面接の「最強」言語
- 良い、きれいなコードとは
VIII. オファーとその後
IX. 問題
X. 解法
- [データ構造]
- 1 配列と文字列
- 2 連結リスト
- 3 スタックとキュー
- 4 木とグラフ
- [考え方とアルゴリズム]
- 5 ビット操作
- 6 数学と論理パズル
- 7 オブジェクト指向設計
- 8 再帰と動的計画法
- 9 スケーラビリティとシステムデザイン
- 10 ソートと探索
- 11 テスト
- [知識ベース]
- 12 CとC++
- 13 Java
- 14 データベース
- 15 スレッドとロック
- [追加練習問題]
- 16 中級編
- 17 上級編
XI. より高度な話題
- トポロジカルソート
- ダイクストラ法
- ハッシュテーブルの衝突処理
- ラビン-カープ文字列検索
- AVL木
- 赤黒木
- マップリデュース
XII. コードライブラリ
- HashMapList
- TreeNode(二分探索木)
- LinkedListNode(連結リスト)
- Trie & TrieNode(トライ木)
XIII. ヒント
- [データ構造]のヒント
- [考え方とアルゴリズム]
- [知識ベース]のヒント
- [追加練習問題]のヒント