Course: Grokking Dynamic Programming Patterns for Coding Interviews

The fact is, Dynamic Programming (DP) problems can be some of the most intimidating on a coding interview. Even when it's actually clear if a problem can be solved using DP (which it rarely is), it can be pretty challenging to even know where to start on the solution. Unless, that is, you're trained on the approach to solving DP problems.

This course was made from scratch with just that goal in mind. It'll equip you with a set of easy-to-understand techniques to handle any DP problem. Rather than just having you try to memorize solutions, you'll be walked through five underlying DP patterns that can then be applied to solve 35+ DP problems.

In each pattern, we'll start with a recursive brute-force solution -- this is actually the best way to start solving a DP problem! Once we have a recursive solution, we'll then apply the advanced DP methods of Memoization and Tabulation.

The practice problems in this course were carefully chosen, covering the most frequently asked DP questions in coding interviews.

Take a look at Grokking Dynamic Programming Patterns for Coding Interviews and Dynamic Programming for some good examples of dynamic programming questions and their answers.

Course: Grokking the Object Oriented Design Interview

Object-oriented design has always been a critical part of the software engineering interview process. Most of the engineers struggle with the object-oriented design interviews (OODI), partly because of their lack of experience in laying down the design of a complex system, and partly because of the unstructured nature of OODI.

Even engineers, who have some sort of experience in building such systems are not comfortable with these interviews. It is mainly because of the open-ended nature of the design problems that don't have a standard answer.

This course is a complete guide to master the OODI. It is designed by the hiring managers of Google, Facebook, Microsoft, and Amazon. It not only has a set of carefully handpicked case studies, which have been repeatedly asked at the top tech companies, but also provides a thorough experience to handle different object-oriented design scenarios.

Take a look at Grokking the Object Oriented Design Interview for some good examples of object oriented design question and their answers.

Course: Grokking the Coding Interview: Patterns for Coding Questions

Coding interviews are getting harder every day. A few years back, brushing up on key data structures and going through 50-75 practice questions was more than enough prep for an interview. Today, everyone has access to massive sets of coding problems, and they've gotten more difficult to account for that. The process has gotten more competitive.

When our team sat together to brainstorm on ideas to make the interview process easier for candidates, we realized quickly that one skill helped us the most when we were preparing for coding interviews: "the ability to map a new problem to an already known problem." To help candidates with that, we've come up with a list of 15 patterns for coding questions, based on similarities in the techniques needed to solve them. As a result, once you're familiar with a pattern, you'll be able to solve dozens of problems with it. The techniques taught in this course have helped developers land Google, Facebook, Amazon, and Microsoft.

Take a look at Grokking the Coding Interview: Patterns for Coding Questions for some good examples of coding question and their answers.