There are a number of programming books that I use to prepare for technical interviews. These are<p>1. Programming pearls, <a href="http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880" rel="nofollow">http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/...</a><p>2. Effective C++, <a href="http://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876" rel="nofollow">http://www.amazon.com/Effective-Specific-Improve-Programs-De...</a><p>3. Programming Problems, <a href="http://www.amazon.com/Programming-Problems-Primer-Technical-Interview/dp/1475071965" rel="nofollow">http://www.amazon.com/Programming-Problems-Primer-Technical-...</a><p>The reason for these texts is not because they are overtly insightful or well written, it is because they have a large number of problems with completely coded solutions. After working through these basics, programming interviews are much more enjoyable.
At least for mid-level and higher positions, read the job description and know enough about <i>every</i> technology and concept they mention so that you could give an introductory lightning talk on it, AND why/when that technology is preferable over common alternatives A, B, and C.