Full description not available
T**S
Honestly, this is one of the best CS books I've seen. I'd recommend this to everyone.
I'm gonna keep this short (EDIT: that..definitely didn't end up happening) because I haven't gone through the whole book yet, so **disclaimer** on that part. But after just the first couple of chapters, I was very impressed.I'm a 'seasoned' programmer, I would like to think (industry experience at a “top” company, CS degree, coding all my life, etc), and so almost all of this book is "review" for me. I'm going back through fundamentals in preparation for coding interviews, as I'm back on the market for a job. I'd say this book does these things very well:1) Fills in the gaps that might've always been there - What I mean by this is, if you maybe got a bachelors in computer science, there could easily have been some material that just didn't completely sink in or that your curriculum didn't focus on. I think going through this book is a great way to make sure those gaps are filled.2) Explains concepts in an easy to grasp form - The examples that are used in the book are great. There's one example early on with big O involving drawing 16 boxes on a piece of paper. One way is to draw 16 boxes one at a time - yielding O(n). Another way is to fold that piece of paper in half each time. This gets your 16 boxes in only 4 folds - big O(log n). It's simple, yet a great way of showing the difference in the two.3) Keeps your attention - I love to buy books and then not read them… it’s a talent that I exercise often… One thing I can say about this book is that it actually keeps my attention, and I enjoy reading it. That’s saying a lot if it can do that. How much good is a book if it’s too boring to focus on and get through? If you don’t read it, it doesn’t matter how quality the content is.I’ve recommended this book to several people in my life already, and I wish I still had my Amazon affiliate account setup because I feel like a freaking spokesperson for the thing..! Haha.In summary: I would recommend this book to a very wide range of people—ANYONE in computer science looking to get a job, anyone trying to get a degree or just take anything CS related, anyone interested in some of the CS fundamentals, anyone looking to review computer science concepts, anyone wanting to dip their feet into a new field of study they haven’t explored before.I wish I had this book when I was an undergrad—It would’ve saved me so much headache and difficulty.I’ll update this review once I’ve finished more of the book, but from what I’ve gone through so far, and compared to plenty of other programming books (algorithms, interview prep books, etc), it’s by far my favorite.
B**H
A great read
An amazing book for non-programmers interested in learning about the world of computer science. The book might also be very useful for undergrads entering the field.The author starts with providing a general introduction on the concepts of algorithms and analyzing their time using Big O notation. The book gradually advances the reader into various concepts in algorithms to paint a clear picture throughout the book:- A few necessary data structures.- A few algorithm implementations for sorting, searching and finding the shortest path.- Graph algorithms for modeling networks.- K-NN as a gentle intro to classification problems and machine learning.The book introduces the main methods for problem-solving techniques including:- Divide and conquer: breaking a problem into smaller pieces- Approximation algorithms and NP-complete problems: greedy algorithms are used when calculating the exact solution will take too much time- Dynamic programming: optimizing a solution given a constrain by breaking it up into subproblems and solving these subproblems first (knapsack problem)Finally, the author wraps up by introducing the reader to concepts from various branches of computer science. The author provides hints on learning about each of these topics moving forwards:- Binary Trees for: B-trees, red-black trees, heaps, and splay trees.- Inverted Indexes: building search engines- Fourier transform: decomposing signals into the frequencies that make it up.- Parallel algorithms: mapReduce.- HyperLogLog and Bloom filters: probabilistic data structures and algorithms.- SHA functions: encryption and data integrity.- locality-sensitive hashing: Simhash functions where small changes only change the output slightly.- Diffie-Hellman key exchange: public private keys for secure data sharing.- Linear programming: maximizing a solution given a constraint, Simplex algorithm.
Trustpilot
1 month ago
3 weeks ago