|
| 1 | +# Interview Prep Curriculum |
| 2 | + |
| 3 | +This is meant to shore up computer science fundamentals for the self taught programmer. |
| 4 | + |
| 5 | + |
| 6 | +## 0. Getting set up |
| 7 | + |
| 8 | +- Practical Algorithms and Data Structures from Bradfield Computer Science: https://bradfieldcs.com/algos/ |
| 9 | + - Read [The Big Picture](https://bradfieldcs.com/algos/analysis/introduction/) |
| 10 | + |
| 11 | +- Join Exercism.io and join the track for your language of choice. In my case this means joining the [PHP](https://exercism.io/my/tracks/php) and [Javascript](https://exercism.io/my/tracks/javascript) tracks. |
| 12 | + |
| 13 | + |
| 14 | +## 1. Time and space complexity: Big O Notation |
| 15 | + |
| 16 | +**Resources:** |
| 17 | + |
| 18 | +- Bradfield CS: [Big O Notation](https://bradfieldcs.com/algos/analysis/big-o-notation/) |
| 19 | + |
| 20 | +- Introduction to Big O notation from Rithm School [Computer Science Fundamentals course](https://www.rithmschool.com/courses/javascript-computer-science-fundamentals/introduction-to-big-o-notation) |
| 21 | + |
| 22 | +- Asymptotic notation section of [Khan Academy Algorithms course](https://www.khanacademy.org/computing/computer-science/algorithms/asymptotic-notation/a/asymptotic-notation) |
| 23 | + |
| 24 | + |
| 25 | +## 2. Data Structures I |
| 26 | + |
| 27 | +### Stacks |
| 28 | + |
| 29 | +- Bradfield CS: [Stacks](https://bradfieldcs.com/algos/stacks/introduction/) |
| 30 | + |
| 31 | +### Queues |
| 32 | + |
| 33 | +- Bradfield CS: [Queues](https://bradfieldcs.com/algos/queues/introduction/) |
| 34 | + |
| 35 | +### Lists |
| 36 | + |
| 37 | +- Bradfield CS: [Lists](https://bradfieldcs.com/algos/lists/introduction/) |
| 38 | + |
| 39 | + |
| 40 | +## 3. Recursion |
| 41 | + |
| 42 | +- Bradfield CS: [Recursion](https://bradfieldcs.com/algos/recursion/introduction/) |
| 43 | + |
| 44 | +- Rithm School: [Recursion](https://www.rithmschool.com/courses/javascript-computer-science-fundamentals/introduction-to-recursion) |
| 45 | + |
| 46 | + |
| 47 | +## 4. Searching and Sorting |
| 48 | + |
| 49 | +- Bradfield CS: [Searching](https://bradfieldcs.com/algos/searching/searching/) |
| 50 | + |
| 51 | +- Rithm School: [Searching](https://www.rithmschool.com/courses/javascript-computer-science-fundamentals/searching-algorithms), [Sorting](https://www.rithmschool.com/courses/javascript-computer-science-fundamentals/basic-sorting-algorithms), [Intermediate Sorting](https://www.rithmschool.com/courses/javascript-computer-science-fundamentals/intermediate-sorting-algorithms) |
| 52 | + |
| 53 | + |
| 54 | +## 5. Data Structures II |
| 55 | + |
| 56 | +### Trees |
| 57 | + |
| 58 | +- Bradfield CS: [Trees](https://bradfieldcs.com/algos/trees/introduction/) |
| 59 | + |
| 60 | +### Graphs |
| 61 | + |
| 62 | +- Bradfield CS: [Graphs](https://bradfieldcs.com/algos/graphs/introduction/) |
| 63 | + |
| 64 | +- Rithm School: [Graphs](https://www.rithmschool.com/courses/javascript-computer-science-fundamentals/introduction-to-graphs) |
| 65 | + |
| 66 | +### Hash Map |
| 67 | + |
| 68 | +- Rithm School: [Hash Map / Hash Table](https://www.rithmschool.com/courses/javascript-computer-science-fundamentals/introduction-to-hash-tables) |
| 69 | + |
| 70 | +## 6. Dynamic Programming |
| 71 | + |
| 72 | +- Rithm School: [Dynamic Programming](https://www.rithmschool.com/courses/javascript-computer-science-fundamentals/dynamic-programming) |
| 73 | + |
| 74 | + |
0 commit comments