- Taschenbuch: 530 Seiten
- Verlag: CreateSpace Independent Publishing Platform (11. Oktober 2012)
- Sprache: Englisch
- ISBN-10: 1479274836
- ISBN-13: 978-1479274833
- Größe und/oder Gewicht: 15,2 x 3 x 22,9 cm
- Durchschnittliche Kundenbewertung: 1 Kundenrezension
- Amazon Bestseller-Rang: Nr. 42.716 in Fremdsprachige Bücher (Siehe Top 100 in Fremdsprachige Bücher)
Elements of Programming Interviews: The Insiders' Guide (Englisch) Taschenbuch – 11. Oktober 2012
Wird oft zusammen gekauft
Kunden, die diesen Artikel gekauft haben, kauften auch
Es wird kein Kindle Gerät benötigt. Laden Sie eine der kostenlosen Kindle Apps herunter und beginnen Sie, Kindle-Bücher auf Ihrem Smartphone, Tablet und Computer zu lesen.
Geben Sie Ihre Mobiltelefonnummer ein, um die kostenfreie App zu beziehen.
Über den Autor und weitere Mitwirkende
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.
Welche anderen Artikel kaufen Kunden, nachdem sie diesen Artikel angesehen haben?
Die hilfreichsten Kundenrezensionen auf 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.
Basically this book contains a set of programming problems to warm you up for a job interview. There are many other job hunting books too, so what makes this one special?
I would say it has the following advantages:
0. Smart algorithms and solutions. Better than many other resources you could find.
1. Challenging problems, making it useful for preparing top companies interviews.
2. Source code website. We can actually run the code and compare it with ours. Often, I first write my own program and test it with their driver program.
3. High quality C++11 code with very few bugs. It helped me to refine my coding skills and styles.
4. Study guide. Very helpful for iterative studying.
5. Book chapter organization. It is both detailed and close to complete.
6. Good coverage of recent algorithms.
Let me elaborate a bit.
Taking item 0, Smart algorithm and solutions as an example:
If you have prepared for job interviews just a bit, you may know there is a frequent question for "designing a Stack with Max/Min operations". I solved the problem by myself and after comparing my solution with other resources, I thought mine is optimal - until I saw the solution from this book. It is more space efficient by storing the frequency information.
Another example is the "Permutation Problem". Before I read the book, I already had a decent solution. But the "swap based" solution in this book is simply more elegant and more flexible for solving other problems.
This kind of "Ah-ah" moments comes quite often when I read the book.
Taking item 6, Good coverage of recent algorithms as another example:
If you read the the Hashing chapter of the book, You will notice that it covers the "Min-hash" algorithm. This is quite surprising to me as it is a new algorithm in the document/image search area. I know it because I did my research on the topic. I'd never expect it to appear in an interview book.
To summarize, this is a well organized and supported book for learning CS problem solving. The high quality solutions presented in this book will definitely help us to impress interviewers. I think it is the most useful resource for preparing job interviews.
Other than interview preparation, we can learn a lot other practical skills/knowledge from the book too.
Finally, here is my personal advice about how to use the book: the book's study guide is your good friend. Because the book contains some quite hard problems, following the guide will make your learning more efficient.
These problems would help you understand what is asked at interviews. Although the questions at the interview may not be exactly from the book, the book questions are very similar to those I have seen. I believe reading the book helps me stay calm and solve those questions because it helps me get used to thinking of challenging problems. I really like how the book teaches me to apply the same basic problem solving patterns again and again to conquer problems. If your goal is to work at a prestigious company, you should definitely read these examples before interview. In my experience, without the right preparation it is very hard to even know how to start answering their questions.
Almost each solution includes source code. This code has saved me lots of time. As Knuth said "It has often been said that a person does not really understand something until he teaches it to someone else. Actually a person does not really understand something until after teaching it to a computer." You cannot persuade interviewers that you really understand it unless you could code it correctly. Especially if your first question is data structure problem, you should code a correct and efficient solution quickly and elegantly. It's a pity if you know how to solve a problem but cannot code it when interviewing at your dream company.
I am passionate about programming and the book stimulated my mind a great deal. I like how the authors explain algorithms, and this made me want to keep reading. It was never a burden to work through the book.
I think this book would help lots of people who want to be a software engineer at the best companies and highly recommend you to buy one.
As a result of these things, I can't recommend this as the first book to use for interview prep unless you have a lot of CS exposure and are willing to sometimes have to fight with the notation. At the same time, the book has a clear niche for me because I've done all the questions in CtCI and am using this book as general preparation for actually working, not for interviewing. In this way, I see a clear use case for this book, but it was not the use case I bought the book for. I really just wish this book went into more depth with the solutions in that by not commenting out the code or writing more extensive explanations for some of the problems, it makes verifying my solutions or understanding a better solution to the more difficult problems harder.
So, to sum things up: this book has clear strengths: it has quite a number of interesting questions and covers a wide breadth of topics. At the same time, if you get stuck on a problem, it can be difficult to learn from due to the sparseness of the solutions.