Whether you are a fresh graduate or an experienced software developer, if you are thinking about landing your dream job in the software engineering team of one of the world's top IT companies such as Google, Apple, Facebook, Microsoft, Amazon, Palantir, etc., this is the book for you to get well prepared for your job interview.
In fact, this book is suitable for anyone who want to secure a software engineering job in the global IT industry, regardless of level from coder to development team lead to manager to even director or VP.
If you are already working in the industry, the author also alerts you that in the event your company undergoes acquisition or acquihire by those IT big gun companies, eg. the recent case of Google-HTC deal, existing staff of the acquired company (which could be including the CEO himself) are likely required to go through similar interview process, as "they don't want acquisitions to be an easy way into the company" (page 19).
The author, Gayle, is a talented software engineer herself, having working experience at Google, Microsoft and Apple. She had gone through the experiences of being an interviewee as well as interviewer in those companies. Now, she is the founder and CEO of consulting company CareerCup.com.
For computer science graduates, this book will walk through a very quick revision of the important topics you have already learnt and passed in your college, things like the Big "O", data structures (such as hash tables, linked list, stack, queue, tree, graph, etc.), algorithms (such as sorting, searching, bit manipulation, etc.), object-oriented design, system design with scalability, programming logic such as recursion, etc.
If you are not a computer science graduate but have learnt about computer programming and is eager to enter into the software engineering industry, these topics give you some idea of what your computer science graduated counterparts have gone through in their college studies (of course, the whole course covers much more topics than the above list. Those are just some of the fundamentals which they learnt during the first 2 years of their study). You might not be required to know in-depth of such knowledge to secure a software engineering job, such as how to apply them in assembler design, compiler design or operating system memory management design, but it is good for you to know the concept of those knowledge in order to pass the technical interview test. It is out of the scope of this book to teach you such topics. It highlighted them for you to pick up the knowledge from other sources such as computer science textbooks or online courses.
This book contains 189 programming questions and solutions to give you an idea of how you will be tested during your technical interview session. Well, don't be frightened by the questions as they are the level used at Google, Apple, Facebook, Microsoft and those top-notch IT companies who only target to hire highly talented employees. You will probably be tested with less challenging questions, but yet within the domain of similar computer science knowledge. At least, you should be able to write simple function such as listing out the Fibonacci sequence.
Bear in mind that technical knowledge is just a portion of the interviewee assessment. There are other area of evaluation such as soft skills about handling ambiguity, customer focus, communication, passion for technology, teamwork, leadership, etc. before you are offered the job.