Cracking the Coding Interview: 189 Programming Questions and Solutions (英語) ペーパーバック – 2015/7/1
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
I am not a recruiter. I am a software engineer. And as such, I know what it's like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. I've been through this as a candidate and as an interviewer. Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hundreds of software engineers. The result is this book. Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions. These interview questions are real; they are not pulled out of computer science textbooks. They reflect what's truly being asked at the top companies, so that you can be as prepared as possible. WHAT'S INSIDE? - 189 programming interview questions, ranging from the basics to the trickiest algorithm problems. - A walk-through of how to derive each solution, so that you can learn how to get there yourself. - Hints on how to solve each of the 189 questions, just like what you would get in a real interview. - Five proven strategies to tackle algorithm questions, so that you can solve questions you haven't seen. - Extensive coverage of essential topics, such as big O time, data structures, and core algorithms. - A behind the scenes look at how top companies like Google and Facebook hire developers. - Techniques to prepare for and ace the soft side of the interview: behavioral questions. - For interviewers and companies: details on what makes a good interview question and hiring process.
I've been writing software for a long time, and I'm competent at my job. I've worked at some well-known companies, and I've interviewed a LOT of people. But I'm here to tell you that even I can't pass one of these interviews without studying. That's a bad thing. If the goal of an interview is to identify competent programmers, we've gone far, far off the rails with these kinds of interviews.
But of course, that isn't (entirely) the author's fault. She's just a cog in the machine, and profits by perpetuating it. Because the presence of books like these create a vicious cycle: prep book gets written; interviewees study/memorize answers; interviewers make questions "harder" to compensate; new book gets written! It never ends. The grinder continues to turn, and whereas ten years ago you could get a good job with some string or linked-list manipulation questions, now you've got people who consider whiteboard coding of topcoder elite questions to be the baseline measurement of programmer competency. That's nuts.
You'll even run into lazy interviewers who take questions directly from this book, which is the ultimate in stupidity: if "good" candidates have prepared from the book, and you ask questions directly from the book, what are you really accomplishing, other than a test of memorization skills? And yet, this is distressingly common. I've seen it myself. I've had recruiters from major tech companies send me pages from this book so that I can "prepare" for their interviews. What now?
This kind of crap only stops if the more senior amongst us simply *refuse* to do it anymore. New grads have no leverage, so it's up to the rest of us to stand up and demand change. If you work at a company, please, INSIST that your interview process avoid questions from this book. If you interview programmers, please, stick to questions that demonstrate actual day-to-day work competency. And yes, if you're interviewing and you have the leverage, stand up to companies that try to abuse you with this kind of demeaning nonsense.
If we are to be professionals, we have to demand the career respect afforded to professionals. That includes not being treated like children when we are interviewed.
The DP solutions in this book are not actually tabular DP formulations--I recommend looking at the problems here http://people.cs.clemson.edu/~bcdean/dp_practice/ (Brian Dean's Dynamic Programming Practice Problems). Gayle presents memoized solutions, which are much easier conceptually but not as clean or performant as bottoms-up tabular solutions.
After the chapters comes a slough of example interview questions rated as easy/medium/hard, each with hints that interviewers might provide if you were to get stuck as well as a solution.
Interviewing with companies can be a pretty grueling process so if you want a much better chance of landing the job the first time, I would highly recommend this book.
+ The first few chapters are short recaps on what you should already know.
+ There are hundreds of interview-like questions. Very algorithm-oriented. Which is indeed what tech companies ask.
+ This book might indeed improve your chances at Apple, Google, Facebook, etc...
- This book will NOT make you a better software engineer. It only helps you at the interview-part.