Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

CODING INTERVIEW PREP

By Neuromancers
Milestone 0: Learning a programming language
You should be confident with at least one language for both online and interview rounds. Prefer
C++/Python as we can write shorter codes which saves time.

Resources:
C : ​https://www.hackerrank.com/domains/c
C++ : ​https://www.hackerrank.com/domains/cpp
Python: ​https://www.hackerrank.com/domains/python
JAVA : ​https://www.hackerrank.com/domains/java

Solve questions as well as take a look at the Discussion and Editorial tabs.

Disclaimer (For Milestone 0)​:


Here, you are required to learn the basics until functions and classes. But this ​definitely
does not guarantee a strong background in that language. So, to sharpen your language
knowledge, do these:
1. For smart and sleek codes:
Practise algo/ds questions online in coding competitions:
a. CodeForces
b. CodeChef
2. For very deep language understanding and writing maintainable codes:
Work on projects, OOPs, Hackathons, contribute on ​Github​, etc

Milestone 1: Basic Data Structures


Data Structures are ​very​ important for cracking coding interviews. You should be thorough with all the
key questions related to each data structure. Below is a list of basic Data Structures and the relevant
resources:
1. Arrays: ​https://www.geeksforgeeks.org/category/data-structures/c-arrays/
2. Linked Lists:
https://medium.com/@codingfreak/linked-list-interview-questions-and-practice-problems-55f75302
d613
3. Stacks: ​https://www.geeksforgeeks.org/stack-data-structure/
4. Queues:
https://medium.com/@codingfreak/queue-data-structure-practice-problems-and-interview-questio
ns-f459bf0578db
Milestone 2: Basic Algorithms
Practice algorithms for at least 4 hours a day.
1. Algorithm analysis - Time & space complexity analysis -
https://codility.com/media/train/1-TimeComplexity.pdf
https://www.hackerearth.com/practice/basic-programming/complexity-analysis/time-and-space-co
mplexity/tutorial/
2. Searching -
- Theory: ​http://www.cs.carleton.edu/faculty/adalal/teaching/f04/117/notes/searchSort.pdf
- Questions:
https://www.geeksforgeeks.org/searching-algorithms/
3. Sorting - ​https://www.geeksforgeeks.org/top-10-algorithms-in-interview-questions/#algo4
- https://www.youtube.com/watch?v=pkkFqlG0Hds&list=PL2_aWCzGMAwKedT2KfDMB9YA5DgA
SZb3U
4. Recursion -
- Theory: ​https://www.youtube.com/watch?v=KEEKn7Me-ms
- Questions: ​https://www.geeksforgeeks.org/practice-questions-for-recursion/

Milestone 3: Advanced Data Structures I


1. Tree: ​https://www.youtube.com/watch?v=oSWTXtMglKE
2. Binary Tree: - ​https://www.studytonight.com/data-structures/introduction-to-binary-trees
https://www.geeksforgeeks.org/binary-tree-data-structure/
3. Binary Search Tree: ​https://www.youtube.com/watch?v=pYT9F8_LFTM
4. AVL Tree: ​https://www.youtube.com/watch?v=jDM6_TnYIqE
​https://www.geeksforgeeks.org/avl-tree-set-1-insertion/
5. Red-Black Tree: ​https://www.youtube.com/watch?v=ZxCvM-9BaXE
​https://www.geeksforgeeks.org/red-black-tree-set-1-introduction-2/
6. N-ary Tree: ​https://leetcode.com/articles/introduction-to-n-ary-trees/

Milestone 4: Advanced Data Structures II


1. Heap: ​https://www.youtube.com/watch?v=t0Cq6tVNRBA
https://www.geeksforgeeks.org/heap-data-structure/
2. Graph: ​https://www.youtube.com/watch?v=pcKY4hjDrxk
https://medium.com/@codingfreak/graph-data-structure-interview-questions-and-practice-
problems-22d5cd488855
3. Others: ​https://www.geeksforgeeks.org/advanced-data-structures/
Milestone 5: Advanced Algorithms I
1. Dynamic Programming: ​https://codeforces.com/blog/entry/43256
2. Greedy: ​https://www.topcoder.com/community/competitive-programming/tutorials/greedy-is-good/
https://www.geeksforgeeks.org/greedy-algorithms/
3. Divide and Conquer:
https://cp-algorithms.com/dynamic_programming/divide-and-conquer-dp.html
4. Backtracking:
https://www.hackerearth.com/practice/basic-programming/recursion/recursion-and-backtracking/tu
torial/

5. Bit Manipulation:
-​https://www.hackerearth.com/practice/basic-programming/bit-manipulation/basics-of-bit-
manipulation/tutorial/
6. Math-related: ​https://www.geeksforgeeks.org/number-theory-competitive-programming/
https://github.com/dylan007/winter-resources/wiki/Mathematics-in-Competitive-progr
amming

Milestone 6: OOPs
OOPs aka Object Oriented Programming consists of a major part of interviews. Mostly theoretical, but
one can be asked to write small codes using the same;

Basic Theory:
https://www.geeksforgeeks.org/oops-object-oriented-design/​ (Read all the recommended posts
given at the bottom of this link’s page)

Each language has some difference with respect to OOPs:


C++ : ​https://www.youtube.com/watch?v=ZOKLjJF54Xc&t=904s
Python: ​https://www.youtube.com/watch?v=qiSCMNBIP2g

Common Interview Questions:


https://www.geeksforgeeks.org/commonly-asked-oop-interview-questions/

Milestone 7: SYSTEM DESIGN


Companies like Gojek and Codenation generally ask these questions. Many great coders get stuck
here. These questions need the presence of mind as well as practice.
Reference: ​https://www.educative.io/courses/grokking-the-system-design-interview
Milestone - 8: Showing your online presence
A. Online Coding Competitions from your dream companies:
a. Google
i. KickStart, HashCode, and CodeJam: ​here
b. Facebook
i. HackerCup: ​here
B. ML Competitions:
a. Kaggle: ​here
C. Open Source Contributions:
a. GitHub: ​here
b. Google Summer of Code (GSoC): ​here
D. With a strong resume in hand (or in the cloud):
a. Connect with people on ​Linkedin
b. Grow your network
c. Post ​meaningful​ content based on your recent project works, participation in famous
competitions, etc.

You might also like