I am graduating college in May with only 2 years of computer science education(switched major in my junior year and the course requirements are not too strict in my school), and I have about 2~3 months for my job search.
I'm just a mediocre problem solver, and I suck at technical interviews.<p>I want to become a great problem solver, and I am considering two options for the 2~3 months that I have for interview prep:<p>1. studying Algorithm Design by Jon Kleinberg and some problems in the recommended problem set (20~50 out of 300 problems) in Elements of Programming Interviews(EPI).<p>2. studying Elements of Programming Interviews.<p>I have studied about half of Algorithm Design in an Algorithm class 1.5 years ago, and I loved the book because it helped me learn how to approach problems. I also liked the rigorous proofs and the way it explained the problem and solution.<p>However, as I took technical interviews, I felt that the problems asked are mostly well-known problems and that the interviewers cared more whether I knew the well-known algorithms for the problems, than how I approach the problem (and it was very hard to demonstrate a good approach the problem in 30~50 minutes if I did not know the problem.)<p>Therefore, I thought that maybe trying to get familiar with as many problems and working code solutions to them as possible would be the best strategy.<p>Algorithm Design covers a number of different realms of algorithm, but only covers a small set of problems for each chapter. Also, it only has pseudo-codes, so I cannot learn the C++ codes for the algorithm(although this can be complemented by Elements of Programming Interviews and Hackerrank)<p>I cannot decide. I get interview requests from my dream companies because my resume is good, but I have been delaying the interviews for almost a year and still am nowhere near being prepared.