Five essential books
To fully prepare for your programming interviews, you should have access to information on at least these five key topics:
- Algorithm design - The Algorithm Design Manual - this book came highly suggested by Steve Yegge (see below) and Dan Blumenthal. The best part is a collection of "War stories" in which Skiena describes engineering challenges and how algorithmic solutions are put together to solve them. Compared to CLRS, this book doesn't go as deep in to the gritty details of analysis, but rather discusses algorithm design at more length. It is also very readable—a good thing when you're doing a full pass through a book for review.
- Data structures and algorithms - Introduction to Algorithms (CLRS) - if you've been following Coding for Interviews for a while, you've noticed that a handful data structures come up in tons of different interview questions. Whether you took data structures courses in the past or not, any data structure review is worth it. Being able to describe the tradeoffs between different data structure implementations will give you serious bonus points. This book is data structure and algorithm canon.
- Programming interviews - Cracking the Coding Interview - if you have a week before your interview, get this book and cram. Ideally, you should pace yourself, review a bit of each topic each day, and at least attempt to do the problems without peeking at the solutions—no easy feat, which is why I feel the Coding for Interviews weekly review and question are also valuable. Cracking is a great way to gain exposure to the types of interview questions you'll see and etiquette to follow fast.
- Design patterns - Design Patterns: Elements of Reusable Object-Oriented Software - Even though you end up seeing design patterns in many software engineering job interviews, many CS programs don't cover them in their core curricula. If you didn't happen to take a software engineering course, you might not be aware of the nomenclature software engineers use to describe "that thing I did where I had a function with no parameters that just calls another function with a default argument". This book will help you become a better programmer. Another option, if you fall asleep easily while reading and like cheesy book covers: Head First Design Patterns
- Your favorite programming language - You should know one programming language well enough to discuss its nuances and best practices:
Read full article from Coding for Interviews
No comments:
Post a Comment