- Programming pearls by Jon Bently
- The algorithm design manual by Skiena
- Introduction to algorithms by Cormen
- Data Structures and algorithms by Robert Lafore
- Cracking the coding Interview
- Programming interviews exposed
- Elements of Programming interview in Java
Limiting the amount of sources. Its better to have couple of hardcopy books and many online sources to complete different questions.
- MIT open courseware
- HackerEarth
- Hackerrank
Before we head into the main details regarding the topics it is highly recommended to practice each and every question, algorithms on paper instead of using an IDE.
-
Sorting Algorithms 1.1. Selection Sort 1.2. Insertions Sort 1.3. Bubble Sort 1.4. Merge Sort 1.5. Quick Sort 1.6. Heap Sort - max heap and Min heap. 1.7. Counting Sort 1.8. Radix sort
-
Time and Space Complexity for sorting Algorithms
-
Data Structures 3.1. Arrays , Multidimensional Arrays 3.2. LinkedList 3.3. Circular LinkedList 3.4. Stacks 3.5. Queues, Priority Queue 3.6. HashTable 3.7. Binary Tree. 3.8. Graphs
-
NP Complete Problems - what does it mean? 4.1. Travelling salesman 4.2. Knapsack Problem
-
Basic Discrete Math Problems, Probability, Counting problems
-
Object Oriented Programming
-
How to test you code, edge cases, Unit test, API calls
-
System design 6.1. Knowledge according to the real value Problems 6.2. Know the distributed Systems 6.3. Firewalls, Load balancers
-
Dizkstra and A* algorithms
-
Recursion solution.
-
Operating Systems 9.1. Processes, semaphores, locks 9.2. Concurrency 9.3. Threads 9.4. Resource allocation 9.5. Context switching 9.6. Scheduling