- Paperback: 530 pages
- Publisher: CreateSpace Independent Publishing Platform; 2 edition (11 Oct. 2012)
- Language: English
- ISBN-10: 1479274836
- ISBN-13: 978-1479274833
- Product Dimensions: 15.2 x 3 x 22.9 cm
- Average Customer Review: 4.3 out of 5 stars See all reviews (3 customer reviews)
Amazon Bestsellers Rank:
284,605 in Books (See Top 100 in Books)
- #349 in Books > Computers & Internet > Computer Science > Algorithms
- #486 in Books > Computers & Internet > Computer Science > Programming > Software Design, Testing & Engineering > Software Architecture
- #496 in Books > Computers & Internet > Computer Science > Programming > Software Design, Testing & Engineering > Functional Programming
Elements of Programming Interviews: The Insiders' Guide Paperback – 11 Oct 2012
- Choose from over 13,000 locations across the UK
- Prime members get unlimited deliveries at no additional cost
- Find your preferred location and add it to your address book
- Dispatch to this address when you check out
Frequently Bought Together
Customers Who Bought This Item Also Bought
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
About the Author
Adnan, Amit, and Tsung-Hsien have worked at Google, Facebook, Microsoft, IBM, Qualcomm, and several startups. They co-developed algorithms and systems that are used by over one billion people everyday. They have extensive experience with interviewing candidates, making hiring decisions, and being interviewed.
Adnan Aziz is a research scientist at Facebook. Previously, he was a professor at the Department of Electrical and Computer Engineering at The University of Texas at Austin, where he conducted research and teaches classes in applied algorithms. He received his Ph.D. from The University of California at Berkeley; his undergraduate degree is from Indian Institutes of Technology Kanpur.Amit Prakash is a founder of Thoughtspot, a Silicon Valley startup. Previously, he was a Member of the Technical Staff at Google, where he worked primarily on machine learning problems that arise in the context of online advertising. Before that he worked at Microsoft in the web search team. He received his Ph.D. from The University of Texas at Austin; his undergraduate degree is from Indian Institutes of Technology Kanpur. Tsung-Hsien Lee is a Software Engineer at Google. Previously, he worked as a Software Engineer Intern at Facebook. He received both his M.S. and undergraduate degrees from National Tsing Hua University. He has a passion for designing and implementing algorithms. He likes to apply algorithms on every aspect of his life.
What Other Items Do Customers Buy After Viewing This Item?
Top Customer Reviews
I'd also recommend Crack the Coding interview which has good guidance and is a good intro to problems though ultimately the questions are too widely studied to appear in interviews. Other must read recommendations for questions would be Programming Problems 1&2 by Bradley Green, Top 20 Interview Questions by Lian Quan.
From an algorithms perspective, good books are Algorithms by Dasguta et al (available free online, but having the book is better), The Algorithm Design Manual by Steven Skienna, Introduction to Algorithms by Cormen et al. And long time favorites are Jon Bentley's Programming Pearls and More Programming Pearls.
Other stuff I did for the interviews:
1) Stop drinking caffeine.
2) Attempt at least 2-3 questions a day
3) Pick a programming language for questions and stick to it.
4) Buy a big whiteboard and practice on it.
5) Take 2 days off for onsite interviews - 1 day to unwind and refresh, 1 day for the onsite.
Most Helpful Customer Reviews on Amazon.com (beta)
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!)
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.
This book has extensive interview problems with detailed solutions. It covers basic to advanced algorithm solving techniques. The book is very comprehensive and detailed - it is by far the largest collections of such problems that I know of. I really liked the fact that most problems have detailed programs which I could download complete versions of. The figures were also very helpful for me to understand some of the harder concepts.
Materials in later chapters which contain dynamic programming and graph algorithms make this book stands out among other interview books. These materials especially help readers to think critically when facing difficult programming problems with efficiency constraints.
I also purchased "Cracking the Coding Interview" for preparing for my interviews. Compared to that book, I found Elements of Programming Interviews to be better preparation for the questions I was asked at the on-site interviews. Cracking the Coding Interview had more basic questions, the kind I was asked in phone screening and on-campus interviews.
I am very fond of algorithms, and, just like Keith wrote in his review, Elements of Programming Interviews nicely supplements traditional algorithm textbooks which lack of practical examples.
Quick tip: Be sure to read the section that discusses the code style before digging into any solutions. Before I did, I was very confused, for example, why the authors would pass a parameter in as a pointer, then immediately reference it with a different variable. Well, the pointer is a way of being explicit in expressing that it's an *output parameter*. And the reference is just preferable over using a raw pointer. The former part is a somewhat controversial part of the Google C++ Style Guide, which this is based on. For those applying to Google, I think that's not such a bad thing, really.
As other reviewers mention, the code snippets themselves are very concise and powerful, yet very readable. And, they slowly introduce more advanced language features so as to not scare you off too soon, but also getting you exposure to them.
Their explanations of some of the data structures and algorithms are similarly concise, but clear, but I'm coming at this from having had a bit of exposure from elsewhere. So far so good!
I would have given five stars if they have answers for questions in Python online. Python is a big deal now and I feel like it should be covered.
My advice to anyone studying:
Start early and actually try to solve the questions not just read through them. I promise you will get your dream job out of it.
Look for similar items by category
- Books > Business, Finance & Law > Careers > Job Hunting
- Books > Computing & Internet > Programming > Algorithms
- Books > Computing & Internet > Programming > Software Design, Testing & Engineering > Functional Programming
- Books > Computing & Internet > Programming > Software Design, Testing & Engineering > Software Architecture