This book provides a very good collection of programming problems. It also presents practical strategies to prepare for an interview. The introduction to concepts are not deep though, which is understandable as the book is really more focused on providing a complete set of questions and answers. I recommend it to anyone trying to find a software development position given that 1) you should first study your material and know them very well 2) you need to verify the answers by yourself and understand them before trusting them as in some cases the solutions are not completely correct or clearly described.