Cracking the Coding Interview: 150 Programming InterviewQuestions and Solutions
P**Z
GETTING THE DREAM JOB... Comparing the Top 4 IT Interview Books
I worked with the data science association on their new standards for "Data Scientist" interviews (entry salary of $125,000), and both real questions and after interview polls were included for the biggest names in data today, from the web to corporate and government IT. "Data Scientist" is one of the hottest new jobs out there today, and some companies are even forming CDSO jobs--Chief Data Science Officer!To begin, ALL FOUR of the books in this review are 5 star "superstars" for IT interviews. The two problems are, my library customers want to know the top two, and our Amazon shoppers want to know if they can get away with one, two, three, or if they have to buy all four! Of course the answer depends both on the focus of your resume, and the overlap/focus in the four books.First, the summary, by author, title/Amazon link, year published/edition, number of pages, trim and cost, problems included, main language(s) foci. These four are the most frequently purchased by the over 100,000 libraries (including corporate technical libraries and schools as well as private and public) in our database. (Note: page counts are via visual inspection at the time of this writing, not Amazon stats. Pages can vary with on-demand books.).Aziz, Elements of Programming Interviews: 300 Questions and Solutions by Aziz, Adnan, Prakash, Amit, Lee, Tsung-Hsien 1st (first) Edition (10/11/2012), 2012, 481 pages, 6 x 9, $25, 300 problems (mostly C++, concurrency in Java, discrete math in formulas and English)McDowell, Cracking the Coding Interview: 150 Programming Questions and Solutions, 2011 (5th edition), 500 pages, 6 x 9, $23, 150 problems, (mostly all Java except of course the C, C++ question sections!)Guiness, Ace the Programming Interview: 160 Questions and Answers for Success, 2013, 419 pages, 6 x 9, $20, 160 problems, (mostly Java and C# but some unusual JavaScript, SQL, Ruby and Perl examples too)Mongan, Programming Interviews Exposed: Secrets to Landing Your Next Job, 2013 (ed. 3), 301 pages, 7.4 x 9, $18, 150+ problems (C, C++, C#, Java)All four of these fine prep texts cover the usual suspects in Algorithms and Data structures, including a focus on "scalable" problems of most concern to the Amazons, Googles, Facebooks, etc. of the world. These include recursion, arrays, lists, hash tables, binary searches and trees, and other foundation coding subjects.All also cover the usual tricks, brain teasers, presentation problems, prep, process, etc. issues, and in the case of Cracking, specifics on many different company processes.The divergence is in the "extras." Aziz jumps into parallel computing and covers discrete math (in grad school joke terms, all the computer oriented math that has been taken out of high school courses). McDowell has an unusually well written probability section. Guiness is very up to date with cross platform apps and concurrent programming nightmares, and goes into both more depth and detail on individual topics like big O notation. Mongan is published by wrox, and has not only technical editors, but outstanding web resources. His database section is the most robust of the group.Aziz and McDowell are print on demand, which usually means there are many more errors in early going, but much faster correction of them via almost weekly files to the printer. Guiness is Wiley and bulletproof. We've tested the code extensively in all four (my payroy sister programmers, not me!) and ALL of them are outstanding, with very few errors at this writing, which can only get better fast in the two PODs, and wasn't a problem to begin with via the technically edited wrox and wiley teams.Surprisingly, there is NOT a lot of overlap in solutions in these four texts, just as there IS a lot of overlap in the questions (strings, arrays, binaries, hashes... structures are structures and algos are algos). The difference in ALL these books (as opposed to a Cormen) is that the algorithm examples are not academic--they give you many options to "cheat" - and most of the cheats are more real world than techniques given in the 1,300 page algo function texts.McDowell is the industry standard, but she teaches very much to Google, as does Aziz, meaning web focus, and even a little forgiveness on php, but NO forgiveness on memory or scalability. If you're a library client and have to pick two, we advise one from the McDowell/ Aziz dyad and one from the Guiness/ Mongan dyad. If you're applying for a job with a specific language requirement, these self sort, although of course all are object oriented today.For shoppers preparing for a real interview: buy all four. I mean, come on. This is your future! You can get all four for the price you'd pay for a larger (way less useful) algo + data structure or individual language text, and maybe less. Some points about interview technique are common, but all four offer different and important examples in approaches to solutions, even though they share common algorithmic and data structure challenges.IRONY: The only programming area growing faster than data scientist today is at the other end of the big scale spectrum: embedded systems. I kid you not, specialize in embedded, and you're GUARANTEED a dream job, both due to the explosion of these systems, and the rarity of programmers here (but yes, you have to get into circuits!). Our sister Payroy group shows job stats, demand and salaries that are to die for if you go there-- way better than Google. NONE of these books cover it (because other than mobile and server embeds, embedded was traditionally automotive and industrial, but even "Google and Microsoft TV" type ventures are now hungering for it).There is NO good interview book out on embedded yet, but these two are the best of breed in the field itself: 1. Samek (Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems) and 2. White (Making Embedded Systems: Design Patterns for Great Software). Why C and C++? Because that's where the majority of electronics still reside, and "object" programmers in the field often just use the C subset of ++ and don't really get into sexy classes/methods/parents/kids, etc.! 6 months brushing up on this, specializing, and going for an embedded job will be worth years of competing with the interviews in these texts!!!Now, a simple tip. I was part of a team that interviewed for a high level, very high paying digital art programming position at shader joes dot com. One candidate stood out as really technically challenged--she even confused a call with a register in one of her answers! She called herself an "autodidact" - meaning, unlike Yahoo, we can't be recruiting only from the 18 top schools.At the end of her interview, she asked us to check out a disc she'd brought. She had programmed her own video game with movie-real characters, explosions, storyline, etc. using Unity, Maya, blastcode, Python, Lua and C#, with web distributions in Java, HTML 5 and php. She proceeded to explain her entire process, from idea to distribution. She was hired before she could reach the elevator. In olden-days, old timer parlance, don't forget your "portfolio" if you have one! It can trump a LOT of the bureaucratic hurdles!EMAILERS ANSWER: IF you are a manager, rusty at coding, a data scientist, etc. and are in an interview where you have to "understand" coding basics, but not necessarily code, see our review of Karumanchi (Coding Interview Questions).Library Picks reviews only for the benefit of Amazon shoppers and has nothing to do with Amazon, the authors, manufacturers or publishers of the items we review. We always buy the items we review for the sake of objectivity, and although we search for gems, are not shy about trashing an item if it's a waste of time or money for Amazon shoppers. If the reviewer identifies herself, her job or her field, it is only as a point of reference to help you gauge the background and any biases.
G**L
I was originally doubtful, but this book changed my mind...
UPDATE:After learning more about the internal frameworks of these top companies (most of their code is actually in Java/C++, not scripting languages) and what they're looking for, I've changed my original view point and see the value of this book. Google, FB, etc haven't changed their interview processes, and probable won't for years to come; this book provides a solid plan and a comprehensive coverage of topics to prepare the reader.--Being a software engineer, I know how frustrating it can be preparing for interviews: it seems like every company wants something different, and you almost never know what to expect going in, especially at top companies where the questions have nothing to do with the actual job you'll be doing. It's good to read the perspective of an engineer and interviewer at these top firms.In general, this book gives a good overview of the interview process at these companies (it seems specific to Google, Microsoft, Apple, and Facebook (LinkedIn?), but at times, I found it lacking. The main issues I have with this book:1. All the interview questions are written in Java (some parts are in C++).I've mainly programmed in C++ for most of my career, so I tend to like it; however, most of the languages used at these top firms are scripting languages, like Python and JavaScript. And while a point can be made that once you know one language, you can easily pick up others, or if you're a good engineer, you're able to think through a lot of the logic challenges, I tend to disagree. I've seen many great engineers passed up for positions because they don't have specific experience in one of these languages or a framework. I would have liked her to be a little bit more language agnostic, since about half the book consists data structures, like linked lists and queues, which are non-existant in languages like Ruby.This creates an internal struggle - learn all the nuances of C++ and Java to pass the interview, and then be completely clueless on my actual job because I have no idea what a JavaScript function does...2. Discouraging from the beginningShe starts out the book saying how all of the interviewers, like at Google, receive absolutely no guidance on what questions to ask. She mentions how they go through a week long class that mainly consists of being politically correct and not talking about sex, gender, etc. If the interviewers are completely clueless as to how to gauge a candidate's proficiency in an interview, how are we supposed to prepare, since it seems so individual, aka, if you rub an interviewer the wrong way but answer everything flawlessly, you're doomed.One story she mentioned talks about one of her students who was "brilliant" had top internships, top grades, contributed to open source, and was obviously a great engineer, but didn't answer all the interview questions flawlessly, and therefore was eliminated from the process.Conclusion:I think there are critical flaws inherent in the software interview process, and this book seems kind of outdated in it's approach, and I think steers the reader from the actual, modern, and current way to make one's career and interview well in the present software landscape. Reading makes me more aware, and confirms the opinion that there needs to be a standardized process, or a process more geared towards finding actual good engineers, not ones that somehow manage to get past the misty and confusing gates of these companies.
R**N
Problemas muy entretenidos
Soy un desarrollador al que le encanta resolver problemas, y está siendo muy ameno y entretenido.Es mejor que cualquier juego casual que puedas tener en el móvil.Fantástico!
J**N
Read this book did the exercises two weeks later I had 6 job offers
The problems in this book are fantastic training for interviews at the big tech companies. Google, Twitter and Facebook and the likes will grill you on algorithms and data structures and the run times of your code at least once for phone screen and 4-5 times in a single day at an onsite. You need to be fast and thorough. This book provides you with the practice and solutions that do a really good job of explaining the answers to questions similar to though encountered in a real interview process. I suggest having another book to teach you the fundamentals and theories and then hone your skills by doing the problems in this book.
A**M
Buon libro sui processi di intervista nelle aziende ICT
Ottimo libro sui processi di assunzione nelle aziende ICT:- processo di assunzione, come vestirsi, cosa sapere e come prepararsi- differenze tra le maggiori aziende IT, cosa cercano e quali passi seguono- principali algoritmi e strutture dati di base da riguardare prima del colloquio- domande specifiche su programmazione concorrente, linguaggi di programmazione- soluzioni a tutti i quesiti proposti in coda al libroNiente di nuovo per un informatico, ma decisamente utile a rivedere concetti basilari di algoritmi e strutture dati in poco tempo, nonché informarsi sui processi di assunzione nelle maggiori firme del software.
A**T
Helped me to get an offer :)
My experience with this book is following:- Used that book to prepare for a tech interview at a very big company known for their tough interview process.- Prepared using the internet and of course this book for about two months.- Received an offer from that company afterwards :)Hence, can only recommend it :)
P**G
Useful to prepare interviews for google and twitter [Grad student]
I used this book to prepare my interviews for twitter and google, I helped a lot to guide me through the interview process in those companies. Also I recommend [...] as a reference to any IT interview.No matter if you fail or win, the interview process will give you hints to be a better thinker. Basically recruiters want to know how you think, deduce, interact with others, and for sure if you have knowledge about computer science.
Trustpilot
2 months ago
1 month ago