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