Data Structure | C | CPP | Java | Python |
---|---|---|---|---|
Dynamic array | ||||
Stack | ||||
Singly Linked List | ||||
Double Linked List | ||||
Circular Linked List | ||||
Hash Tables | ||||
Heap | ||||
Fibonacci Heaps | ||||
Disjoints Sets | ||||
Adjacency matrix | ||||
Queue | ||||
Priority Queue |
Maths | C | CPP | Java | Python |
---|---|---|---|---|
Euclidean GCD | ||||
Fibonacci series | ||||
Pallindrome number | ||||
Perfect number | ||||
Magic number | ||||
Polite number | ||||
Sieve of Eratosthenes | ||||
Modular exponentiation |
Searching and Sorting | C | CPP | Java | Python |
---|---|---|---|---|
QuickSort | ||||
Merge Sort | ||||
Insertion Sort | ||||
Counting Sort | ||||
Radix Sort | ||||
Bubble Sort | ||||
Heap Sort | ||||
Selection Sort | ||||
Linear Search | ||||
Binary Search |
Tree traversal | C | CPP | Java | Python |
---|---|---|---|---|
Pre-Order Traversal | ||||
Post-Order Traversal | ||||
In-Order Traversal | ||||
Binary Search Tree | ||||
Height of the Tree | ||||
Depth of the Tree | ||||
AVL Tree | ||||
Spanning Tree | ||||
Segment Tree | ||||
Fenwick Tree | ||||
Trie |
Graph Traversal | C | CPP | Java | Python |
---|---|---|---|---|
Breadth First Search | ||||
Depth First Search | ||||
Topological Sort | ||||
Kruskals Algorithms | ||||
Prim's Algorithms | ||||
Belmon Ford Algorithms | ||||
Floyd-Warshall Algorithm | ||||
Dijkstra's Algorithm |
Dynamic Programming | C | CPP | Java | Python |
---|---|---|---|---|
Edit distance | ||||
Fractional Knapsack | ||||
Longest Increasing Sequence | ||||
Kadane's Algorithms |
- LeetCode
- InterviewBit
- Codility
- HackerRank
- Project Euler
- Spoj
- Google Code Jam practice problems
- HackerEarth
- Top Coder
- CodeChef
- Codewars
- CodeSignal
- CodeKata
- Firecode
- Data Structures
- Algorithms
- Competitive Programming 3 - Steven Halim & Felix Halim
- Cracking The Coding Interview - Gayle Laakmann McDowell
- Cracking The PM Interview - Gayle Laakmann McDowell & Jackie Bavaro
- Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest & Clifford Stein
- GeeksForGeeks – A CS portal for geeks
- Learneroo – Algorithms
- Top Coder tutorials
- Infoarena training path (RO)
- Steven & Felix Halim – Increasing the Lower Bound of Programming Contests (UVA Online Judge)
- MIT – Hacking a Google Interview
- Coderust 2.0 ($$)
- Interview Cake ($$$) [review]
- How to Ace the Software Engineering Interview ($$)
- Grokking the System Design Interview ($$)
- Coding for Interviews
- Career Cup
- HiredInTech
- Codela
- TestDome
- FreeCodeCamp "Learn to code and help nonprofits"
- Dynamic Programming Practice Problems
- How to: Work at Google – Candidate Coaching Session for Technical Interviewing [45:45]
- Gayle McDowell – Cracking the Coding Interview [1:14:24]
- Gayle McDowell - Cracking the Coding Interview (examples) [9:05]
- Google Recruiters Share Technical Interview Tips [31:06]
- Google Recruiters Share Non-Technical Interview Tips [28:23]
- Moishe Lettvin – What I Learned Doing 250 Interviews at Google [1:00:24]
- Sean Lee – How to Get a Job at the Big 4 [42:34]
- Ladies Storm Hackathons – Interview Prep Round 1: Strings, Arrays, Linked Lists [1:12:39]
- Randall Koutnik – Rethinking the Developer Career Path [25:03]
- donnemartin/system-design-primer
- Grokking the System Design Interview
- This is a paid course but has several free previews such as Designing Instagram
- binhnguyennus/awesome-scalability
- Raph Levien – Rope Science
- Architecture of Open Source Applications
- How should I prepare system design questions for Google/Facebook interview?
- Jeff Atwood – How Good an Estimator Are You?
- 0xAX/linux-insides
Language | Steps |
---|---|
Python | python [filename.py] |
C | gcc [filename.c] |
CPP | g++ [filename.cpp] |
Java | javac [filename.java] |
Golang | go build [filename.go] |