Monday, March 1, 2010

Cracking Programming Interviews

Whether you are applying for internship or part time job or full time job, you need to do some practice before you go for phone interview or on-site interviews.

Here are some of the resources for cracking programming interviews:

Basic
Intermediate

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?

- Modern Operating Systems (3rd Edition) (Hardcover) ~ Andrew S. Tanenbaum
  • 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:


I hope this helps you!

No comments:

Post a Comment