I stumbled this quote from Bill Gates:
"You should definitely send me a
resume if you can read the whole
thing." He was talking about The Art
of Programming books.. So I was pretty
curious and want to read it all but
honestly, I don't understand it at
I'm really not that highly
intellectual being.. So this should
be the reason why I can't understand
it, but I am eager to learn.. I'm
currently reading volume 1 about
fundamental algo.. So is there any
books out there that are friendly to
novice/slow people like me? So I can
build up myself and hopefully in the
future I can read Knuth's book at
if you define yourself as
not a highly intellectual being then you are setting yourself to low expectations. You got to break that mentality if you want to do something worthwhile the trouble. There should be no doubt in your mind that you can achieve something. Also, achieving it doesn't mean that you will achieve it easily.
Things worth pursuing are the ones that are difficult... and that's not a cliche. In software, engineering, on in life in general, if you want to achieve something, you got to go for the things that are hard, the things people avoid, and not settle for the lowest common denominators of things.
First, it is not clear what your CS background is. Knuth's book require a degree of maturity. Few people with a CS degree can go through it with ease. I would not expect a CS student that has just finished his first course in algorithms to actually be able to go through even a single of Knuth's book. The maturity needed to get it is just not there, and that has nothing to do with the student's mental capacity.
You need to have your basic of algorithms down cold and clear, and you need to have a fair amount of programming (work and/or scholastic) under your belt - I'd say, 40 credits on programming at least. You also need to have your CS mathematics on firm ground.
You can't go far ahead without having a good grasp of discrete mathematics (and possibly theory of computation.)
It's not that you will need that knowledge to work on Knuth's problems, but you need a maturity to be able to go through that type of material.
First pick one book and one book only (CLRS' book as previously suggested), and work it from start to finish. When possible do programs implementing the algorithms. Don't use Java or C#, not even C++. Go to bare bones C and get the feeling of building things from bare-bone metal scraps.
Also get Knuth's book on "Concrete Mathematics" if you have not done a course in discrete mathematics and computation theory. Would be good for you to go through that book as well.
Then tackle Knuth's encyclopedia, one tome, one chapter at a time. Don't go to another chapter without having a good grasp of the first one.
I would suggest you go through volume I (fundamental algorithms) first, then volume III (searching and sorting). Those should be your immediate goals. Then, later (much later), tackle volume IV (Combinatorial Algorithms) and then Volume II (Semi-Numerical Algorithms.)
Don't feel bad if you don't get it at first. I've been trying to get through volume I and III for years (10 years now).
And you should not put so much weight on it either. Don't do it to prove something to somebody or yourself. Do it because you are intellectually interested in doing so. You can become proficient in algorithms by simply using the CLRS' book (or any of the fine grad-level books out there.)
Be pragmatic and give yourself a break. Treat going through Knuth's book as a long-term personal ambition, not as an immediate proof that you are CS material ;)
There are other more important things (career-wise) to kill yourself for ;)