Hardcover: 800 pages
Publisher: Sams Publishing; 2 edition (November 16, 2002)
Product Dimensions: 7.6 x 1.7 x 9.2 inches
Shipping Weight: 3.4 pounds (View shipping rates and policies)
Average Customer Review: 4.5 out of 5 stars See all reviews (97 customer reviews)
Best Sellers Rank: #87,710 in Books (See Top 100 in Books) #8 in Books > Computers & Technology > Programming > Algorithms > Data Structures #13 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Structured Design #43 in Books > Computers & Technology > Databases & Big Data > Data Modeling & Design
As someone who does not come from a computer science background but works as a software engineer, I've had learning data structures and algorithms on my bucket list for quite some time. Working within the Ruby on Rails and SQL worlds has had me heavily shielded from the ideas and concepts of DS&A. My primary goal was to learn enough to pass the stereotypical Google//Microsoft/Yahoo coding exam as well as conduct a similar engineering interview from the opposite end of the table. Since textbooks are my preferred way of learning, I set out in search of the DS&A book that would allow me to reach that goal.Most guru lists will tell you that "Introduction to Algorithms" aka "CLRS" is the book to buy in this field. I would strongly disagree with this notion unless the reader is already very savvy in DS&A as well as mathematics. From my experience interviewing dozens of engineers over the last few months, a very small percentage of engineers are actually at that level. Similar lists recommend Skiena's book as an alternative to CLRS since it is slightly more accessible. Although I didn't look at Skiena's book as thoroughly as I did CLRS, it didn't seem to be much more beginner friendly. I initially ended up buying the "DS&A Made Easy" book--the reviews were good, the pages available via preview looked good, the book focused on DS&A from an interview perspective rather than mathematical proofs, and I also liked the author's stated approach (get something working, even if its terribly inefficient...then work on efficiency). Then the book came in the mail. After a week of browsing through the text, I actually threw the book in the trash. The English was bad, the code examples weren't well written, and there was a lot of hand waving where there shouldn't have been.
I initially started looking at the study of Algorithms with Sedgewick's "Data Structures and Algorithms with C++", and decided to buy this book because Sedgewick's approach seemed limiting. I have only had a day or two to spend with the Lafore, but I am inclined to express appreciation for the effectiveness of his pedalogical approach. He indicates early on that he wishes, in his presentation, to separate the subject matter from complexities of C++, and also from software design theory and a dense mathmatical treatment, so the focus can remain on data structs and algorithms without unnessary complication. In early chapters, he is able to dispense with "Big O" notation in just a handful of pages, in a way that is quite useful and would be understandable to a high school student, I think.I found myself sailing through the chapters in the book very pleasurably and with ease of understanding of the different topics that I think will be useful to me.Sedgewick's book, by comparison, contains some subtle material not covered in Lafore (quite a lot), and the implementation of the coding better demonstrates the most efficient possible approach (C++ as the underlying programming language, of course, facilitates this). However, the style of the code is comparatively bad, and requires much longer periods of scutinization and repeated efforts to reach a good level of comprehension. Additionally, the style of explication throughout the text is of the bravura, academic type, as much intended to impress a peer group of academics as to serve a genuinely instructive purpose. Additionally, there constant references to-and-fro throughout the text (comprising an astonishing bulk of it, as a matter of fact), and one wonders why things could not be better organized.