Many people say that TAOCP is not supposed to be read as a book (actually a volume of books), but if I decide to go that way, which math/computer science books/topics do I need to study to help me follow it? There is a related question on stackoverflow but I would like to read the suggestions of cs.se users.
Don Knuth is a teacher, and is always very thorough when he writes. So one should expect that he states all prerequisites in his books.
To ascertain that, I went to look in my own issue of the first volume.
Indeed the preface states some prerequisites on page v, which he sums up into "the single requirement that the reader should have already written and tested at least, say, four programs for at least one computer".
Starting page viii, he gives a few words regarding mathematical content. "the material has been organized so that persons with no more than a knowledge of high school algebra may read it, skimming briefly over the more mathematical portions; yet a reader who is mathematically inclined will learn interesting mathematical techniques [...]". He calls his organization a dual level of presentation.
Later he confirms that "a knowledge of elementary calculus will suffice for most of the mathematics in these books, since most of the other theory that is needed is developed herein ..."
Hence my best advice is to find out what you need by first reading the prefaces of the various volumes of TAOCP in the library. I suggest adding some lighter reading, such as comics. You may need it.
A word of warning though. Knuth tends to be too optimistic regarding the brains of other people.
I endorse everything in babou's answer, but I'm going to suggest one book which may be helpful.
"Concrete Mathematics: A Foundation for Computer Science" by Graham, Knuth and Patashnik is a textbook in a way that TAOCP isn't. Moreover, in a sense, it is a summary of the maths that Knuth used throughout his career (apart from the formal language stuff; people forget that Knuth's greatest research contribution to computer science is actually the theory of LR parsing) in convenient textbook form.
One can read it easily if one has
- A solid background in highschool math (algebra + geometry)
- A calculus course
- Discrete mathematics book completed
- Concrete mathematics completed
- Ability to write code in one language like python, test yourself by solving first 25 problem from project Euler, if you can do it, go ahead