|
@@ -114,8 +114,9 @@ software development/engineering roles.
|
|
|
- [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)
|
|
|
-- [Pick One Language for the Interview](#pick-one-language-for-the-interview)
|
|
|
-- [Book List](#book-list)
|
|
|
+- [Choose a Programming Language](#choose-a-programming-language)
|
|
|
+- [Books for Data Structures and Algorithms](#books-for-data-structures-and-algorithms)
|
|
|
+- [Interview Prep Books](#interview-prep-books)
|
|
|
- [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)
|
|
@@ -155,6 +156,7 @@ software development/engineering roles.
|
|
|
- [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)
|
|
@@ -282,10 +284,35 @@ Mark all boxes with X after you completed your changes:
|
|
|
Some videos are available only by enrolling in a Coursera or EdX class. These are called MOOCs.
|
|
|
Sometimes the classes are not in session so you have to wait a couple of months, so you have no access.
|
|
|
|
|
|
- I'd appreciate your help to add free and always-available public sources, such as YouTube videos to accompany the online course videos.
|
|
|
- I like using university lectures.
|
|
|
+It would be great to replace the online course resources with free and always-available public sources,
|
|
|
+such as YouTube videos (preferably university lectures), so that you people can study these anytime,
|
|
|
+not just when a specific online course is in session.
|
|
|
|
|
|
-## Pick One Language for the Interview
|
|
|
+## Choose a Programming Language
|
|
|
+
|
|
|
+You'll need to choose a programming language for the coding interviews you do,
|
|
|
+but you'll also need to find a language that you can use to study computer science concepts.
|
|
|
+
|
|
|
+Preferably the language would be the same, so that you only need to be proficient in one.
|
|
|
+
|
|
|
+### For this Study Plan
|
|
|
+
|
|
|
+When I did the study plan, I used 2 languages for most of it: C and Python
|
|
|
+
|
|
|
+* C: Very low level. Allows you to deal with pointers and memory allocation/deallocation, so you feel the data structures
|
|
|
+ and algorithms in your bones. In higher level languages like Python or Java, these are hidden from you. In day to day work, that's terrific,
|
|
|
+ but when you're learning how these low-level data structures are built, it's great to feel close to the metal.
|
|
|
+ - C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
|
|
|
+ - [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
|
|
|
+ - This is a short book, but it will give you a great handle on the C language and if you practice it a little
|
|
|
+ you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
|
|
|
+ - You don't need to go super deep in the book (or even finish it). Just get to where you're comfortable reading and writing in C.
|
|
|
+ - [Answers to questions in the book](https://github.com/lekkas/c-algorithms)
|
|
|
+* Python: Modern and very expressive, I learned it because it's just super useful and also allows me to write less code in an interview.
|
|
|
+
|
|
|
+This is my preference. You do what you like, of course.
|
|
|
+
|
|
|
+### For your Coding Interview
|
|
|
|
|
|
You can use a language you are comfortable in to do the coding part of the interview, but for large companies, these are solid choices:
|
|
|
|
|
@@ -298,86 +325,80 @@ You could also use these, but read around first. There may be caveats:
|
|
|
- JavaScript
|
|
|
- Ruby
|
|
|
|
|
|
-Here is an article I wrote about choosing a language for the interview: [Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
|
|
|
+Here is an article I wrote about choosing a language for the interview:
|
|
|
+[Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
|
|
|
+This is the original article my post was based on: http://blog.codingforinterviews.com/best-programming-language-jobs/
|
|
|
|
|
|
You need to be very comfortable in the language and be knowledgeable.
|
|
|
|
|
|
-Read more about choices:
|
|
|
-- http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
|
|
|
-- http://blog.codingforinterviews.com/best-programming-language-jobs/
|
|
|
-
|
|
|
-[See language resources here](programming-language-resources.md)
|
|
|
+Read more about choices:
|
|
|
+- [Choose the Right Language for Your Coding Interview](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
|
|
|
|
|
|
-You'll see some C, C++, and Python learning included below, because I'm learning. There are a few books involved, see the bottom.
|
|
|
+[See language-specific resources here](programming-language-resources.md)
|
|
|
|
|
|
-## Book List
|
|
|
+## Books for Data Structures and Algorithms
|
|
|
|
|
|
-This is a shorter list than what I used. This is abbreviated to save you time.
|
|
|
+This book will form your foundation for computer science.
|
|
|
|
|
|
-### Interview Prep
|
|
|
+Just choose one, in a language that you will be comfortable with. You'll be doing a lot of reading and coding.
|
|
|
|
|
|
-- [ ] [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
|
|
|
- - answers in C++ and Java
|
|
|
- - this is a good warm-up for Cracking the Coding Interview
|
|
|
- - not too difficult, most problems may be easier than what you'll see in an interview (from what I've read)
|
|
|
-- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
|
|
|
- - answers in Java
|
|
|
+### C
|
|
|
|
|
|
-### If you have tons of extra time:
|
|
|
-
|
|
|
-Choose one:
|
|
|
+- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
|
|
|
+ - Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms
|
|
|
|
|
|
-- [ ] [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
|
|
|
-- [ ] [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
|
|
|
-- [ ] Elements of Programming Interviews (Java version)
|
|
|
- - [book](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
|
|
|
- - [Companion Project - Method Stub and Test Cases for Every Problem in the Book](https://github.com/gardncl/elements-of-programming-interviews)
|
|
|
-
|
|
|
-### Language Specific
|
|
|
+### Python
|
|
|
|
|
|
-**You need to choose a language for the interview (see above).**
|
|
|
+- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
|
|
|
+ - by Goodrich, Tamassia, Goldwasser
|
|
|
+ - I loved this book. It covered everything and more.
|
|
|
+ - Pythonic code
|
|
|
+ - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
|
|
|
|
|
|
-Here are my recommendations by language. I don't have resources for all languages. I welcome additions.
|
|
|
+### Java
|
|
|
|
|
|
-If you read through one of these, you should have all the data structures and algorithms knowledge you'll need to start doing coding problems.
|
|
|
-**You can skip all the video lectures in this project**, unless you'd like a review.
|
|
|
+Your choice:
|
|
|
|
|
|
-[Additional language-specific resources here.](programming-language-resources.md)
|
|
|
+- Goodrich, Tamassia, Goldwasser
|
|
|
+ - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
|
|
|
+- Sedgewick and Wayne:
|
|
|
+ - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
|
|
|
+ - Free Coursera course that covers the book (taught by the authors!):
|
|
|
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
|
|
|
+ - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
|
|
|
|
|
|
### C++
|
|
|
|
|
|
-I haven't read these two, but they are highly rated and written by Sedgewick. He's awesome.
|
|
|
+Your choice:
|
|
|
|
|
|
-- [ ] [Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
|
|
|
-- [ ] [Algorithms in C++ Part 5: Graph Algorithms](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
|
|
|
-- [ ] [Open Data Structures in C++](https://opendatastructures.org/ods-cpp.pdf)
|
|
|
- - Rich and detailed collection of Data Structures and Algorithms
|
|
|
- - Great for first-timers
|
|
|
+- Goodrich, Tamassia, and Mount
|
|
|
+ - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
|
|
|
+- Sedgewick and Wayne
|
|
|
+ - [Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
|
|
|
+ - [Algorithms in C++ Part 5: Graph Algorithms](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
|
|
|
|
|
|
-If you have a better recommendation for C++, please let me know. Looking for a comprehensive resource.
|
|
|
+## Interview Prep Books
|
|
|
|
|
|
-### Java
|
|
|
+You don't need to buy a bunch of these. Honestly "Cracking the Coding Interview" is probably enough,
|
|
|
+but I bought more to give myself more practice. But I always do too much.
|
|
|
|
|
|
-- [ ] [Algorithms (Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
|
|
|
- - videos with book content (and Sedgewick!) on coursera:
|
|
|
- - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
|
|
|
- - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
|
|
|
+I bought both of these. They gave me plenty of practice.
|
|
|
|
|
|
-OR:
|
|
|
+- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
|
|
|
+ - Answers in C++ and Java
|
|
|
+ - This is a good warm-up for Cracking the Coding Interview
|
|
|
+ - Not too difficult. Most problems may be easier than what you'll see in an interview (from what I've read)
|
|
|
+- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
|
|
|
+ - answers in Java
|
|
|
|
|
|
-- [ ] [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
|
|
|
- - by Goodrich, Tamassia, Goldwasser
|
|
|
- - used as optional text for CS intro course at UC Berkeley
|
|
|
- - see my book report on the Python version below. This book covers the same topics
|
|
|
+### If you have tons of extra time:
|
|
|
|
|
|
-### Python
|
|
|
+Choose one:
|
|
|
|
|
|
-- [ ] [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
|
|
|
- - by Goodrich, Tamassia, Goldwasser
|
|
|
- - I loved this book. It covered everything and more
|
|
|
- - Pythonic code
|
|
|
- - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
|
|
|
-- [ ] [Open Data Structures in Python](https://opendatastructures.org/ods-python.pdf)
|
|
|
+- [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
|
|
|
+- [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
|
|
|
+- [Elements of Programming Interviews (Java version)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
|
|
|
+ - [Companion Project - Method Stub and Test Cases for Every Problem in the Book](https://github.com/gardncl/elements-of-programming-interviews)
|
|
|
|
|
|
## Before you Get Started
|
|
|
|
|
@@ -388,35 +409,33 @@ Here are some mistakes I made so you'll have a better experience.
|
|
|
### 1. You Won't Remember it All
|
|
|
|
|
|
I watched hours of videos and took copious notes, and months later there was much I didn't remember. I spent 3 days going
|
|
|
-through my notes and making flashcards, so I could review.
|
|
|
+through my notes and making flashcards, so I could review. I didn't need all of that knowledge.
|
|
|
|
|
|
Please, read so you won't make my mistakes:
|
|
|
|
|
|
[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/).
|
|
|
|
|
|
-A course recommended to me (haven't taken it): [Learning how to Learn](https://www.coursera.org/learn/learning-how-to-learn).
|
|
|
-
|
|
|
### 2. Use Flashcards
|
|
|
|
|
|
To solve the problem, I made a little flashcards site where I could add flashcards of 2 types: general and code.
|
|
|
-Each card has different formatting.
|
|
|
-
|
|
|
-I made a mobile-first website, so I could review on my phone and tablet, wherever I am.
|
|
|
+Each card has different formatting. I made a mobile-first website, so I could review on my phone and tablet, wherever I am.
|
|
|
|
|
|
Make your own for free:
|
|
|
|
|
|
- [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
|
|
|
-- [My flash cards database (old - 1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
|
|
|
-- [My flash cards database (new - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
|
|
|
+- [My flash cards database (1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
|
|
|
+- [My flash cards database (extreme - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
|
|
|
|
|
|
-Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics. It's way too much for what's required.
|
|
|
+Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics.
|
|
|
+It's way too much for what's required.
|
|
|
|
|
|
**Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the
|
|
|
same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
|
|
|
your brain.
|
|
|
|
|
|
-An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times. It uses a repetition system to help you remember.
|
|
|
-It's user-friendly, available on all platforms and has a cloud sync system. It costs $25 on iOS but is free on other platforms.
|
|
|
+An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times.
|
|
|
+It uses a repetition system to help you remember. It's user-friendly, available on all platforms and has a cloud sync system.
|
|
|
+It costs $25 on iOS but is free on other platforms.
|
|
|
|
|
|
My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)).
|
|
|
|
|
@@ -427,7 +446,6 @@ and feel comfortable with it, like linked lists, open one of the coding intervie
|
|
|
linked lists. Then move on to the next learning topic. Then later, go back and do another linked list problem,
|
|
|
or recursion problem, or whatever. But keep doing problems while you're learning. You're not being hired for knowledge,
|
|
|
but how you apply the knowledge. There are several books and sites I recommend.
|
|
|
-See here for more: [Coding Question Practice](#coding-question-practice).
|
|
|
|
|
|
### 4. Review, review, review
|
|
|
|
|
@@ -454,8 +472,6 @@ Some subjects take one day, and some will take multiple days. Some are just lear
|
|
|
|
|
|
Each day I take one subject from the list below, watch videos about that subject, and write an implementation in:
|
|
|
- C - using structs and functions that take a struct * and something else as args
|
|
|
-- C++ - without using built-in types
|
|
|
-- C++ - using built-in types, like STL's std::list for a linked list
|
|
|
- Python - using built-in types (to keep practicing Python)
|
|
|
- and write tests to ensure I'm doing it right, sometimes just using simple assert() statements
|
|
|
- You may do Java or something else, this is just my thing
|
|
@@ -465,7 +481,7 @@ You don't need all these. You need only [one language for the interview](#pick-o
|
|
|
Why code in all of these?
|
|
|
- Practice, practice, practice, until I'm sick of it, and can do it with no problem (some have many edge cases and bookkeeping details to remember)
|
|
|
- Work within the raw constraints (allocating/freeing memory without help of garbage collection (except Python or Java))
|
|
|
-- Make use of built-in types, so I have experience using the built-in tools for real-world use (not going to write my own linked list implementation in production)
|
|
|
+- Make use of built-in types, so I have experience using the built-in tools for real-world use (I'm not going to write my own linked list implementation in production)
|
|
|
|
|
|
I may not have time to do all of these for every subject, but I'll try.
|
|
|
|
|
@@ -478,22 +494,6 @@ You don't need to memorize the guts of every algorithm.
|
|
|
|
|
|
Write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then test it out on a computer.
|
|
|
|
|
|
-## Prerequisite Knowledge
|
|
|
-
|
|
|
-- [ ] **Learn C**
|
|
|
- - C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying
|
|
|
- - [ ] [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
|
|
|
- - This is a short book, but it will give you a great handle on the C language and if you practice it a little
|
|
|
- you'll quickly get proficient. Understanding C helps you understand how programs and memory work
|
|
|
- - [Answers to questions](https://github.com/lekkas/c-algorithms)
|
|
|
-
|
|
|
-- [ ] **How computers process a program:**
|
|
|
- - [ ] [How CPU executes a program (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
|
|
|
- - [ ] [How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
|
|
|
- - [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
|
|
|
- - [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
|
|
|
- - [ ] [Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
|
|
|
-
|
|
|
## Algorithmic complexity / Big-O / Asymptotic analysis
|
|
|
|
|
|
- Nothing to implement
|
|
@@ -897,7 +897,8 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- [ ] [Tail Recursion (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
|
|
|
|
|
|
- ### Dynamic Programming
|
|
|
- - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a problem as being a candidate for dynamic programming.
|
|
|
+ - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a
|
|
|
+ problem as being a candidate for dynamic programming.
|
|
|
- This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky.
|
|
|
- I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved.
|
|
|
- [ ] Videos:
|
|
@@ -922,10 +923,6 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
|
|
|
- [ ] [Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
|
|
|
|
|
|
-- ### Object-Oriented Programming
|
|
|
- - [ ] [Optional: UML 2.0 Series (video)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
|
|
|
- - [ ] SOLID OOP Principles: [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
|
|
|
-
|
|
|
- ### Design patterns
|
|
|
- [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
|
|
|
- [ ] Learn these patterns:
|
|
@@ -955,7 +952,6 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- [ ] [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
|
|
|
- [ ] [Design patterns for humans](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
|
|
|
|
|
|
-
|
|
|
- ### Combinatorics (n choose k) & Probability
|
|
|
- [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
|
|
|
- [ ] [Make School: Probability (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
|
|
@@ -987,6 +983,14 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
|
|
|
- Pages 1048 - 1140 in CLRS if you have it.
|
|
|
|
|
|
+- ### How computers process a program
|
|
|
+
|
|
|
+ - [ ] [How CPU executes a program (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
|
|
|
+ - [ ] [How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
|
|
|
+ - [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
|
|
|
+ - [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
|
|
|
+ - [ ] [Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
|
|
|
+
|
|
|
- ### Caches
|
|
|
- [ ] LRU cache:
|
|
|
- [ ] [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
|