Programming Interviews Exposed: Secrets to Landing Your Next Job Paperback – Apr 30 2007
There is a newer edition of this item:
Customers Who Viewed This Item Also Viewed
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
From the Back Cover
Programming Interviews Exposed
The pressure is on during the interview process but with the right preparation, you can walk away with your dream job. This classic book uncovers what interviews are really like at America's top software and computer companies and provides you with the tools to succeed in any situation. The authors take you step-by-step through new problems and complex brainteasers they were asked during recent technical interviews.
50 interview scenarios are presented along with in-depth analysis of the possible solutions. The problem-solving process is clearly illustrated so you'll be able to easily apply what you've learned during crunch time. You'll also find expert tips on what questions to ask, how to approach a problem, and how to recover if you become stuck. All of this will help you ace the interview and get the job you want.
What you will learn from this book
- Tips for effectively completing the job application
Ways to prepare for the entire programming interview process
How to find the kind of programming job that fits you best
Strategies for choosing a solution and what your approach says about you
How to improve your interviewing skills so that you can respond to any question or situation
Techniques for solving knowledge-based problems, logic puzzles, and programming problems
Who this book is for
This book is for programmers and developers applying for jobs in the software industry or in IT departments of major corporations.
Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that will guide you through all the techniques involved.
About the Author
John Mongan is a self-taught programmer with professional experience as a consultant for software and pharmaceutical companies. He has three patents on software testing technologies. He holds a BS in chemistry from Stanford and a PhD in Bioinformatics from UC San Diego, with thesis work in supercomputer simulations of protein dynamics.
Noah Suojanen Kindler graduated from Stanford with a BS in computer science, has worked for Boeing and is currently a consultant.
Eric Giguere is a software developer and the author of three Wiley programming books. He is a frequent speaker and is often interviewed by USA Today and other broad media on various topics.
What Other Items Do Customers Buy After Viewing This Item?
Top Customer Reviews
There is a huge difference when you read the examples and problems and when you want to do it yourself! Believe me! Definitely worth it!
Most Helpful Customer Reviews on Amazon.com (beta)
(2nd edn), John Mongan, Noah Suojanen and Eric Giguère (2nd edn, 2007)
is a good book, but so is the very similar "Cracking the coding
interview" (4th ed, 2008) by Gayle Laakman. Which should you choose?
Here are the main differences:
- "Exposed" is much more readable: it explains the solutions in
English before giving code, whereas "Cracking" often just presents
code with minimal explanation. Another nice thing is that "Exposed"
presents the solution in stages, so you can read the first part of the
solution to get a hint, and then try again. By contrast, "Cracking"
just gives the key idea right away, so even a "peek" at the solutions
means it's game over (modulo coding issues, which are usually easy).
- "Cracking" has more questions, and they generally seem to be a bit
harder. They are sorted in order of increasing difficulty, which is
- "Cracking" gives solutions in Java, although the code seems to have
some errors (see other reviews on amazon). "Exposed" gives solutions
in a mix of languages (C++, Java, C#), although they only use one
language per question.
- "Cracking" contains some grammatical errors (for example, Gayle
often mixes up "eg" and "ie"). In addition, many explanations would be much clearer with
- Both books are similar in length (about 300 pages), and their "non
technical" advice is very similar.
- Overall, "Exposed" is easier to read, but "Cracking" has more
content. Tough call.
There is also the good book "Algorithms For Interviews" by Adnan Aziz
and Amit Prakash (2010), which contains much harder questions,
focusing on clever algorithms and not on implementation details. Do
not attempt this book before mastering "Cracking" and/or "Exposed",
you will find it demoralizing! But it's probably worth trying some of
these harder problems, to see how "fancier" algorithms (like Dijkstra,
or max-flow min-cut, or dynamic programming) can be applied in
Given today's competitive market, I find that more employers are looking not only at experience (as they did in my prior job searches), but also are testing applicants on college level computer science. It's true that professionals have taken these courses, but it's been a very long time since I had to write a binary tree algorithm. Once you have experience, you still need to understand data structures and algorithms, but I'd seriously worry about a programmer that wrote their own btree functions. Part of software engineering is understanding what you need, where to find the libraries and tools to support your selection, and understanding how to apply them. So I was taken by surprise when asked about btree algorithms and red/black tree traversal. I remembered these concepts, but wasn't prepared to sit down and code one.
This is where this book came in handy. It sets the stage for interviewing in today's marketplace, covers all those CS101 concepts that some of us are rusty at, and provided good examples to practice working through those low level concepts.
I found it very helpful for my second round of interviews at a very technical company.
For those people that say there is no silver bullet, or that you can't learn to be a computer scientist from one book, I totally agree. But that is not the intended audience. This book is great for those of us that have all that knowledge, but are a bit rusty on some of the data structure internals. It's also great for experienced professionals who have been out of the market for a while.
Really, this book is a direct result of the "Interview 2.0" concept that came out in the late 90s and still persists. I feel that a lot of tech companies (except perhaps a select few, such as Google and MS) have realized that interviews based exclusively on basic C.S. algorithm knowledge isn't the way to pick the best candidate.
There is a *ton* of material in this book. If you focus on it, you may end up shooting yourself in the foot. So make sure your target company is going to be focused on algorithm questions before you put the time into doing the problems here. Or avoid those companies. Honestly, you're wasting your life relearning this stuff, as interesting as it is, unless you're going to be designing algorithmic libraries.
Also, don't forget the soft questions (your past experience is really important!).
Looking back at this review, I may have been a bit too harsh. This is an excellent book in a lot of ways. It is a great review of some of the more famous algorithm problems in computer science (although I'd recommend picking up Bentley's Programming Pearls if you want a real glance into famous algorithmic problems). It also has some general good advice on soft questions, although I wish it had spent more time on this area - as I learned the hard way in one of my first interviews looking for a new job. And hence why I rated this 3 stars at the time.
Regardless, I still flip through it every time before an interview... So if I could, I would revise my rating up to 4 stars.
1) This book has sample interview questions for you to solve and several approaches for each question.
2) The book then tells you which approach is the best and why. VERY VERY NICE!
3) This book also tells you how to approach problems, how to make sure you are not stuck, how to brainstorm and get the best answer.
4) There are puzzle/riddle type questions too.
5) How to write resumes and cover letters as well.
6)Finally, the book also has very nice simple tutorials of all the important/basic concepts of OOP.
Very comprehensive book. A MUST buy!
This is a nice book. It's definitely a nice refresher for more experienced people but probably far more useful for someone new to the industry. If you know this book up and down AND can answer similar questions without much issue, you should not have much trouble landing your first job, at least.
All the basics are covered: string/array questions, tree questions, linked list questions, data structure questions, etc. There are also knowledge-based questions (on threads, databases, etc.). Finally, there is a common-sense chapter on salary negotiations, etc. -- nothing mind-blowing but still a nice collection that is help to less experienced people.
The best thing about this book is that it's not afraid to explain solutions. It doesn't just give the solution -- it meticulously shows the reasoning that a reasonable person could use to arrive at that solution. This is more useful than simply writing out the code (something that Cracking the Coding Interview by Gayle Laakmann is more than happy to do). Reading and understanding these parts can give prepare you well for doing so yourself on other (especially related) problems.
So, what the book covers it generally covers well. There are some exceptions to this. For example, the knowledge-based chapters seem a little thin. The producer/consumer concurrency problem is discussed (as well it should be!), but the solution is not discussed in nearly enough depth for real understanding. (A prudent person would go elsewhere and learn more, though, so the fact that it's present in the book at all is nearly sufficient.) Also, based on my interview experience, there is not enough focus on design problems: e.g., design a web crawler -- how do you distribute the nodes, how do you handle fail-over, etc. etc.
No matter. This is definitely a great book for the less experienced job seekers out there, and also nice brush-up material for the veterans. I would also recommend Gayle Laakmann's Cracking the Coding Interview, though less enthusiastically; it features a fuller set of problems, but it's also full of errors and lacks detailed explanations of solutions.