This commit is contained in:
ka_ueno 2021-04-02 13:03:48 +09:00
parent 6f24512b00
commit c75d34160f
2 changed files with 221 additions and 182 deletions

209
README.md
View File

@ -67,111 +67,120 @@ If you want to be a reliability engineer or operations engineer, study more from
## Table of Contents
- [Coding Interview University](#coding-interview-university)
- [What is it?](#what-is-it)
- [Table of Contents](#table-of-contents)
- [Additional Resources](#additional-resources)
- [Why use it?](#why-use-it)
- [How to use it](#how-to-use-it)
- [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough)
- [About Video Resources](#about-video-resources)
- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
- [Pick One Language for the Interview](#pick-one-language-for-the-interview)
- [Book List](#book-list)
- [Interview Prep](#interview-prep)
- [If you have tons of extra time:](#if-you-have-tons-of-extra-time)
- [Language Specific](#language-specific)
- [C++](#c)
- [Java](#java)
- [Python](#python)
- [Before you Get Started](#before-you-get-started)
- [1. You Won't Remember it All](#1-you-wont-remember-it-all)
- [2. Use Flashcards](#2-use-flashcards)
- [3. Start doing coding interview questions while you're learning data structures and algorithms](#3-start-doing-coding-interview-questions-while-youre-learning-data-structures-and-algorithms)
- [4. Review, review, review](#4-review-review-review)
- [5. Focus](#5-focus)
- [What you won't see covered](#what-you-wont-see-covered)
- [The Daily Plan](#the-daily-plan)
- [Prerequisite Knowledge](#prerequisite-knowledge)
- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
- [Data Structures](#data-structures)
- [More Knowledge](#more-knowledge)
- [Trees](#trees)
- [Sorting](#sorting)
- [Graphs](#graphs)
- [Even More Knowledge](#even-more-knowledge)
- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling)
- [Final Review](#final-review)
- [Coding Question Practice](#coding-question-practice)
- [Coding exercises/challenges](#coding-exerciseschallenges)
- [Once you're closer to the interview](#once-youre-closer-to-the-interview)
- [Your Resume](#your-resume)
- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
- [Have questions for the interviewer](#have-questions-for-the-interviewer)
- [Once You've Got The Job](#once-youve-got-the-job)
- [Additional Books](#additional-books)
- [Additional Learning](#additional-learning)
- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
- [Video Series](#video-series)
- [Computer Science Courses](#computer-science-courses)
- [Algorithms implementation](#algorithms-implementation)
- [Papers](#papers)
- [LICENSE](#license)
- [What is it?](#what-is-it)
- [Why use it?](#why-use-it)
- [How to use it](#how-to-use-it)
- [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough)
- [About Video Resources](#about-video-resources)
- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
- [Pick One Language for the Interview](#pick-one-language-for-the-interview)
- [Book List](#book-list)
- [Before you Get Started](#before-you-get-started)
- [What you Won't See Covered](#what-you-wont-see-covered)
- [The Daily Plan](#the-daily-plan)
- [Prerequisite Knowledge](#prerequisite-knowledge)
- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
- [Data Structures](#data-structures)
- [Arrays](#arrays)
- [Linked Lists](#linked-lists)
- [Stack](#stack)
- [Queue](#queue)
- [Hash table](#hash-table)
- [More Knowledge](#more-knowledge)
- [Binary search](#binary-search)
- [Bitwise operations](#bitwise-operations)
- [Trees](#trees)
- [Trees - Notes & Background](#trees---notes--background)
- [Binary search trees: BSTs](#binary-search-trees-bsts)
- [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap)
- balanced search trees (general concept, not details)
- traversals: preorder, inorder, postorder, BFS, DFS
- [Sorting](#sorting)
- selection
- insertion
- heapsort
- quicksort
- merge sort
- [Graphs](#graphs)
- directed
- undirected
- adjacency matrix
- adjacency list
- traversals: BFS, DFS
- [Even More Knowledge](#even-more-knowledge)
- [Recursion](#recursion)
- [Dynamic Programming](#dynamic-programming)
- [Object-Oriented Programming](#object-oriented-programming)
- [Design Patterns](#design-patterns)
- [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability)
- [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
- [Caches](#caches)
- [Processes and Threads](#processes-and-threads)
- [Testing](#testing)
- [Scheduling](#scheduling)
- [String searching & manipulations](#string-searching--manipulations)
- [Tries](#tries)
- [Floating Point Numbers](#floating-point-numbers)
- [Unicode](#unicode)
- [Endianness](#endianness)
- [Networking](#networking)
- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience)
- [Final Review](#final-review)
- [Coding Question Practice](#coding-question-practice)
- [Coding exercises/challenges](#coding-exerciseschallenges)
- [Once you're closer to the interview](#once-youre-closer-to-the-interview)
- [Your Resume](#your-resume)
- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
- [Have questions for the interviewer](#have-questions-for-the-interviewer)
- [Once You've Got The Job](#once-youve-got-the-job)
---------------- Everything below this point is optional ----------------
## Additional Resources
- [Coding Interview University](#coding-interview-university)
- [What is it?](#what-is-it)
- [Table of Contents](#table-of-contents)
- [Additional Resources](#additional-resources)
- [Why use it?](#why-use-it)
- [How to use it](#how-to-use-it)
- [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough)
- [About Video Resources](#about-video-resources)
- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
- [Pick One Language for the Interview](#pick-one-language-for-the-interview)
- [Book List](#book-list)
- [Interview Prep](#interview-prep)
- [If you have tons of extra time:](#if-you-have-tons-of-extra-time)
- [Language Specific](#language-specific)
- [C++](#c)
- [Java](#java)
- [Python](#python)
- [Before you Get Started](#before-you-get-started)
- [1. You Won't Remember it All](#1-you-wont-remember-it-all)
- [2. Use Flashcards](#2-use-flashcards)
- [3. Start doing coding interview questions while you're learning data structures and algorithms](#3-start-doing-coding-interview-questions-while-youre-learning-data-structures-and-algorithms)
- [4. Review, review, review](#4-review-review-review)
- [5. Focus](#5-focus)
- [What you won't see covered](#what-you-wont-see-covered)
- [The Daily Plan](#the-daily-plan)
- [Prerequisite Knowledge](#prerequisite-knowledge)
- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
- [Data Structures](#data-structures)
- [More Knowledge](#more-knowledge)
- [Trees](#trees)
- [Sorting](#sorting)
- [Graphs](#graphs)
- [Even More Knowledge](#even-more-knowledge)
- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling)
- [Final Review](#final-review)
- [Coding Question Practice](#coding-question-practice)
- [Coding exercises/challenges](#coding-exerciseschallenges)
- [Once you're closer to the interview](#once-youre-closer-to-the-interview)
- [Your Resume](#your-resume)
- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
- [Have questions for the interviewer](#have-questions-for-the-interviewer)
- [Once You've Got The Job](#once-youve-got-the-job)
- [Additional Books](#additional-books)
- [Additional Learning](#additional-learning)
- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
- [Video Series](#video-series)
- [Computer Science Courses](#computer-science-courses)
- [Algorithms implementation](#algorithms-implementation)
- [Papers](#papers)
- [LICENSE](#license)
- [Additional Books](#additional-books)
- [Additional Learning](#additional-learning)
- [Compilers](#compilers)
- [Emacs and vi(m)](#emacs-and-vim)
- [Unix command line tools](#unix-command-line-tools)
- [Information theory](#information-theory-videos)
- [Parity & Hamming Code](#parity--hamming-code-videos)
- [Entropy](#entropy)
- [Cryptography](#cryptography)
- [Compression](#compression)
- [Computer Security](#computer-security)
- [Garbage collection](#garbage-collection)
- [Parallel Programming](#parallel-programming)
- [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
- [A*](#a)
- [Fast Fourier Transform](#fast-fourier-transform)
- [Bloom Filter](#bloom-filter)
- [HyperLogLog](#hyperloglog)
- [Locality-Sensitive Hashing](#locality-sensitive-hashing)
- [van Emde Boas Trees](#van-emde-boas-trees)
- [Augmented Data Structures](#augmented-data-structures)
- [Balanced search trees](#balanced-search-trees)
- AVL trees
- Splay trees
- Red/black trees
- 2-3 search trees
- 2-3-4 Trees (aka 2-4 trees)
- N-ary (K-ary, M-ary) trees
- B-Trees
- [k-D Trees](#k-d-trees)
- [Skip lists](#skip-lists)
- [Network Flows](#network-flows)
- [Disjoint Sets & Union Find](#disjoint-sets--union-find)
- [Math for Fast Processing](#math-for-fast-processing)
- [Treap](#treap)
- [Linear Programming](#linear-programming-videos)
- [Geometry, Convex hull](#geometry-convex-hull-videos)
- [Discrete math](#discrete-math)
- [Machine Learning](#machine-learning)
- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
- [Video Series](#video-series)
- [Computer Science Courses](#computer-science-courses)
- [Papers](#papers)
---

View File

@ -36,7 +36,7 @@
## これは何?
これは、Webエンジニア(独学で、CS学位なし)から大企業のソフトウェアエンジニアを目指すための私の数月の学習計画です。
これは、Webエンジニア(独学で、CS学位なし)から大企業のソフトウェアエンジニアを目指すための私の数月の学習計画です。
![ホワイトボードでのコーディング - HBOのシリコンバレーから](https://d3j2pkmjtin6ou.cloudfront.net/coding-at-the-whiteboard-silicon-valley.png)
@ -50,92 +50,122 @@ SREまたはシステムエンジニアになりたい場合は、オプショ
---
## 目次
- [コーディング面接の大学](#コーディング面接の大学)
- [これは何?](#これは何)
- [目次](#目次)
- [なぜそれを使用するのですか?](#なぜそれを使用するのですか)
- [それの使い方](#それの使い方)
- [あなたは十分にスマートではないと感じないでください](#あなたは十分にスマートではないと感じないでください)
- [ビデオリソースについて](#ビデオリソースについて)
- [面接のプロセスと一般的な面接の準備](#面接のプロセスと一般的な面接の準備)
- [面接のための1つの言語を選ぶ](#面接のための1つの言語を選ぶ)
- [ブックリスト](#ブックリスト)
- [面接の準備](#面接の準備)
- [コンピュータアーキテクチャ](#コンピュータアーキテクチャ)
- [言語固有](#言語固有)
- [C++](#c)
- [Java](#java)
- [Python](#python)
- [オプションの書籍](#オプションの書籍)
- [始める前に](#始める前に)
- [1.あなたはそれをすべて覚えていない](#1あなたはそれをすべて覚えていない)
- [2.フラッシュカードを使用する](#2フラッシュカードを使用する)
- [3.レビュー、レビュー、評価](#3レビューレビュー評価)
- [4.フォーカス](#4フォーカス)
- [カバーされていないもの](#カバーされていないもの)
- [日々の計画](#日々の計画)
- [前提知識](#前提知識)
- [アルゴリズムの複雑さ/ Big-O / Asymptotic解析](#アルゴリズムの複雑さ-big-o--asymptotic解析)
- [データ構造](#データ構造)
- [その他の知識](#その他の知識)
- [](#木)
- [ソート](#ソート)
- [グラフ](#グラフ)
- [さらに多くの知識](#さらに多くの知識)
- [システム設計、スケーラビリティ、データ処理](#システム設計スケーラビリティデータ処理)
- [最終レビュー](#最終レビュー)
- [コーディングの質問練習](#コーディングの質問練習)
- [コード演習/挑戦](#コード演習挑戦)
- [面接に近づいたら](#面接に近づいたら)
- [あなたの履歴書](#あなたの履歴書)
- [面接が来たときに考えてください](#面接が来たときに考えてください)
- [面接官に質問があります](#面接官に質問があります)
- [一度あなたは仕事を得た](#一度あなたは仕事を得た)
- [その他の書籍](#その他の書籍)
- [その他の学習](#その他の学習)
- [追加科目の詳細](#追加科目の詳細)
- [ビデオシリーズ](#ビデオシリーズ)
- [コンピュータサイエンスコース](#コンピュータサイエンスコース)
- [これは何?](#これは何?)
- [なぜこれを使うの?](#why-use-it)
- [使い方](#使い方)
- [あなたは十分にスマートではないと感じないでください](十分にスマートではありません)
- [ビデオリソースについて](#about-video-resources)
- [面接のプロセスと一般的な面接の準備](#面接プロセス--一般面接--準備)
- [面接のための1つの言語を選ぶ](面接のために1つの言語を選択する)
- [ブックリスト](#ブックリスト)
- [始める前に](始める前に#)
- あなたがカバーしていないもの(何があなたには見えません)
- [前提知識](#前提条件知識)
- [日々の計画](日々の計画)
- [アルゴリズムの複雑さ/ Big-O / Asymptotic分析](#アルゴリズム--複雑--big-o--漸近分析)
- [データ構造](#データ構造)
- [配列](#配列)
- [連結リスト](#連結リスト)
- [スタック](#スタック)
- [キュー](#キュー)
- [ハッシュテーブル](#ハッシュテーブル)
- [その他の知識](#more-knowledge)
- [二分探索](#二分探索)
- [ビット演算](#ビット演算)
- [木構造](#木)
- [木構造 - ノートと背景](#木---ノート--背景)
- [二分探索木BST](#binary-search-trees-bsts)
- [ヒープ/優先度つきキュー/二分ヒープ](#ヒープ--優先度キュー--バイナリヒープ)
- 平衡探索木(詳細ではなく一般概念)
- 木の走査(traversal):行きがけ順(pre-order)、通りがかり順(in-order)、帰りがけ順(postorder)、深さ優先探索(BFS)、幅優先探索(DFS)
- [ソート](#ソート)
- 選択ソート
- 挿入ソート
- ヒープソート
- クイックソート
- マージソート
- [グラフ](#グラフ)
- 有向グラフ
- 無向グラフ
- 隣接行列
- 隣接リスト
- トラバーサルBFS、DFS
- [さらに多くの知識](#偶数知識)
- [再帰](#再帰)
- [動的プログラミング](#動的プログラミング)
- [オブジェクト指向プログラミング](#オブジェクト指向プログラミング)
- [デザインパターン](#デザインパターン)
- [組み合わせと確率](#combinatorics-n-choose-k--確率)
- [NP、NP完全/近似アルゴリズム](#np-np-complete-and-approximation-algorithms)
- [キャッシュ](#キャッシュ)
- [プロセスとスレッド](#processes-and-threads)
- [論文](#論文)
- [テスト](#テスト)
- [スケジューリング](#スケジューリング)
- [システムルーチンを実装する](#implement-system-routines)
- [文字列検索と操作](#文字列検索--操作)
- [試行](#試行)
- [浮動小数点数](浮動小数点数)
- [ユニコード](#ユニコード)
- [バイト順(エンディアン)](#エンディアン)
- [ネットワーキング](#ネットワーキング)
- [システム設計、スケーラビリティ、データ処理](#システム設計--スケーラビリティなデータ処理)(4年以上の経験がある場合)
- [最終審査](#最終審査)
- [コーディング質問練習](#コーディング質問練習)
- [コーディング練習問題/挑戦](#コーディング演習問題)
- [面接に近づいたら](面接に一度近づいて)
- [履歴書](あなたの履歴書)
- [面接が来たときに考える](面接のときに考えている)
- [面接官に質問があります](#面接のための質問があります)
- [一度あなたは仕事を得た](一度あなたが仕事をしたこと)
----------------この時点より下のものはすべてオプションです----------------
- [その他の書籍](#その他の書籍)
- [その他の学習](#その他の学習)
- [コンパイラ](#コンパイラ)
- [Emacsとvi(m)](#Emacsとvi(m))
- [Unixコマンドラインツール](#Unixコマンドラインツール)
- [情報理論(ビデオ)](#情報理論(ビデオ))
- [パリティ&ハミングコード(ビデオ)](#パリティ&ハミングコード(ビデオ))
- [エントロピー](#エントロピー)
- [暗号化](#暗号化)
- [圧縮](#圧縮)
- [コンピュータセキュリティ](#コンピュータセキュリティ)
- [ガベージコレクション](#ガベージコレクション)
- [パラレルプログラミング](#パラレルプログラミング)
- [メッセージング、シリアライゼーション、およびキューイングシステム](#メッセージング、シリアライゼーション、およびキューイングシステム)
- [A *](#A *)
- [高速フーリエ変換](#高速フーリエ変換)
- [ブルームフィルター](#ブルームフィルター)
- [HyperLogLog](#HyperLogLog)
- [局所性に敏感なハッシング](#局所性に敏感なハッシング)
- [ヴァンEmde Boasの木](#ヴァンEmde Boasの木)
- [拡張データ構造](#拡張データ構造)
- [バランスの取れた検索木](#バランスの取れた検索木)
- [kD木](#kD木)
- [リストをスキップする](#リストをスキップする)
- [ネットワークの流れ](#ネットワークの流れ)
- [分離集合と連合検索](#分離集合と連合検索)
- [高速処理のための数学](#高速処理のための数学)
- [Treap](#Treap)
- [リニアプログラミング(ビデオ)](#リニアプログラミング(ビデオ))
- [幾何学、凸包(ビデオ)](#幾何学、凸包(ビデオ))
- [離散数学](#離散数学)
- [機械学習](#機械学習)
- [追加科目の詳細](#追加科目の詳細)
- [追加の書籍](追加の書籍数)
- [追加の学習](追加学習)
- [コンパイラ](#コンパイラ)
- [Emacsとvi(m)](#emacs-and-vim)
- [Unixコマンドラインツール](#unix-command-line-tools)
- [情報理論](#情報理論)
- [パリティとハミング符号](#パリティ--ハミングコード)
- [情報量(エントロピー)](#エントロピー)
- [暗号化](#暗号化)
- [圧縮](#圧縮)
- [コンピュータセキュリティ](#コンピュータセキュリティ)
- [ガベージコレクション](#ガベージコレクション)
- [並列計算](#パラレルプログラミング)
- [メッセージング、シリアライゼーション・キューイングシステム](#メッセージングシリアライゼーションとキューイングシステム)
- [A *](#a)
- [高速フーリエ変換](#高速フーリエ変換)
- [ブルームフィルタ](#ブルームフィルタ)
- [HyperLogLog](#hyperloglog)
- [局所性鋭敏型ハッシュ](#ローカリティセンシティブハッシング)
- [van Emde Boas Trees(バン エンデ ボース)](ヴァン・エムード・ボア・木)
- [拡張データ構造](#拡張データ構造)
- [N-ary(k-ary、M-ary)木](#n-ary-k-ary-m-ary-trees)
- [平衡探索木](#バランス検索木)
- AVL木
- スプレー木
- 赤黒木
- 2-3木
- 2-3-4木(別名2-4木)
- 多分木(N-aryK-aryM-ary木)
- B木
- [kd木](#k-d-trees)
- [スキップリスト](#スキップリスト)
- [ネットワークのフロー](#ネットワークフロー)
- [素集合データ構造とUnion-Findアルゴリズム](#disjoint-sets--union-find)
- [高速処理のための数学](#数学のための高速処理)
- [Treap](#treap)
- [線形計画法](#線形計画法)
- [ジオメトリ、凸包](#ジオメトリ--凸包)
- [離散数学](離散数学)
- [機械学習](機械学習)
- [いくつかの科目の追加の詳細](#追加の詳細--いくつかの科目)
- [ビデオシリーズ](#ビデオシリーズ)
- [コンピュータサイエンスコース](#コンピュータサイエンスコース)
## なぜそれを使用するのですか?
私はこのプロジェクトを始めたとき、ヒープからスタックを知りませんでしたし、Big-Oの何か、樹木に関すること、グラフをたどる方法を知らなかったのです。
@ -1543,7 +1573,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [エラー修正](https://www.youtube.com/watch?v=JAMLuxdHH8o)
- [ ] [エラーチェック](https://www.youtube.com/watch?v=wbH2VxzmoZk)
- ### エントロピー
- ## #エントロピー
- 下記の動画もご覧ください
- 最初に情報理論ビデオを見てください
- [情報理論、Claude Shannon、エントロピー、冗長性、データ圧縮およびビット(ビデオ)](https://youtu.be/JnJq3Py0dyM?t=176)