diff --git a/README.md b/README.md index d3fd430..750413f 100644 --- a/README.md +++ b/README.md @@ -129,51 +129,60 @@ software development/engineering roles. ### Topics of Study -- [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) - - [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) - - [How computers process a program](#how-computers-process-a-program) - - [Caches](#caches) - - [Processes and Threads](#processes-and-threads) - - [Testing](#testing) - - [String searching & manipulations](#string-searching--manipulations) - - [Tries](#tries) - - [Floating Point Numbers](#floating-point-numbers) - - [Unicode](#unicode) - - [Endianness](#endianness) - - [Networking](#networking) -- [Final Review](#final-review) +- [Coding Interview University](#coding-interview-university) + - [What is it?](#what-is-it) + - [Table of Contents](#table-of-contents) + - [The Study Plan](#the-study-plan) + - [Topics of Study](#topics-of-study) + - [Getting the Job](#getting-the-job) + - [Optional Extra Topics & Resources](#optional-extra-topics--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) + - [A Note About Video Resources](#a-note-about-video-resources) + - [Choose a Programming Language](#choose-a-programming-language) + - [For this Study Plan](#for-this-study-plan) + - [For your Coding Interview](#for-your-coding-interview) + - [Books for Data Structures and Algorithms](#books-for-data-structures-and-algorithms) + - [C](#c) + - [Python](#python) + - [Java](#java) + - [C++](#c-1) + - [Interview Prep Books](#interview-prep-books) + - [If you have tons of extra time:](#if-you-have-tons-of-extra-time) + - [Don't Make My Mistakes](#dont-make-my-mistakes) + - [1. You Won't Remember it All](#1-you-wont-remember-it-all) + - [2. Use Flashcards](#2-use-flashcards) + - [3. Do Coding Interview Questions While You're Learning](#3-do-coding-interview-questions-while-youre-learning) + - [4. Focus](#4-focus) + - [What you won't see covered](#what-you-wont-see-covered) + - [The Daily Plan](#the-daily-plan) + - [Coding Question Practice](#coding-question-practice) + - [Coding Problems](#coding-problems) + - [Let's Get Started](#lets-get-started) + - [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) + - [Final Review](#final-review) + - [Update Your Resume](#update-your-resume) + - [Find a Job](#find-a-job) + - [Interview Process & General Interview Prep](#interview-process--general-interview-prep) + - [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) + - [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) + - [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) ### Getting the Job @@ -188,50 +197,60 @@ software development/engineering roles. ### Optional Extra Topics & Resources -- [Additional Books](#additional-books) -- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience) -- [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) + - [The Study Plan](#the-study-plan) + - [Topics of Study](#topics-of-study) + - [Getting the Job](#getting-the-job) + - [Optional Extra Topics & Resources](#optional-extra-topics--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) + - [A Note About Video Resources](#a-note-about-video-resources) + - [Choose a Programming Language](#choose-a-programming-language) + - [For this Study Plan](#for-this-study-plan) + - [For your Coding Interview](#for-your-coding-interview) + - [Books for Data Structures and Algorithms](#books-for-data-structures-and-algorithms) + - [C](#c) + - [Python](#python) + - [Java](#java) + - [C++](#c-1) + - [Interview Prep Books](#interview-prep-books) + - [If you have tons of extra time:](#if-you-have-tons-of-extra-time) + - [Don't Make My Mistakes](#dont-make-my-mistakes) + - [1. You Won't Remember it All](#1-you-wont-remember-it-all) + - [2. Use Flashcards](#2-use-flashcards) + - [3. Do Coding Interview Questions While You're Learning](#3-do-coding-interview-questions-while-youre-learning) + - [4. Focus](#4-focus) + - [What you won't see covered](#what-you-wont-see-covered) + - [The Daily Plan](#the-daily-plan) + - [Coding Question Practice](#coding-question-practice) + - [Coding Problems](#coding-problems) + - [Let's Get Started](#lets-get-started) + - [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) + - [Final Review](#final-review) + - [Update Your Resume](#update-your-resume) + - [Find a Job](#find-a-job) + - [Interview Process & General Interview Prep](#interview-process--general-interview-prep) + - [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) + - [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) + - [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) --- @@ -916,8 +935,8 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] [Depth-First Search](https://www.youtube.com/watch?v=IBfWDYSffUU&t=32s&ab_channel=MITOpenCourseWare) - [ ] Skiena Lectures - great intro: - - [ ] [CSE373 2020 - Lecture 11 - Graph Data Structures (video)](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=10) - - [ ] [CSE373 2020 - Lecture 12 - Graph Traversal (video)](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=11) + - [ ] [CSE373 2020 - Lecture 10 - Graph Data Structures (video)](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=10) + - [ ] [CSE373 2020 - Lecture 11 - Graph Traversal (video)](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=11) - [ ] [CSE373 2020 - Lecture 12 - Depth First Search (video)](https://www.youtube.com/watch?v=KyordYB3BOs&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=12) - [ ] [CSE373 2020 - Lecture 13 - Minimum Spanning Trees (video)](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=13) - [ ] [CSE373 2020 - Lecture 14 - Minimum Spanning Trees (con't) (video)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=14)