Fixed all broken links (sync with master)
This commit is contained in:
parent
c47e63a12c
commit
31b90c38c3
@ -332,9 +332,12 @@
|
|||||||
<details>
|
<details>
|
||||||
<summary>만일 당신이 많은 여유 시간이 있다면:</summary>
|
<summary>만일 당신이 많은 여유 시간이 있다면:</summary>
|
||||||
|
|
||||||
- [ ] [Elements of Programming Interviews](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
|
- [ ] [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
|
||||||
- 모든 코드가 C++로 되어있다, 만일 당신의 인터뷰에서 C++를 사용하길 고려한다면 정말 좋은 책이다.
|
- 모든 코드가 C++로 되어있다, 만일 당신의 인터뷰에서 C++를 사용하길 고려한다면 정말 좋은 책이다.
|
||||||
- 일반적인 문제들을 해결하기 위해 좋은 책이다.
|
- 일반적인 문제들을 해결하기 위해 좋은 책이다.
|
||||||
|
- [ ] 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)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@ -400,9 +403,9 @@ C++에 대한 더 나은 추천 책이 있다면 알려주십시오. 포괄적
|
|||||||
<summary>Java</summary>
|
<summary>Java</summary>
|
||||||
|
|
||||||
- [ ] [Algorithms (Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
|
- [ ] [Algorithms (Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
|
||||||
- videos with book content (and Sedgewick!):
|
- videos with book content (and Sedgewick!) on coursera:
|
||||||
- [Algorithms I](https://www.youtube.com/user/algorithmscourses/playlists?view=50&sort=dd&shelf_id=2)
|
- [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
|
||||||
- [Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=3&view=50&sort=dd)
|
- [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
|
||||||
|
|
||||||
OR:
|
OR:
|
||||||
|
|
||||||
@ -573,8 +576,11 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
|
|
||||||
|
|
||||||
- [ ] **How computers process a program:**
|
- [ ] **How computers process a program:**
|
||||||
- [ ] [How does CPU execute program (video)](https://www.youtube.com/watch?v=42KTvGYQYnA)
|
- [ ] [How CPU executes a program](https://www.youtube.com/watch?v=XM4lGflQFvA)
|
||||||
- [ ] [Machine Code Instructions (video)](https://www.youtube.com/watch?v=Mv2XQgpbTNE)
|
- [ ] [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)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@ -593,13 +599,13 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
- [ ] [A Gentle Introduction to Algorithm Complexity Analysis](http://discrete.gr/complexity/)
|
- [ ] [A Gentle Introduction to Algorithm Complexity Analysis](http://discrete.gr/complexity/)
|
||||||
- [ ] [Orders of Growth (video)](https://class.coursera.org/algorithmicthink1-004/lecture/59)
|
- [ ] [Orders of Growth (video)](https://class.coursera.org/algorithmicthink1-004/lecture/59)
|
||||||
- [ ] [Asymptotics (video)](https://class.coursera.org/algorithmicthink1-004/lecture/61)
|
- [ ] [Asymptotics (video)](https://class.coursera.org/algorithmicthink1-004/lecture/61)
|
||||||
- [ ] [UC Berkeley Big O (video)](https://youtu.be/VIS4YDpuP98)
|
- [ ] [UC Berkeley Big O (video)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
|
||||||
- [ ] [UC Berkeley Big Omega (video)](https://youtu.be/ca3e7UVmeUc)
|
- [ ] [UC Berkeley Big Omega (video)](https://archive.org/details/ucberkeley_webcast_ca3e7UVmeUc)
|
||||||
- [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
|
- [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
|
||||||
- [ ] [Illustrating "Big O" (video)](https://class.coursera.org/algorithmicthink1-004/lecture/63)
|
- [ ] [Illustrating "Big O" (video)](https://class.coursera.org/algorithmicthink1-004/lecture/63)
|
||||||
- [ ] TopCoder (includes recurrence relations and master theorem):
|
- [ ] TopCoder (includes recurrence relations and master theorem):
|
||||||
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
|
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
|
||||||
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
|
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
|
||||||
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
|
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
|
||||||
|
|
||||||
|
|
||||||
@ -653,7 +659,8 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
- ### 링크드 리스트
|
- ### 링크드 리스트
|
||||||
- [ ] Description:
|
- [ ] Description:
|
||||||
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
|
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
|
||||||
- [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
|
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
|
||||||
|
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
|
||||||
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
|
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
|
||||||
- not the whole video, just portions about Node struct and memory allocation.
|
- not the whole video, just portions about Node struct and memory allocation.
|
||||||
- [ ] Linked List vs Arrays:
|
- [ ] Linked List vs Arrays:
|
||||||
@ -690,7 +697,7 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
|
|
||||||
- ### 큐
|
- ### 큐
|
||||||
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
|
||||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||||
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||||
- [ ] Implement using linked-list, with tail pointer:
|
- [ ] Implement using linked-list, with tail pointer:
|
||||||
@ -747,13 +754,13 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
- ### Binary search
|
- ### Binary search
|
||||||
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
|
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
|
||||||
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
|
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
|
||||||
- [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
|
- [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
|
||||||
- [ ] Implement:
|
- [ ] Implement:
|
||||||
- binary search (on sorted array of integers)
|
- binary search (on sorted array of integers)
|
||||||
- binary search using recursion
|
- binary search using recursion
|
||||||
|
|
||||||
- ### Bitwise operations
|
- ### Bitwise operations
|
||||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||||
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
||||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||||
- [ ] Good intro:
|
- [ ] Good intro:
|
||||||
@ -762,8 +769,8 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
- [ ] [Bit Manipulation](https://en.wikipedia.org/wiki/Bit_manipulation)
|
- [ ] [Bit Manipulation](https://en.wikipedia.org/wiki/Bit_manipulation)
|
||||||
- [ ] [Bitwise Operation](https://en.wikipedia.org/wiki/Bitwise_operation)
|
- [ ] [Bitwise Operation](https://en.wikipedia.org/wiki/Bitwise_operation)
|
||||||
- [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
|
- [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
|
||||||
- [ ] [The Bit Twiddler](http://bits.stephan-brumme.com/)
|
- [ ] [The Bit Twiddler](https://bits.stephan-brumme.com/)
|
||||||
- [ ] [The Bit Twiddler Interactive](http://bits.stephan-brumme.com/interactive.html)
|
- [ ] [The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html)
|
||||||
- [ ] 2s and 1s complement
|
- [ ] 2s and 1s complement
|
||||||
- [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
|
- [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
|
||||||
- [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement)
|
- [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement)
|
||||||
@ -773,11 +780,11 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
- [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
|
- [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
|
||||||
- [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
|
- [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
|
||||||
- [ ] round to next power of 2:
|
- [ ] round to next power of 2:
|
||||||
- [Round Up To Next Power Of Two](http://bits.stephan-brumme.com/roundUpToNextPowerOfTwo.html)
|
- [Round Up To Next Power Of Two](https://bits.stephan-brumme.com/roundUpToNextPowerOfTwo.html)
|
||||||
- [ ] swap values:
|
- [ ] swap values:
|
||||||
- [Swap](http://bits.stephan-brumme.com/swap.html)
|
- [Swap](https://bits.stephan-brumme.com/swap.html)
|
||||||
- [ ] absolute value:
|
- [ ] absolute value:
|
||||||
- [Absolute Integer](http://bits.stephan-brumme.com/absInteger.html)
|
- [Absolute Integer](https://bits.stephan-brumme.com/absInteger.html)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@ -792,21 +799,19 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
- basic tree construction
|
- basic tree construction
|
||||||
- traversal
|
- traversal
|
||||||
- manipulation algorithms
|
- manipulation algorithms
|
||||||
- BFS (breadth-first search)
|
- [ ] [BFS(breadth-first search) and DFS(depth-first search)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
|
||||||
- [MIT (video)](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
|
- BFS notes:
|
||||||
- level order (BFS, using queue)
|
- level order (BFS, using queue)
|
||||||
time complexity: O(n)
|
- time complexity: O(n)
|
||||||
space complexity: best: O(1), worst: O(n/2)=O(n)
|
- space complexity: best: O(1), worst: O(n/2)=O(n)
|
||||||
- DFS (depth-first search)
|
- DFS notes:
|
||||||
- [MIT (video)](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14)
|
- time complexity: O(n)
|
||||||
- notes:
|
- space complexity:
|
||||||
time complexity: O(n)
|
|
||||||
space complexity:
|
|
||||||
best: O(log n) - avg. height of tree
|
best: O(log n) - avg. height of tree
|
||||||
worst: O(n)
|
worst: O(n)
|
||||||
- inorder (DFS: left, self, right)
|
- inorder (DFS: left, self, right)
|
||||||
- postorder (DFS: left, right, self)
|
- postorder (DFS: left, right, self)
|
||||||
- preorder (DFS: self, left, right)
|
- preorder (DFS: self, left, right)
|
||||||
|
|
||||||
- ### Binary search trees: BSTs
|
- ### Binary search trees: BSTs
|
||||||
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
|
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
|
||||||
@ -852,7 +857,7 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
- [ ] [Heap Sort (video)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
|
- [ ] [Heap Sort (video)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
|
||||||
- [ ] [Building a heap (video)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
|
- [ ] [Building a heap (video)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
|
||||||
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
||||||
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
|
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
|
||||||
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
|
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
|
||||||
- [ ] Implement a max-heap:
|
- [ ] Implement a max-heap:
|
||||||
- [ ] insert
|
- [ ] insert
|
||||||
@ -888,24 +893,24 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
|
|
||||||
- For heapsort, see Heap data structure above. Heap sort is great, but not stable.
|
- For heapsort, see Heap data structure above. Heap sort is great, but not stable.
|
||||||
|
|
||||||
- [ ] [Sedgewick - Mergesort (5 videos)](https://www.youtube.com/watch?v=4nKwesx_c8E&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9)
|
- [ ] [Sedgewick - Mergesort (5 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
|
||||||
- [ ] [1. Mergesort](https://www.youtube.com/watch?v=4nKwesx_c8E&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9&index=1)
|
- [ ] [1. Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/ARWDq/mergesort)
|
||||||
- [ ] [2. Bottom up Mergesort](https://www.youtube.com/watch?v=HGOIGUYjeyk&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9&index=2)
|
- [ ] [2. Bottom up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
|
||||||
- [ ] [3. Sorting Complexity](https://www.youtube.com/watch?v=WvU_mIWo0Ac&index=3&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9)
|
- [ ] [3. Sorting Complexity](https://www.coursera.org/learn/algorithms-part1/lecture/xAltF/sorting-complexity)
|
||||||
- [ ] [4. Comparators](https://www.youtube.com/watch?v=7MvC1kmBza0&index=4&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9)
|
- [ ] [4. Comparators](https://www.coursera.org/learn/algorithms-part1/lecture/9FYhS/comparators)
|
||||||
- [ ] [5. Stability](https://www.youtube.com/watch?v=XD_5iINB5GI&index=5&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9)
|
- [ ] [5. Stability](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
|
||||||
|
|
||||||
- [ ] [Sedgewick - Quicksort (4 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1)
|
- [ ] [Sedgewick - Quicksort (4 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
|
||||||
- [ ] [1. Quicksort](https://www.youtube.com/watch?v=5M5A7qPWk84&index=1&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1)
|
- [ ] [1. Quicksort](https://www.coursera.org/learn/algorithms-part1/lecture/vjvnC/quicksort)
|
||||||
- [ ] [2. Selection](https://www.youtube.com/watch?v=CgVYfSyct_M&index=2&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1)
|
- [ ] [2. Selection](https://www.coursera.org/learn/algorithms-part1/lecture/UQxFT/selection)
|
||||||
- [ ] [3. Duplicate Keys](https://www.youtube.com/watch?v=WBFzOYJ5ybM&index=3&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1)
|
- [ ] [3. Duplicate Keys](https://www.coursera.org/learn/algorithms-part1/lecture/XvjPd/duplicate-keys)
|
||||||
- [ ] [4. System Sorts](https://www.youtube.com/watch?v=rejpZ2htBjE&index=4&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1)
|
- [ ] [4. System Sorts](https://www.coursera.org/learn/algorithms-part1/lecture/QBNZ7/system-sorts)
|
||||||
|
|
||||||
- [ ] UC Berkeley:
|
- [ ] UC Berkeley:
|
||||||
- [ ] [CS 61B Lecture 29: Sorting I (video)](https://www.youtube.com/watch?v=EiUvYS2DT6I&list=PL4BBB74C7D2A1049C&index=29)
|
- [ ] [CS 61B Lecture 29: Sorting I (video)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
|
||||||
- [ ] [CS 61B Lecture 30: Sorting II (video)](https://www.youtube.com/watch?v=2hTY3t80Qsk&list=PL4BBB74C7D2A1049C&index=30)
|
- [ ] [CS 61B Lecture 30: Sorting II (video)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
|
||||||
- [ ] [CS 61B Lecture 32: Sorting III (video)](https://www.youtube.com/watch?v=Y6LOLpxg6Dc&index=32&list=PL4BBB74C7D2A1049C)
|
- [ ] [CS 61B Lecture 32: Sorting III (video)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
|
||||||
- [ ] [CS 61B Lecture 33: Sorting V (video)](https://www.youtube.com/watch?v=qNMQ4ly43p4&index=33&list=PL4BBB74C7D2A1049C)
|
- [ ] [CS 61B Lecture 33: Sorting V (video)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
|
||||||
|
|
||||||
- [ ] [Bubble Sort (video)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
|
- [ ] [Bubble Sort (video)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
|
||||||
- [ ] [Analyzing Bubble Sort (video)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
|
- [ ] [Analyzing Bubble Sort (video)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
|
||||||
@ -931,13 +936,13 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info
|
|||||||
- For heapsort, see Heap data structure above.
|
- For heapsort, see Heap data structure above.
|
||||||
|
|
||||||
- [ ] Not required, but I recommended them:
|
- [ ] Not required, but I recommended them:
|
||||||
- [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
|
- [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
|
||||||
- [ ] [1. Strings in Java](https://www.youtube.com/watch?v=zRzU-FWsjNU&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=6)
|
- [ ] [1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
|
||||||
- [ ] [2. Key Indexed Counting](https://www.youtube.com/watch?v=CtgKYmXs62w&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=5)
|
- [ ] [2. Key Indexed Counting](https://www.coursera.org/learn/algorithms-part2/lecture/2pi1Z/key-indexed-counting)
|
||||||
- [ ] [3. Least Significant Digit First String Radix Sort](https://www.youtube.com/watch?v=2pGVq_BwPKs&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=4)
|
- [ ] [3. Least Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
|
||||||
- [ ] [4. Most Significant Digit First String Radix Sort](https://www.youtube.com/watch?v=M3cYNY90R6c&index=3&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
|
- [ ] [4. Most Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
|
||||||
- [ ] [5. 3 Way Radix Quicksort](https://www.youtube.com/watch?v=YVl58kfE6i8&index=2&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
|
- [ ] [5. 3 Way Radix Quicksort](https://www.coursera.org/learn/algorithms-part2/lecture/crkd5/3-way-radix-quicksort)
|
||||||
- [ ] [6. Suffix Arrays](https://www.youtube.com/watch?v=HKPrVm5FWvg&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=1)
|
- [ ] [6. Suffix Arrays](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
|
||||||
- [ ] [Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
|
- [ ] [Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
|
||||||
- [ ] [Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
|
- [ ] [Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
|
||||||
- [ ] [Radix Sort, Counting Sort (linear time given constraints) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
- [ ] [Radix Sort, Counting Sort (linear time given constraints) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
||||||
@ -1031,9 +1036,8 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- [ ] [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
|
- [ ] [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
|
||||||
- [ ] [Tail Recursion (video)](https://www.youtube.com/watch?v=L1jjXGfxozc)
|
- [ ] [Tail Recursion (video)](https://www.youtube.com/watch?v=L1jjXGfxozc)
|
||||||
|
|
||||||
- ### Dynamic Programming
|
|
||||||
- **NOTE:** DP is a valuable technique, but it is not mentioned on any of the prep material Google provides. But you could get a problem where DP provides an optimal solution. So I'm including it.
|
- ### 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.
|
||||||
- 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.
|
- I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved.
|
||||||
- [ ] Videos:
|
- [ ] Videos:
|
||||||
- the Skiena videos can be hard to follow since he sometimes uses the whiteboard, which is too small to see
|
- the Skiena videos can be hard to follow since he sometimes uses the whiteboard, which is too small to see
|
||||||
@ -1064,7 +1068,6 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- [OOSE: Software Dev Using UML and Java](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
- [OOSE: Software Dev Using UML and Java](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
||||||
- [ ] SOLID OOP Principles:
|
- [ ] SOLID OOP Principles:
|
||||||
- [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
|
- [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
|
||||||
- [ ] [SOLID Design Patterns in C# (video)](https://www.youtube.com/playlist?list=PL8m4NUhTQU48oiGCSgCP1FiJEcg_xJzyQ)
|
|
||||||
- [ ] [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
|
- [ ] [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
|
||||||
- [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
|
- [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
|
||||||
- [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
|
- [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
|
||||||
@ -1106,6 +1109,8 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- [ ] [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
|
- [ ] [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
|
||||||
- I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
|
- I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
|
||||||
- [ ] [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
|
- [ ] [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
|
- ### Combinatorics (n choose k) & Probability
|
||||||
- [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
|
- [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
|
||||||
@ -1150,7 +1155,7 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- ### Processes and Threads
|
- ### Processes and Threads
|
||||||
- [ ] Computer Science 162 - Operating Systems (25 videos):
|
- [ ] Computer Science 162 - Operating Systems (25 videos):
|
||||||
- for processes and threads see videos 1-11
|
- for processes and threads see videos 1-11
|
||||||
- [Operating Systems and System Programming (video)](https://www.youtube.com/playlist?list=PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
|
- [Operating Systems and System Programming (video)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
|
||||||
- [What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
|
- [What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
|
||||||
- Covers:
|
- Covers:
|
||||||
- Processes, Threads, Concurrency issues
|
- Processes, Threads, Concurrency issues
|
||||||
@ -1166,6 +1171,9 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- livelock
|
- livelock
|
||||||
- CPU activity, interrupts, context switching
|
- CPU activity, interrupts, context switching
|
||||||
- Modern concurrency constructs with multicore processors
|
- Modern concurrency constructs with multicore processors
|
||||||
|
- [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
|
||||||
|
- [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
|
||||||
|
- [Scheduling (video)](https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8)
|
||||||
- Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o)
|
- Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o)
|
||||||
- Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
|
- Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
|
||||||
- Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
|
- Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
|
||||||
@ -1183,9 +1191,9 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
|
|
||||||
- ### Papers
|
- ### Papers
|
||||||
- Reading all from end to end with full comprehension will likely take more time than you have. I recommend being selective on papers and their sections.
|
- Reading all from end to end with full comprehension will likely take more time than you have. I recommend being selective on papers and their sections.
|
||||||
|
- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
|
||||||
- [ ] [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
|
- [ ] [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
|
||||||
- [implemented in Go](https://godoc.org/github.com/thomas11/csp)
|
- [implemented in Go](https://godoc.org/github.com/thomas11/csp)
|
||||||
- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
|
|
||||||
- [ ] [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
|
- [ ] [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
|
||||||
- replaced by Colossus in 2012
|
- replaced by Colossus in 2012
|
||||||
- [ ] [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
|
- [ ] [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
|
||||||
@ -1193,6 +1201,8 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- [ ] [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
|
- [ ] [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
|
||||||
- [An Inside Look at Google BigQuery](https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
|
- [An Inside Look at Google BigQuery](https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
|
||||||
- [ ] [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
|
- [ ] [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
|
||||||
|
- [ ] [2007: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
|
||||||
|
- The Dynamo paper kicked off the NoSQL revolution
|
||||||
- [ ] [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
|
- [ ] [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
|
||||||
- [ ] [2010: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](https://research.google.com/pubs/archive/36356.pdf)
|
- [ ] [2010: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](https://research.google.com/pubs/archive/36356.pdf)
|
||||||
- [ ] [2010: Dremel: Interactive Analysis of Web-Scale Datasets](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf)
|
- [ ] [2010: Dremel: Interactive Analysis of Web-Scale Datasets](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf)
|
||||||
@ -1239,13 +1249,13 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- can you implement them?
|
- can you implement them?
|
||||||
|
|
||||||
- ### String searching & manipulations
|
- ### String searching & manipulations
|
||||||
- [ ] [Sedgewick - Suffix Arrays (video)](https://www.youtube.com/watch?v=HKPrVm5FWvg)
|
- [ ] [Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
|
||||||
- [ ] [Sedgewick - Substring Search (videos)](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
|
- [ ] [Sedgewick - Substring Search (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
|
||||||
- [ ] [1. Introduction to Substring Search](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
|
- [ ] [1. Introduction to Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/n3ZpG/introduction-to-substring-search)
|
||||||
- [ ] [2. Brute-Force Substring Search](https://www.youtube.com/watch?v=CcDXwIGEXYU&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=4)
|
- [ ] [2. Brute-Force Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)
|
||||||
- [ ] [3. Knuth-Morris Pratt](https://www.youtube.com/watch?v=n-7n-FDEWzc&index=3&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
|
- [ ] [3. Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
|
||||||
- [ ] [4. Boyer-Moore](https://www.youtube.com/watch?v=fI7Ch6pZXfM&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=2)
|
- [ ] [4. Boyer-Moore](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
|
||||||
- [ ] [5. Rabin-Karp](https://www.youtube.com/watch?v=QzI0p6zDjK4&index=1&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
|
- [ ] [5. Rabin-Karp](https://www.coursera.org/learn/algorithms-part2/lecture/3KiqT/rabin-karp)
|
||||||
- [ ] [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
|
- [ ] [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
|
||||||
|
|
||||||
If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
|
If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
|
||||||
@ -1324,7 +1334,8 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- simplicity and robustness
|
- simplicity and robustness
|
||||||
- tradeoffs
|
- tradeoffs
|
||||||
- performance analysis and optimization
|
- performance analysis and optimization
|
||||||
- [ ] **START HERE**: [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
|
||||||
|
- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||||
- [ ] [How Do I Prepare To Answer Design Questions In A Technical Inverview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
|
- [ ] [How Do I Prepare To Answer Design Questions In A Technical Inverview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
|
||||||
- [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
|
- [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
|
||||||
- [ ] [Algorithm design](http://www.hiredintech.com/algorithm-design/)
|
- [ ] [Algorithm design](http://www.hiredintech.com/algorithm-design/)
|
||||||
@ -1356,7 +1367,7 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- [ ] [Introduction to Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/)
|
- [ ] [Introduction to Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/)
|
||||||
- [ ] [Scaling mobile games to a global audience using App Engine and Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
|
- [ ] [Scaling mobile games to a global audience using App Engine and Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
|
||||||
- [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
|
- [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
|
||||||
- [ ] [The Importance of Algorithms](https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/)
|
- [ ] [The Importance of Algorithms](https://www.topcoder.com/community/competitive-programming/tutorials/the-importance-of-algorithms/)
|
||||||
- [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
|
- [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
|
||||||
- [ ] [Scale at Facebook (2009)](https://www.infoq.com/presentations/Scale-at-Facebook)
|
- [ ] [Scale at Facebook (2009)](https://www.infoq.com/presentations/Scale-at-Facebook)
|
||||||
- [ ] [Scale at Facebook (2012), "Building for a Billion Users" (video)](https://www.youtube.com/watch?v=oodS71YtkGU)
|
- [ ] [Scale at Facebook (2012), "Building for a Billion Users" (video)](https://www.youtube.com/watch?v=oodS71YtkGU)
|
||||||
@ -1397,10 +1408,11 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- [ ] Twitter:
|
- [ ] Twitter:
|
||||||
- [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
|
- [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
|
||||||
- [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
|
- [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
|
||||||
- For even more, see "Mining Massive Datasets" video series in the Video Series section.
|
- For even more, see "Mining Massive Datasets" video series in the [Video Series](#video-series) section.
|
||||||
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
|
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
|
||||||
- review: [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
- review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
|
||||||
- [cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
- [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||||
|
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||||
- flow:
|
- flow:
|
||||||
1. Understand the problem and scope:
|
1. Understand the problem and scope:
|
||||||
- define the use cases, with interviewer's help
|
- define the use cases, with interviewer's help
|
||||||
@ -1446,32 +1458,8 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
|
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
|
||||||
- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (18 videos):
|
- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (18 videos):
|
||||||
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
|
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
|
||||||
- [ ] [Sedgewick Videos - Algorithms I](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=2&view=50&sort=dd)
|
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
|
||||||
- [ ] [01. Union-Find](https://www.youtube.com/watch?v=8mYfZeHtdNc&list=PLe-ggMe31CTexoNYnMhbHaWhQ0dvcy43t)
|
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
|
||||||
- [ ] [02. Analysis of Algorithms](https://www.youtube.com/watch?v=ZN-nFW0mEpg&list=PLe-ggMe31CTf0_bkOhh7sa5uqeppp3Sr0)
|
|
||||||
- [ ] [03. Stacks and Queues](https://www.youtube.com/watch?v=TIC1gappbP8&list=PLe-ggMe31CTe-9jhnj3P_3mmrCh0A7iHh)
|
|
||||||
- [ ] [04. Elementary Sorts](https://www.youtube.com/watch?v=CD2AL6VO0ak&list=PLe-ggMe31CTe_5WhGV0F--7CK8MoRUqBd)
|
|
||||||
- [ ] [05. Mergesort](https://www.youtube.com/watch?v=4nKwesx_c8E&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9)
|
|
||||||
- [ ] [06. Quicksort](https://www.youtube.com/watch?v=5M5A7qPWk84&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1)
|
|
||||||
- [ ] [07. Priority Queues](https://www.youtube.com/watch?v=G9TMe0KC0w0&list=PLe-ggMe31CTducy9LDiGVkdSv0NfiRwn5)
|
|
||||||
- [ ] [08. Elementary Symbol Tables](https://www.youtube.com/watch?v=up_nlilw3ac&list=PLe-ggMe31CTc3a8nKRDxFZZrWrBvkc9SG)
|
|
||||||
- [ ] [09. Balanced Search Trees](https://www.youtube.com/watch?v=qC1BLLPK_5w&list=PLe-ggMe31CTf7jHH_mFT50kayjCEA6Rhu)
|
|
||||||
- [ ] [10. Geometric Applications of BST](https://www.youtube.com/watch?v=Wl30aGAp6TY&list=PLe-ggMe31CTdBsRIw0hXln0hilRs-DqAx)
|
|
||||||
- [ ] [11. Hash Tables](https://www.youtube.com/watch?v=QA8fJGO-i9o&list=PLe-ggMe31CTcKxIRGqqThMts2eHtSrf11)
|
|
||||||
- [ ] [Sedgewick Videos - Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?flow=list&shelf_id=3&view=50)
|
|
||||||
- [ ] [01. Undirected Graphs](https://www.youtube.com/watch?v=GmVhD-mmMBg&list=PLe-ggMe31CTc0zDzANxl4I2MhMoRVlbRM)
|
|
||||||
- [ ] [02. Directed Graphs](https://www.youtube.com/watch?v=_z-JsVaUS40&list=PLe-ggMe31CTcEwaU8a1P1Gd95A77HV85K)
|
|
||||||
- [ ] [03. Minimum Spanning Trees](https://www.youtube.com/watch?v=t8fNk9tfVYY&list=PLe-ggMe31CTceUZxDesGfHGLE7kcSafqj)
|
|
||||||
- [ ] [04. Shortest Paths](https://www.youtube.com/watch?v=HoGSiB7tSeI&list=PLe-ggMe31CTePpG3jbeOTsnGUGZDKxgZD)
|
|
||||||
- [ ] [05. Maximum Flow](https://www.youtube.com/watch?v=rYIKlFstBqE&list=PLe-ggMe31CTduQ68XQ-sVj32wYJIspTma)
|
|
||||||
- [ ] [06. Radix Sorts](https://www.youtube.com/watch?v=HKPrVm5FWvg&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
|
|
||||||
- [ ] [07. Tries](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
|
||||||
- [ ] [08. Substring Search](https://www.youtube.com/watch?v=QzI0p6zDjK4&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
|
|
||||||
- [ ] [09. Regular Expressions](https://www.youtube.com/watch?v=TQWNQsJSPnk&list=PLe-ggMe31CTetTlJWouM42fyttyKPgSDh)
|
|
||||||
- [ ] [10. Data Compression](https://www.youtube.com/watch?v=at9tjpxcBh8&list=PLe-ggMe31CTciifRRo6yY0Yt0mzgIXXVZ)
|
|
||||||
- [ ] [11. Reductions](https://www.youtube.com/watch?v=Ow5x-ooMGv8&list=PLe-ggMe31CTe_yliW5vc3yO-dj1LSSDyF)
|
|
||||||
- [ ] [12. Linear Programming](https://www.youtube.com/watch?v=rWhcLyiLZLA&list=PLe-ggMe31CTdy6dKzMgkWFuTTN1H8B-E1)
|
|
||||||
- [ ] [13. Intractability](https://www.youtube.com/watch?v=6qcaaDp4cdQ&list=PLe-ggMe31CTcZCjluBHw53e_ek2k9Kn-S)
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@ -1506,8 +1494,8 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
|
|
||||||
보충:
|
보충:
|
||||||
|
|
||||||
- [Mathematics for Topcoders](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/)
|
- [Mathematics for Topcoders](https://www.topcoder.com/community/competitive-programming/tutorials/mathematics-for-topcoders/)
|
||||||
- [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/)
|
- [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/competitive-programming/tutorials/dynamic-programming-from-novice-to-advanced/)
|
||||||
- [MIT Interview Materials](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php)
|
- [MIT Interview Materials](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php)
|
||||||
- [Exercises for getting better at a given language](http://exercism.io/languages)
|
- [Exercises for getting better at a given language](http://exercism.io/languages)
|
||||||
|
|
||||||
@ -1530,22 +1518,34 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
|
|||||||
Once you've learned your brains out, put those brains to work.
|
Once you've learned your brains out, put those brains to work.
|
||||||
Take coding challenges every day, as many as you can.
|
Take coding challenges every day, as many as you can.
|
||||||
|
|
||||||
- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/)
|
- [ ] [How to Find a Solution](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-find-a-solution/)
|
||||||
- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/)
|
- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-dissect-a-topcoder-problem-statement/)
|
||||||
|
|
||||||
|
Coding Interview Question Videos:
|
||||||
|
- [IDeserve (88 videos)](https://www.youtube.com/watch?v=NBcqBddFbZw&list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
|
||||||
|
- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
|
||||||
|
|
||||||
Challenge sites:
|
Challenge sites:
|
||||||
- [LeetCode](https://leetcode.com/)
|
- [LeetCode](https://leetcode.com/)
|
||||||
- [TopCoder](https://www.topcoder.com/)
|
- [TopCoder](https://www.topcoder.com/)
|
||||||
- [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems)
|
- [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems)
|
||||||
- [Codewars](http://www.codewars.com)
|
- [Codewars](http://www.codewars.com)
|
||||||
|
- [HackerEarth](https://www.hackerearth.com/)
|
||||||
- [HackerRank](https://www.hackerrank.com/)
|
- [HackerRank](https://www.hackerrank.com/)
|
||||||
- [Codility](https://codility.com/programmers/)
|
- [Codility](https://codility.com/programmers/)
|
||||||
- [InterviewCake](https://www.interviewcake.com/)
|
- [InterviewCake](https://www.interviewcake.com/)
|
||||||
- [Geeks for Geeks](http://www.geeksforgeeks.org/)
|
- [Geeks for Geeks](http://www.geeksforgeeks.org/)
|
||||||
- [InterviewBit](https://www.interviewbit.com/invite/icjf)
|
- [InterviewBit](https://www.interviewbit.com/invite/icjf)
|
||||||
|
- [Sphere Online Judge (spoj)](http://www.spoj.com/)
|
||||||
|
- [Codechef](https://www.codechef.com/)
|
||||||
|
|
||||||
Maybe:
|
Challenge repos:
|
||||||
- [Mock interviewers from big companies](http://www.gainlo.co/)
|
- [Interactive Coding Interview Challenges in Python](https://github.com/donnemartin/interactive-coding-challenges)
|
||||||
|
|
||||||
|
Mock Interviews:
|
||||||
|
- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/) - I used this and it helped me relax for the phone screen and on-site interview.
|
||||||
|
- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
|
||||||
|
- [Refdash: Mock interviews and expedited interviews](https://refdash.com/) - also help candidates fast track by skipping multiple interviews with tech companies.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@ -1554,11 +1554,9 @@ Maybe:
|
|||||||
- [ ] Cracking The Coding Interview Set 2 (videos):
|
- [ ] Cracking The Coding Interview Set 2 (videos):
|
||||||
- [Cracking The Code Interview](https://www.youtube.com/watch?v=4NIb9l3imAo)
|
- [Cracking The Code Interview](https://www.youtube.com/watch?v=4NIb9l3imAo)
|
||||||
- [Cracking the Coding Interview - Fullstack Speaker Series](https://www.youtube.com/watch?v=Eg5-tdAwclo)
|
- [Cracking the Coding Interview - Fullstack Speaker Series](https://www.youtube.com/watch?v=Eg5-tdAwclo)
|
||||||
- [Ask Me Anything: Gayle Laakmann McDowell (author of Cracking the Coding Interview)](https://www.youtube.com/watch?v=1fqxMuPmGak)
|
|
||||||
|
|
||||||
## Your Resume
|
## Your Resume
|
||||||
|
|
||||||
- [Ten Tips for a (Slightly) Less Awful Resume](http://steve-yegge.blogspot.co.uk/2007_09_01_archive.html)
|
|
||||||
- See Resume prep items in Cracking The Coding Interview and back of Programming Interviews Exposed
|
- See Resume prep items in Cracking The Coding Interview and back of Programming Interviews Exposed
|
||||||
|
|
||||||
|
|
||||||
@ -1598,8 +1596,6 @@ Maybe:
|
|||||||
|
|
||||||
Congratulations!
|
Congratulations!
|
||||||
|
|
||||||
- [10 things I wish I knew on my first day at Google](https://medium.com/@moonstorming/10-things-i-wish-i-knew-on-my-first-day-at-google-107581d87286#.livxn7clw)
|
|
||||||
|
|
||||||
Keep learning.
|
Keep learning.
|
||||||
|
|
||||||
You're never really done.
|
You're never really done.
|
||||||
@ -1634,9 +1630,7 @@ You're never really done.
|
|||||||
- [ ] [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
|
- [ ] [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
|
||||||
- aka the "Gang Of Four" book, or GOF
|
- aka the "Gang Of Four" book, or GOF
|
||||||
- the canonical design patterns book
|
- the canonical design patterns book
|
||||||
- [ ] [Site Reliability Engineering](https://landing.google.com/sre/book.html)
|
- [ ] [UNIX and Linux System Administration Handbook, 5th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/)
|
||||||
- [Site Reliability Engineering: How Google Runs Production Systems](https://landing.google.com/sre/)
|
|
||||||
- [ ] [UNIX and Linux System Administration Handbook, 4th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0131480057/)
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@ -1645,29 +1639,17 @@ You're never really done.
|
|||||||
<details>
|
<details>
|
||||||
<summary>Additional Learning</summary>
|
<summary>Additional Learning</summary>
|
||||||
|
|
||||||
|
These topics will likely not come up in an interview, but I added them to help you become a well-rounded
|
||||||
|
software engineer, and to be aware of certain technologies and algorithms, so you'll have a bigger toolbox.
|
||||||
|
|
||||||
- ### Compilers
|
- ### Compilers
|
||||||
- [ ] [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
|
- [ ] [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
|
||||||
- [ ] [Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
|
- [ ] [Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
|
||||||
- [ ] [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
|
- [ ] [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
|
||||||
- [ ] [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
|
- [ ] [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
|
||||||
|
|
||||||
- ### Floating Point Numbers
|
|
||||||
- [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU)
|
|
||||||
- [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
|
|
||||||
|
|
||||||
- ### Unicode
|
|
||||||
- [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
|
|
||||||
- [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
|
|
||||||
|
|
||||||
- ### Endianness
|
|
||||||
- [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
|
|
||||||
- [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
|
|
||||||
- [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
|
|
||||||
- Very technical talk for kernel devs. Don't worry if most is over your head.
|
|
||||||
- The first half is enough.
|
|
||||||
|
|
||||||
- ### Emacs and vi(m)
|
- ### Emacs and vi(m)
|
||||||
- suggested by Yegge, from an old Amazon recruiting post: Familiarize yourself with a unix-based code editor
|
- Familiarize yourself with a unix-based code editor
|
||||||
- vi(m):
|
- vi(m):
|
||||||
- [Editing With vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
|
- [Editing With vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
|
||||||
- [VIM Adventures](http://vim-adventures.com/)
|
- [VIM Adventures](http://vim-adventures.com/)
|
||||||
@ -1688,7 +1670,7 @@ You're never really done.
|
|||||||
- [(maybe) Org Mode In Depth: Managing Structure (video)](https://www.youtube.com/watch?v=nsGYet02bEk)
|
- [(maybe) Org Mode In Depth: Managing Structure (video)](https://www.youtube.com/watch?v=nsGYet02bEk)
|
||||||
|
|
||||||
- ### Unix command line tools
|
- ### Unix command line tools
|
||||||
- suggested by Yegge, from an old Amazon recruiting post. I filled in the list below from good tools.
|
- I filled in the list below from good tools.
|
||||||
- [ ] bash
|
- [ ] bash
|
||||||
- [ ] cat
|
- [ ] cat
|
||||||
- [ ] grep
|
- [ ] grep
|
||||||
@ -1741,20 +1723,6 @@ You're never really done.
|
|||||||
- [ ] [Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
|
- [ ] [Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
|
||||||
- [ ] [(optional) Google Developers Live: GZIP is not enough!](https://www.youtube.com/watch?v=whGwm0Lky2s)
|
- [ ] [(optional) Google Developers Live: GZIP is not enough!](https://www.youtube.com/watch?v=whGwm0Lky2s)
|
||||||
|
|
||||||
- ### Networking
|
|
||||||
- **if you have networking experience or want to be a systems engineer, expect questions**
|
|
||||||
- otherwise, this is just good to know
|
|
||||||
- [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/internet-intro)
|
|
||||||
- [ ] [UDP and TCP: Comparison of Transport Protocols](https://www.youtube.com/watch?v=Vdc8TCESIg8)
|
|
||||||
- [ ] [TCP/IP and the OSI Model Explained!](https://www.youtube.com/watch?v=e5DEVa9eSN0)
|
|
||||||
- [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial.](https://www.youtube.com/watch?v=nomyRJehhnM)
|
|
||||||
- [ ] [HTTP](https://www.youtube.com/watch?v=WGJrLqtX7As)
|
|
||||||
- [ ] [SSL and HTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
|
|
||||||
- [ ] [SSL/TLS](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
|
|
||||||
- [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
|
|
||||||
- [ ] [Video Series (21 videos)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
|
|
||||||
- [ ] [Subnetting Demystified - Part 5 CIDR Notation](https://www.youtube.com/watch?v=t5xYI0jzOf4)
|
|
||||||
|
|
||||||
- ### Computer Security
|
- ### Computer Security
|
||||||
- [MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
- [MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||||
- [ ] [Introduction, Threat Models](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
- [ ] [Introduction, Threat Models](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||||
@ -1771,7 +1739,6 @@ You're never really done.
|
|||||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||||
|
|
||||||
- ### Garbage collection
|
- ### Garbage collection
|
||||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
|
||||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||||
@ -1835,28 +1802,10 @@ You're never really done.
|
|||||||
- [ ] [MIT Lecture Notes](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
|
- [ ] [MIT Lecture Notes](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
|
||||||
|
|
||||||
- ### Augmented Data Structures
|
- ### Augmented Data Structures
|
||||||
- [ ] [CS 61B Lecture 39: Augmenting Data Structures](https://youtu.be/zksIj9O8_jc?list=PL4BBB74C7D2A1049C&t=950)
|
- [ ] [CS 61B Lecture 39: Augmenting Data Structures](https://archive.org/details/ucberkeley_webcast_zksIj9O8_jc)
|
||||||
|
|
||||||
- ### Tries
|
|
||||||
- Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
|
|
||||||
to track the path.
|
|
||||||
- I read through code, but will not implement.
|
|
||||||
- [ ] [Sedgewick - Tries (3 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
|
||||||
- [ ] [1. R Way Tries](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
|
||||||
- [ ] [2. Ternary Search Tries](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
|
||||||
- [ ] [3. Character Based Operations](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1)
|
|
||||||
- [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
|
|
||||||
- [ ] Short course videos:
|
|
||||||
- [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
|
|
||||||
- [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
|
|
||||||
- [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
|
|
||||||
- [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
|
|
||||||
- [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/)
|
|
||||||
- [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
|
|
||||||
- [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
|
|
||||||
|
|
||||||
- ### Balanced search trees
|
- ### Balanced search trees
|
||||||
- Know least one type of balanced binary tree (and know how it's implemented):
|
- Know at least one type of balanced binary tree (and know how it's implemented):
|
||||||
- "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular.
|
- "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular.
|
||||||
A particularly interesting self-organizing data structure is the splay tree, which uses rotations
|
A particularly interesting self-organizing data structure is the splay tree, which uses rotations
|
||||||
to move any accessed key to the root." - Skiena
|
to move any accessed key to the root." - Skiena
|
||||||
@ -1886,7 +1835,7 @@ You're never really done.
|
|||||||
Splay trees are typically used in the implementation of caches, memory allocators, routers, garbage collectors,
|
Splay trees are typically used in the implementation of caches, memory allocators, routers, garbage collectors,
|
||||||
data compression, ropes (replacement of string used for long text strings), in Windows NT (in the virtual memory,
|
data compression, ropes (replacement of string used for long text strings), in Windows NT (in the virtual memory,
|
||||||
networking and file system code) etc.
|
networking and file system code) etc.
|
||||||
- [ ] [CS 61B: Splay Trees (video)](https://www.youtube.com/watch?v=Najzh1rYQTo&index=23&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
|
- [ ] [CS 61B: Splay Trees (video)](https://archive.org/details/ucberkeley_webcast_G5QIXywcJlY)
|
||||||
- [ ] MIT Lecture: Splay Trees:
|
- [ ] MIT Lecture: Splay Trees:
|
||||||
- Gets very mathy, but watch the last 10 minutes for sure.
|
- Gets very mathy, but watch the last 10 minutes for sure.
|
||||||
- [Video](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
|
- [Video](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
|
||||||
@ -1903,8 +1852,8 @@ You're never really done.
|
|||||||
hashcodes, a Red-Black tree is used.
|
hashcodes, a Red-Black tree is used.
|
||||||
- [ ] [Aduni - Algorithms - Lecture 4 (link jumps to starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
|
- [ ] [Aduni - Algorithms - Lecture 4 (link jumps to starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
|
||||||
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
|
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
|
||||||
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
|
- [ ] [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
|
||||||
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
|
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/competitive-programming/tutorials/an-introduction-to-binary-search-and-red-black-trees/)
|
||||||
|
|
||||||
- [ ] **2-3 search trees**
|
- [ ] **2-3 search trees**
|
||||||
- In practice:
|
- In practice:
|
||||||
@ -1920,7 +1869,7 @@ You're never really done.
|
|||||||
operations on 2-4 trees are also equivalent to color-flipping and rotations in red–black trees. This makes 2-4 trees an
|
operations on 2-4 trees are also equivalent to color-flipping and rotations in red–black trees. This makes 2-4 trees an
|
||||||
important tool for understanding the logic behind red–black trees, and this is why many introductory algorithm texts introduce
|
important tool for understanding the logic behind red–black trees, and this is why many introductory algorithm texts introduce
|
||||||
2-4 trees just before red–black trees, even though **2-4 trees are not often used in practice**.
|
2-4 trees just before red–black trees, even though **2-4 trees are not often used in practice**.
|
||||||
- [ ] [CS 61B Lecture 26: Balanced Search Trees (video)](https://www.youtube.com/watch?v=zqrqYXkth6Q&index=26&list=PL4BBB74C7D2A1049C)
|
- [ ] [CS 61B Lecture 26: Balanced Search Trees (video)](https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q)
|
||||||
- [ ] [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
|
- [ ] [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
|
||||||
- [ ] [Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
|
- [ ] [Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
|
||||||
|
|
||||||
@ -1946,7 +1895,6 @@ You're never really done.
|
|||||||
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
|
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- ### k-D Trees
|
- ### k-D Trees
|
||||||
- great for finding number of points in a rectangle or higher dimension object
|
- great for finding number of points in a rectangle or higher dimension object
|
||||||
- a good fit for k-nearest neighbors
|
- a good fit for k-nearest neighbors
|
||||||
@ -1959,13 +1907,13 @@ You're never really done.
|
|||||||
- [ ] [For animations and a little more detail](https://en.wikipedia.org/wiki/Skip_list)
|
- [ ] [For animations and a little more detail](https://en.wikipedia.org/wiki/Skip_list)
|
||||||
|
|
||||||
- ### Network Flows
|
- ### Network Flows
|
||||||
- [ ] [Ford-Fulkerson in 5 minutes (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
|
- [ ] [Ford-Fulkerson in 5 minutes — Step by step example (video)](https://www.youtube.com/watch?v=Tl90tNtKvxs)
|
||||||
- [ ] [Ford-Fulkerson Algorithm (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
|
- [ ] [Ford-Fulkerson Algorithm (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
|
||||||
- [ ] [Network Flows (video)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
|
- [ ] [Network Flows (video)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
|
||||||
|
|
||||||
- ### Disjoint Sets & Union Find
|
- ### Disjoint Sets & Union Find
|
||||||
- [ ] [UCB 61B - Disjoint Sets; Sorting & selection (video)](https://www.youtube.com/watch?v=MAEGXTwmUsI&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=21)
|
- [ ] [UCB 61B - Disjoint Sets; Sorting & selection (video)](https://archive.org/details/ucberkeley_webcast_MAEGXTwmUsI)
|
||||||
- [ ] [Sedgewick Algorithms - Union-Find (6 videos)](https://www.youtube.com/watch?v=8mYfZeHtdNc&list=PLe-ggMe31CTexoNYnMhbHaWhQ0dvcy43t)
|
- [ ] [Sedgewick Algorithms - Union-Find (6 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/1)
|
||||||
|
|
||||||
- ### Math for Fast Processing
|
- ### Math for Fast Processing
|
||||||
- [ ] [Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
- [ ] [Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
||||||
@ -2112,7 +2060,7 @@ Sit back and enjoy. "Netflix and skill" :P
|
|||||||
|
|
||||||
- [ ] [Excellent - MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
|
- [ ] [Excellent - MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
|
||||||
|
|
||||||
- [ ] [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](https://www.youtube.com/playlist?list=PL-XXv-cvA_iD8wQm8U0gG_Z1uHjImKXFy)
|
- [ ] [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
|
||||||
|
|
||||||
- [ ] [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PL3o9D4Dl2FJ9q0_gtFXPh_H4POI5dK0yG)
|
- [ ] [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PL3o9D4Dl2FJ9q0_gtFXPh_H4POI5dK0yG)
|
||||||
|
|
||||||
@ -2121,15 +2069,15 @@ Sit back and enjoy. "Netflix and skill" :P
|
|||||||
- [ ] CSE373 - Analysis of Algorithms (25 videos)
|
- [ ] CSE373 - Analysis of Algorithms (25 videos)
|
||||||
- [Skiena lectures from Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
|
- [Skiena lectures from Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
|
||||||
|
|
||||||
- [ ] [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://www.youtube.com/watch?v=mFPmKGIrQs4&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
|
- [ ] [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
|
||||||
|
|
||||||
- [ ] [UC Berkeley 61B (Fall 2006): Data Structures (39 videos)](https://www.youtube.com/playlist?list=PL4BBB74C7D2A1049C)
|
- [ ] [UC Berkeley 61B (Fall 2006): Data Structures (39 videos)](https://archive.org/details/ucberkeley-webcast-PL4BBB74C7D2A1049C)
|
||||||
|
|
||||||
- [ ] [UC Berkeley 61C: Machine Structures (26 videos)](https://www.youtube.com/watch?v=gJJeUFyuvvg&list=PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
|
- [ ] [UC Berkeley 61C: Machine Structures (26 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
|
||||||
|
|
||||||
- [ ] [OOSE: Software Dev Using UML and Java (21 videos)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
- [ ] [OOSE: Software Dev Using UML and Java (21 videos)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
||||||
|
|
||||||
- [ ] [UC Berkeley CS 152: Computer Architecture and Engineering (20 videos)](https://www.youtube.com/watch?v=UH0QYvtP7Rk&index=20&list=PLkFD6_40KJIwEiwQx1dACXwh-2Fuo32qr)
|
- [ ] ~~[UC Berkeley CS 152: Computer Architecture and Engineering (20 videos)](https://www.youtube.com/watch?v=UH0QYvtP7Rk&index=20&list=PLkFD6_40KJIwEiwQx1dACXwh-2Fuo32qr)~~
|
||||||
|
|
||||||
- [ ] [MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
|
- [ ] [MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user