.. _interview-prep: ======================= Interview Preparation ======================= This section contains my notes that are solely for interview preparation. This targets FAANG-style leetcode-farming, and my daily progress. I am not going to talk about whether or not this interview process works. I just want to be able to ace any interview I go to. .. toctree:: :caption: Topics :maxdepth: 1 ds-algo/index design-patterns/index system-design/index leetcode/index advent-of-code/index interview-questions/index ------------- Resources ------------- #. :ref:`common-sense-guide` #. :ref:`ctci` #. :ref:`algorithm-design-manual` #. :ref:`elements-of-programming-interviews` --------------------- Preparation Roadmap --------------------- I am taking this interview preparation timeline from the first chapter of :ref:`elements-of-programming-interviews`, and I'm tuning it with things I've found in :ref:`ctci`. Your mileage may vary. Each of these sections has a *pre-read*, a *daily-activity*, and a *review*, which usually involves *Leetcode* problems. .. warning:: This document is still a WIP, so I will be editing this as I go along. .. tab:: Three Months This is the plan I use, and I will be focussing on this the most. .. tab:: Six Months This is the plan I recommend following, if you haven't interviewed in over a year. .. tab:: One Year This is the "I don't hate my job but would like a backup" plan. I don't recommend this unless you have nothing better to do. Big-O ---------- The best introduction to Big-O I have found so far is in :ref:`common-sense-guide`. My :ref:`notes on Big-O from it ` will be the section to refresh here. This should take 2 days. Do all the exercises in the book. .. tab:: Three Months 2 Days Day 1: Read :ref:`common-sense-guide-big-o` Day 2: Read :ref:`ctci-big-o` Do all the exercises in both books. :ref:`common-sense-guide`'s exercises will not take more than 20 minutes. I need to check how long :ref:`ctci` will take. .. tab:: Six Months .. todo:: Fill this in. .. tab:: One Year .. todo:: Fill this in. Data Structures ----------------- .. tab:: Three Months Day 3: Arrays and Strings Day 4: Linked Lists Day 5: Stacks Day 6: Queues Day 7: Trees Day 8: Graphs Day 9: Heaps Day 10: Hash Tables Day 11: Review Day 12: Review .. note:: At the end of this, you'd be at day 12, so you should have started Leetcode by now. Focus on topics. As you go through the above topics, churn out solutions to leetcode problems in those topics. Just read the questions and try to write answers. You'll get back to this later. .. tab:: Six Months Content goes here. .. tab:: One Year Content goes here. Algorithms ----------------- .. tab:: Three Months Day 13: Bit Manipulation Day 14: Mathematical Gotchas Day 15: Sorting Algorithms Day 15: Sorting Algorithms Continued Day 16: Searching Algorithms Day 17: Searching Algorithms Continued Day 18: Binary Search Trees Day 18: Recursion Day 19: Dynamic Programming Day 20: Dynamic Programming Continued .. tab:: Six Months Content goes here. .. tab:: One Year Content goes here. System Design ----------------- .. tab:: Three Months Content goes here. .. tab:: Six Months Content goes here. .. tab:: One Year Content goes here.