|
@@ -67,120 +67,111 @@ If you want to be a reliability engineer or operations engineer, study more from
|
|
|
|
|
|
## Table of Contents
|
|
## Table of Contents
|
|
|
|
|
|
-- [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)
|
|
|
|
|
|
+- [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)
|
|
|
|
|
|
---------------- Everything below this point is optional ----------------
|
|
---------------- Everything below this point is optional ----------------
|
|
|
|
|
|
## Additional Resources
|
|
## Additional Resources
|
|
|
|
|
|
-- [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)
|
|
|
|
|
|
+- [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)
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|