Sorry for the light posting lately. I spent most of the past two weeks preparing for a job interview at work. (I’m applying for a more coding-heavy role.) The interview was a few days ago and I haven’t heard back yet, but now I’m getting caught up on all the stuff I didn’t do while I was plowing through pages and pages of practice questions.

In prepping for the interview, I picked up a couple of new texts to help me sharpen my skills. I wanted to say a few words about two of them.

The first is Cracking the Coding Interview by Gayle Laakmann McDowell. The book is a collection of 150 programming questions, with solutions provided. It also feature brief, high-level overviews of major areas of knowledge. The questions themselves are excellent, but the provided solutions can be hit or miss. Most include sample code which appears to be correct, but the descriptions of their solutions can sometimes be vague and hard to follow.

I was also unimpressed with the overview at the beginning of each chapter. They tend to be too shallow to be very useful, and I found a few technical mistakes in them. (E.g., the book asserts that a full and complete binary tree will have 2n nodes. This is wrong. A full and complete binary tree will have a number of nodes that is one less than a power of two. To be more specific, it will have 2h+1-1 nodes, where h is the height of the tree.)

All in all, if you’re prepping for an interview, this will be a handy book to have for the list of excellent coding questions it provides. I would recommend looking around for a used copy at a reasonable price.

The second book I wanted to comment on is Algorithms by Robert Sedgewick and Kevin Wayne. The Sedgewick and Wayne Algorithms book is one of The Texts in algorithms, and it largely lives up to its reputation. It’s well organized, clearly written, and has excellent explanations and samples. It also has an excellent website that includes all the sample code from the book as well as notes and other resources.

Unfortunately, it too had some noticeable mistakes. The authors of this text, however, have taken the laudable step of making all the known errors available on the book’s site. This allows you to double check code that doesn’t appear correct or which doesn’t behave correctly when you run it.

I highly recommend this book. It’s a fantastic resource programmers of any level. For my purposes it served as a fantastic study text, but it would also be an invaluable reference resource or learning text as well.

One note: I got the Kindle edition of the book, and while the publisher did an awesome job with it, it’s probably worth it to get a physical copy. If for no other reason than it lets you pencil in the corrections to the mistakes listed on the book’s web site. That being said, I seriously doubt you’ll regret getting the Kindle edition.

Disclosure Notice