|
|
|
|
|
by gh0std3v
1664 days ago
|
|
I know that Knuth has some introduction in the beginning, but he goes over it pretty quickly, which is why I was saying that some primer material is helpful just to get a headstart and not feel confused (plus Knuth himself says that you should just skim over the beginning material if you want to get to the "exciting" stuff). > Spend days or weeks per section, or even on a single page if you get stuck. This is asking a lot for people who don't have much time to spare. That being said, it's also why many people struggle to start Knuth's books. Most people have forgotten high school math at this point, and it's hard to learn and re-learn when you get older. I think some introductory coursework like the book posted by OP might be more fast-paced for people looking to start learning about algorithms. |
|
And as I stated earlier: this is elementary stuff. Like "What is a number", and "Summations". Yes, its difficult to _truly understand_ summations, and you may have to spend days or weeks relearning the material.
But that's just what math is. If you want to understand all the ins-and-outs of how numbers add together, you just gotta study it for longer than a day or two.
But Knuth provides something like 80+ exercises (and all of them worked out completely in the back of the book) to get you started on this subject.
-------
Summations are really useful for understanding for-loops and inductive reasoning anyway. A deep study into summations / loops / in general probably benefits the typical programmer, despite being a theoretical math subject.
> This is asking a lot for people who don't have much time to spare.
It takes far less time to read through a Knuth section than technical documentation for CPUs or GPUs, or spec-sheets on protocols, or any of the other stuff our field has to regularly deal with.
Reading and learning takes time. You have to be patient with yourself. You aren't going to be an expert on HTML, CSS, OpenCL, CUDA, x86 processors, ARM processors, or anything unless you spend days, weeks, or months reading, studying, and exercising (aka: writing simple programs or even advanced programs) on the subject.
That's the nature of our field. In the case of Knuth's approach on Algorithms, its Math heavy because you must understand the inductive reasoning that underlies it all.
Its one thing to say "Quicksort is fast". But what Knuth says is "This implementation of Quicksort executes in 3n * log(n) + X time" (or something like that, I forget exactly. But Knuth calculates it out exactly).
And furthermore, Knuth offers a mathematical proof, showing the student how to evaluate unknown algorithms.
--------
Knuth's book isn't about "Quicksort", even though it discusses it. Its about how to use Math to calculate how fast some algorithms are vs others. That's a lot of math to learn, go over, and become an expert in. Permutations, Random variables, summations (over the loop), induction and proofs.
This is all stuff a high-school student can learn, but whether you're 15 or 55, it will take weeks to learn and go through.