Recommended Learning Resources

Tech Interview Prep Recommendations

Tech Interview Books

Cracking the coding interview

This is probably the ‘bible’ for tech interview prep. Most software engineers have probably used it or at least heard of it. It’s good and covers basically an entire computer science degree. My only criticism of this book is it has gotten very long. The previous editions were shorter and more focused. This bloat might just be a reflection of how much harder and comprehensive tech interviews have become with so many more people over-preparing.

Programming Interviews Exposed

This is the interview prep book that I originally used to land my job. I think it’s a slightly more gentle introduction than Cracking the Coding Interview and its size is a bit less intimidating.

Tech Interview Problem Websites

Leetcode

Basically, they seem to have collected all the questions from everyone who has decided to break their NDA after a tech interview. I’ve been asked questions from this site directly in interviews many times. There is no better source for finding questions. If you don’t mind grinding questions, then just sequentially solving the first 150 leetcode problems will probably prepare you for any tech interview.

Geeks for geeks

In terms of explanations + questions I think geeks for geeks is the best site. I love the dynamic programming problems especially.

Hackerrank

Hackerrank is also a good source for questions. Their cracking the coding interview section is a good supplement to the cracking the coding interview book.

First Programming Books

Learn to Program

A gentle introduction to programming using Ruby, a great first programming language. Friends of mine have used this recently to get started with programming.

Automate the Boring Stuff with Python

This is a great intro programming book. Even if you don’t become a programmer, the stuff in this book can help in any office job. This book is in python which is another great starting programming language.

C for Dummies

This is how I initially learned programming. I remember interviewers holding back laughs when I told them about this during internship interviews. To be honest, it was a great introduction with a great explanation of pointers. When I read this book I still wasn’t part of a CS program, but after going through CS I know that working through this book and doing programming contest questions (and reverse engineering problems) gave me basically the same knowledge as the first two years of my CS program.

Structure and Interpretation of Computer Programs

This is used for first year computer science classes at top CS schools. It’s a great introduction to problem solving in computer science and something that every programmer should read.