Let me tell you a bit about how this site came to place. My story is that I finished my PhD in computer science and after a year of postdoc I decided that I wanted to follow a new career path. My background was in mathematics, my PhD was in theoretical computer science which is more related to mathematics than coding. In other words this decision to move in the programming world was risky and stressful move.
I quitted my postdoc and I started “working” full-time on getting a job in the tech world. My target company was Google, they constantly work on impressive and exciting projects. I was even more excited to work at Google since they bought DeepMind (this was even before the AlphaGo project)! I was lucky enough to contact with a recruiter and organize the procedure of the technical interviews.
I bought the main books about preparing for programming interviews. I also spent the following months studying these books and reading possible interview problems online. By the time of the interview I was very confident and I was looking forward to the interviews. These books are well written, well prepared, and I really enjoyed them. However, I noticed that the optimal solution of most of the problems that I was asked involved hash-tables and dynamic programming. I was surprised about this because these books didn’t mention neither.
The idea of this site came to place. I decided to make a site that would be a good resource for anyone who is preparing for a technical interview. The structure of this site is divided in sections. The first section contains things that you should know before you keep going on this site as well as before the interview, it also contains other resources to help you with your preparation. Each following section is about a data structure or an algorithms. Sections start with a short summary followed by potentially interview problems related to the concept of each section.
I hope this site will help you ace the upcoming coding interview!