This is the Python version of our book. See the website for links to the C++ and Java version.Have you ever… Wanted to work at an exciting futuristic company?Struggled with an interview problem thatcould have been solved in 15 minutes? Wished you could study real-world computing problems?If so, you need to read Elements of Programming Interviews (EPI).EPI is your comprehensive guide to interviewing for software development roles.The core of EPI is a collection of over 250 problems with detailed solutions. The problems are representative of interview questions asked at leading software companies. The problems are illustrated with 200 figures, 300 tested programs, and 150 additional variants.The book begins with a summary of the nontechnical aspects of interviewing, such as strategies for a great interview, common mistakes, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI. We also provide a summary of data structures, algorithms, and problem solving patterns.Coding problems are presented through a series of chapters on basic and advanced data structures, searching, sorting, algorithm design principles, and concurrency. Each chapter stars with a brief introduction, a case study, top tips, and a review of the most important library methods. This is followed by a broad and thought-provoking set of problems.A practical, fun approach to computer science fundamentals, as seen through the lens of common programming interview questions. Jeff Atwood/Co-founder, Stack Overflow and Discourse
Adnan Aziz
CreateSpace Independent Publishing Platform (September 15, 2016)
441 pages
English
978-1537713946
File Size: 81 MB
Available File Formats: PDF AZW3 DOCX EPUB MOBI TXT or Kindle audiobook Audio CD(Several files can be converted to each other)
Language: English, Francais, Italiano, Espanol, Deutsch, chinese
“A practical, fun approach to computer science fundamentals, as seen through the lens of common programming interview questions.”Jeff Atwood / Co-founder, Stack Overflow and Discourse”This book prepares the reader for contemporary software interviews, and also provides a window into how algorithmic techniques translate into the workplace. It emphasizes problems that stem from real-world applications and can be coded up in a reasonable time, and is a wonderful complement to a traditional computer science algorithms and data structures course.”Ashish Goel / Professor, Stanford University”A wonderful resource for anyone preparing for a modern software engineering interview: work through the entire book, and you’ll find the actual interview a breeze. More generally, for algorithms enthusiasts, EPI offers endless hours of entertainment while simultaneously learning neat coding tricks.”Vineet Gupta / Principal Engineer, Google From the Author Have you ever…Wanted to work at an exciting futuristic company?Struggled with an interview problem that could have been solved in 15 minutes?Wished you could study real-world computing problems?If so, you need to read Elements of Programming Interviews (EPI). From the Back Cover The core of EPI is a collection of 300 problems with detailed solutions, including over 150 figures and 300 tested programs. The problems are challenging, well-motivated, and accessible. They are representative of the questions asked at interviews at the most exciting companies.The book begins with a summary of patterns for data structure, algorithms, and problem solving that will help you solve the most challenging interview problems. This is followed by chapters on basic and advanced data structures, algorithm design, concurrency, system design, probability and discrete mathematics. Each chapter starts with a brief review of key concepts and results followed by a deep and wide set of questions.EPI includes with a summary of the nontechnical aspects of interviewing, including common mistakes, strategies for a great interview, perspectives from across the table, negotiating the best offer, and much more. About the Author The inside storyAll three of us successfully made it through the Google interview process, and went on to work at Google, where, among other things, we interviewed candidates for our teams.We have complementary backgrounds (large company, startup, academia) and have held multiple roles (tech lead, CTO, consultant, professor), that gives us unparalleled insight into the job market.In addition to Google, some of the other places we have worked at include Facebook, Uber, Microsoft, IBM, and Qualcomm.About the authorsWe co-developed algorithms and systems that are used by over one billion people everyday. We 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 conducts research and teaches classes in applied algorithms. He received his PhD from The University of California at Berkeley; his undergraduate degree is from the Indian Institute of Technology at Kanpur.Tsung-Hsien Lee is a Staff Software Engineer at Toyota Research Institute. Previously, he worked at Facebook, Google, and Uber. He received both his MS 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.He takes special pride in helping to organize Google Code Jam 2014 and Google Code Jam 2015.Amit Prakash is a co-founder and CTO 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 PhD from The University of Texas at Austin; his undergraduate degree is from the Indian Institute of Technology at Kanpur. Read more <div id="
The Good stuff:1. Book has a very good set of problems.2. Covers a lot of ground.3. Problems in here are hard and one wouldn’t find them elsewhere.The bad stuff:1. Really poor explanations. The authors assume that you know the algorithms and for a lot of complex problems there is a one-two line explanation. If someone knew these he or she won’t be looking for a book.2. While reading through I found myself increasingly looking on the web for solutions/explanations for the questions. Making the point moot for buying this book in the first place. Very frustrating!I get it that the authors are accomplished and brilliant. But, explaining is something that they haven’t been able to provide in the book. Having said that it has some very good questions sprinkled.My advice stick to Leetcode or Hackerrank.
There are a lot of positives in this book. The strategies, interview prep, and types of problems are all great. Each chapter starts with some good details about how to attack the specific problems you’ll see. Having said that I can’t recommend this book.The authors mention that the code solutions are “Pythonic”. However, this is not the case. In fact a lot of the code in this book seems to be written by someone who doesn’t seem to grasp pedagogy. See the solution for string to int:def string_to_int(s): return functools.reduce(lamba running_sum, c: running_sum * 10 + string.digits.index(c), s[s[0]] == ‘-‘, 0) * (-1 if s[0] == ‘-‘ else 1)Are you kidding me? How is this solution even remotely pedagogical, or even an acceptable solution in a coding interview?Instead of buying this book, I would just grind Leetcode. There are plenty of lists available for free where you can work on problems seen in interviews. The discussion shows multiple solutions from people so that you can find a solution that makes sense to you in case you don’t solve the problem.All in all, this book has really good explanations and information, but does not provide code in an acceptable pedagogical manner.
This is by far the best resource out there for someone who’s interviewing in Python. There’s a large variety of interesting questions, and the book includes challenging variants on many of those questions. These variants require even more creative algorithmic thinking.One of the biggest advantages of this book is that it’s specifically geared towards Python. The Python solutions in this book are clean and well-thought out, and they habitualize good Python practices. It’s much more effective than picking up an interview preparation book that’s written in another programming language, and trying to port all the code over yourself.The authors also give some serious consideration to space complexity, and there are some really clever solutions in the book that aren’t just time-efficient, but space-efficient as well.The second part of this book is the Honors Class section, which provides harder problems to solve once you’re comfortable with the preceding material. It’s roughly 60 pages of significantly harder questions/solutions that are meant to solidify your problem solving skills.I think the biggest strength of this book is the EPI Judge. It’s a Git repository that you can clone, and gives you a playground to test out your own solutions to the problems listed in the book. It will then run your code against a correct solution across many test cases, and let you know if your code passes validation.I can’t understate how useful that is. Especially for problems involving graphs and trees, setting up your own data structures and test cases can be an incredibly time-consuming process. If you go through this book and solve the problems with EPI Judge, you will be a much stronger interviewing candidate.UPDATE: Received 4 job offers from 6 on-sites, started at Google in October 2018.
I love Python. It’s a beautiful, clear, simple language. It’s perfect for whiteboarding. I do not love this book.The coding style in many cases is just… bad. The authors often use wonky Python tricks at the cost of readability and simplicity. For example, their definition of a BST search is a *one-line* nested ternary conditional (chapter 14, page 202). I sanity-checked with a friend who does interviews, and he said he would DOCK points for style if a candidate tried to pull something like that.In addition, the explanations in many sections are just confusingly worded. And sometimes, the presented solution is completely unintuitive or badly styled – like using global variables instead of passing parameters.Nothing is *wrong* per se, but if you’re trying to learn best practices for whiteboarding clean, simple code, this book is useful only as a supplement or for very advanced programmers who are already comfortable with whiteboarding.
Ppl said the book is good, and the section is kind of nice to work on as guidance book before your section training in Leetcode. but you know what, the language is so hard to understand, I dont know who wrote these sentences. Taking hours to understand. And the logic in the paragraph is just painful to follow. The authors are expecting ppl could read their minds? or just expecting everyone shares similar background as they did especially after they create a book on this topic. I mean so little things why create such a complexity for ppl to work on especially someone who dont have much background. But if ppl have background on these things, who will read this book. Such a pain, get professors or PhD students to work on the language. This can be done in an easier way!
When I downloaded the kindle version of this book on 28/02/2022 I found that it was just a badly scanned version of the book.Each page is off centre, small, and because each page is a scanned image rather than the usual kindle text, you cannot highlight.I do not recommend downloading the kindle version unless and until they announce they have changed it.Returned for refund.
Excellent book for technical interview. You most likely can pass the interview by going through most problems in the book.The book contains a great variety of moderate to advanced problems. Much more in depth than Cracking the Coding Interview. In addition to the quality problems, the author also shows a lot of tricks with Python 3. Great way to learn the language!Downside is the paper quality, if you highlight the text, you can see the highlighter mark on the back of the page.
The kindle version of this book is a badly scanned version of the book. The pages are slightly skewed, and the text is in places hard to read. There is no navigation directly to chapters or any other navigation functionality to easily navigate around the e-book. Returned e-book almost immediately! I will pay the extra to get the soft copy, as I believe it is a very useful book.
Excellent resource for interview prep if you’re using Python as your programming language. I love the study guide given in this book depending on the time period you has as well (weekend hackathon, 1 week, 1 month, etc.).High quality questions and answers. The Python 3 answers are great, I’m leaning new things about Python 3 as well although I’ve been using it for a few years now!
I am an IT guy working for a service based IT company where copy paste is the norm. I used to ask for reference before taking up any new task(the usual Indian IT mindset). I was a little skeptical to think if this was the right approach of doing things; hence the motivation to buy this book.Pros:-Python Language- Explanation- Paper Format, that you can read before you sleep and after you wake up, I don’t like staring the computer screen and reading PDFs.- A very good collection of problems ( I am on page 55 today, chapter 5)- Reader friendly- Written in Python 3.5Cons:- Not a beginner friendly, you need to have a good grasp on language before you jump to buy this book.- Explanation may require two three rounds of studying again and trying to understand with paper & pencil ( this is good btw, but you cannot read that as a late night story book :-))Overall, a masterpiece in the collection of DSA books I have. Now one point to note , nearly all the question you may find on many coding platforms, but its the explanation , the run-time analysis, the critical thinking and the approach that sets this book and its authors apart. Its not just finding the answer, but finding the best fit and the fastest solution within the given constraints.I am giving this four stars as it is a pricey book considering the Indian IT pay.
About Aaovo.com :
We are committed to sharing all kinds of e-books, learning resources, collection and packaging, reading notes and impressions. The book resources of the whole station are collected and sorted by netizens and uploaded to cloud disk, high-definition text scanning version and full-text free version. This site does not provide the storage of the file itself.
Description of file download format: (Note: this website is completely free)
The e-books shared by this site are all full versions, most of which are manually refined, and there are basically no omissions. Generally, there may be multiple versions of files. Please download the corresponding format files as needed. If there is no version you need, it is recommended to use the file format converter to read after conversion. Scanned PDF, text PDF, ePub, Mobi, TXT, docx, Doc, azw3, zip, rar and other file formats can be opened and read normally by using common readers.
Copyright Disclaimer :
This website does not store any files on its server. We only index and link to the content provided by other websites. If there is any copyrighted content, please contact the content provider to delete it and send us an email. We will delete the relevant link or content immediately.
Download link description :
We usually use Dropbox, Microsoft onedrive and Google drive to store files. Of course, we may also store backup files in other cloud content management service platforms such as Amazon cloud drive, pcloud, mega, mediafire and box. They are also great. You can choose the download link on demand.