Here are some of the resources for cracking programming interviews:
Basic
- Programming Interviews Exposed: Secrets to Landing Your Next Job (Paperback) ~ John Mongan and Noah Suojanen
 - Data Strucutres - Linked List (single, double, circular, doubly linked circular etc), Arrays, Trees, Graphs, graph traversals
 - Abstract Data Structures - Stack, Heap, BST, Hash Table, Queues
 - Algos - Sorting algos(Quicksort, Mergesort, Heapsort, Binary Sort), BFS, DFS
 
- Programming Pearls ~ Jon Bentley
 - Puzzles for Programmers and Pros by Dennis Elliott Shasha
 
Adavanced
- One Object Language - C++, Java or C# and its design patterns
- For Java:  Effective Java 2nd Edition
 
- Computer Networks (4th Edition) (Hardcover) ~ Andrew S. Tanenbaum
- Distance vector .vs. dijkstra’s algorithm.
 - Count to infinity problem.
 - TCP internals: congestion detection, control, sliding window, cumulative acks, etc.
 - What is IP tunneling?
 - When you type "www.google.com" on your browser : what all happens under the hood ? What are the various hops and translations that happen?
 
- Scheduling algorithms
 - Paging algorithms/concepts
 - Multi-threaded programming: deadlock detection .vs. avoidance.
 - how to implement semaphore using mutex ?
 - reader/writer problem
 - producer/consumer problem
 
- Computer Architecture:
- What is pipelining? RISC architecture.
 - What are some of the pipelining hazards : data hazard etc. how to get around them?
 - Pipeline scheduling algorithms: scoreboarding, tomasulo’s algorithm etc. just a high level understanding and some internals.
 - Shared memory architectures : how to maintain a distributed & shared memory cache?
 
More Advanced
- Mathematical Prolems - Project Euler - http://projecteuler.net/
References:
- http://code.google.com/edu/
 - Algorithms - http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index
 - http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/VideoLectures/index.htm
 
I hope this helps you!
No comments:
Post a Comment