Ebook Daily Coding Problem Get exceptionally good at coding interviews by solving one problem every day 9781793296634 Computer Science Books
Ebook Daily Coding Problem Get exceptionally good at coding interviews by solving one problem every day 9781793296634 Computer Science Books
- Arrays
- Strings
- Linked Lists
- Trees
- Hash Tables
- Binary Search Trees
- Tries
- Heaps
- Stacks and Queues
- Graphs
- Randomized Algorithms
- Dynamic Programming
- Backtracking
- Bit Manipulation
- Pathfinding
- Recursion
- Data Structure Design
- System Design
Ebook Daily Coding Problem Get exceptionally good at coding interviews by solving one problem every day 9781793296634 Computer Science Books
"Really easy read, much more so than cracking the coding interview. Looking thru the table of contents is a little intimidating b/c it covers so many topics, but each section isn't too intense so its easier to get thru than expected. I like how the book is organized: reminds me of classes in undergrad.
The book is a little larger than expected but still light enough to carry around easily. The benefit here is that there's enough white space in the margins to take notes if you want to.
I've been a subscriber of the mailing list for a while which is pretty barebones, just coding problems + their solutions, so it's pretty cool to see something more educational and robust come out from the same founders."
Product details
|
Tags : Daily Coding Problem Get exceptionally good at coding interviews by solving one problem every day 9781793296634 Computer Science Books @ ,Lawrence Wu, Alex Miller,Daily Coding Problem Get exceptionally good at coding interviews by solving one problem every day,Independently published,1793296634,COMPUTERS / Programming / Algorithms,Business Economics / Careers / Job Hunting
Daily Coding Problem Get exceptionally good at coding interviews by solving one problem every day 9781793296634 Computer Science Books Reviews :
Daily Coding Problem Get exceptionally good at coding interviews by solving one problem every day 9781793296634 Computer Science Books Reviews
- Pros
The book contains conversation/information about data structures and algorithms. The book contains questions and solutions to problems you might encounter in interviews. The authors say these questions were asked by well-known tech companies. If that's true, then this is a great resource for the next 5 to 10 years. The problems and solutions are in Python 3.x. I learned plenty of new techniques for solving coding problems fairly quickly.
Cons
You can find all that online for free, and there are no practical ways to verify that the problems indeed were asked by well-known tech companies.
First paragraph of the first chapter says something about Big-O complexity with no chapter nor appendix to explain Big-O concepts.
Discussion of "the naive solution" to problems is too light in my opinion. Going from the brute-force, or the naive, or the "easy but inefficient" solution (the O(2^n) answers) to a great solution (the O(n) answers) is a valuable exercise and this book doesn't have a lot of that.
In effect, this book probably makes more sense to coders who already have a solid grasp of CS and could just use a daily exercise. But again, you can get that online for free. Coders with less experience could use more in-depth information and explanations, less hand-waving on the explanations.
What is missing
Summary of Big-O notation and examples of algorithms for each level of Big-O.
Analysis of going from naive solution to optimal solution.
Chapter on preparing physically and mentally for interviews. How to ask clarifying questions, how to feel more relaxed and confident. What to do the night before an interview and the morning of an interview. How much sleep to get - what to eat for breakfast - what to wear - how to shake hands (learn how to greet someone properly and make a good impression)
Summary
I would give this book 4 or maybe even 5 stars if the price were lower. But don't get me wrong - there is plenty of good information in the book, all in one place, with questions and answers that someone can use to sharpen their skills. - This book costs as much if not more then Skiena's Algorithm Design Manual but pales in comparison to the content. Most of the problems in this book are just copied from LeetCode or GeeksForGeeks.
Many of the solutions are not even explain properly. There is very little visuals or mathematical proof so this book is mainly just a solution manual to a given set of problems all of which are freely available on the internet. The free explanations on LeetCode are often better than this book. - Really easy read, much more so than cracking the coding interview. Looking thru the table of contents is a little intimidating b/c it covers so many topics, but each section isn't too intense so its easier to get thru than expected. I like how the book is organized reminds me of classes in undergrad.
The book is a little larger than expected but still light enough to carry around easily. The benefit here is that there's enough white space in the margins to take notes if you want to.
I've been a subscriber of the mailing list for a while which is pretty barebones, just coding problems + their solutions, so it's pretty cool to see something more educational and robust come out from the same founders. - I loved this book because of the diversity of questions. There some easy ones and some where it’s very challenging. The answers are written in python which is nice because it’s very readable however I would love to see a java version. Python does have some special features that aren’t available in every language, ex negative indicies, so adapting the solutions to java does sometimes make the code look uglier but works just as good. I wish the explanation were a bit more in depth. A picture illustrating a portion of the code would be very helpful. I personally just used the debugger to illustrate the answer.
- Performance is one of the most important criteria for algorithm implementations.
This book uses Python as the choice of algorithm implementations, which is not made clear anywhere (title, book description or Preface). Performance wise, Python is a bad choice, because it is well-known that Python as a scripting language is orders of magnitude slower than complied languages such as C/C++, Java, etc. For example, the first example of "Get products of all other elements" took 67 seconds with an array of 9 elements from 1 through 9, looped 10 million times, versus 0.39 seconds with the same problem from another text titled "Algorithms with Implementations in C a Quantitative Approach," under the same test conditions. This is a 172 times difference! I wish there was a version with the examples implemented in Java or C/C++.
Besides, the implementations are not as efficient as they should have been, given that it is supposed to teach others to code more efficiently. Using the same example mentioned above, I got it down from 67 seconds to 34 seconds, simply by re-implementing it using the same implementation logic in C as can be found in "Algorithms with Implementations in C a Quantitative Approach."
Here is my re-implementation of the same problem in Python that improved the original running time of 67 seconds by 2x down to 34 seconds on my Macbook Pro. You can copy/paste/run it on your own machine and verify.
'''
Implementation from "Algorithms with Implementations in C A quantitative Approach"
void array_multiply(int a[], int b[], int n)
{
int sub = 1;
for (int i = 1; i < n; i++) {
sub *= a[i - 1];
b[i] = sub;
}
b[0] = 1;
sub = 1;
for (int i = n - 1; i > 0; i--) {
sub *= a[i];
b[i - 1] *= sub;
}
}
'''
import time
def products(a)
n = len(a)
sub = 1
b = [0] * n
i = 1
while (i < n)
sub = sub * a[i - 1]
b[i] = sub
i = i + 1
i = n - 1
b[0] = 1
sub = 1
while (i > 0)
sub = sub * a[i]
b[i - 1] = sub * b[i -1]
i = i - 1
return b
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
start = time.time()
N = 10000000
for i in range(N)
b = products(a)
print("duration =", str(int(time.time()-start)), "seconds")
print(b)
Comments
Post a Comment