Part 1 is the most "useless" - it's basically required reading to be able to read the rest of the book. There are a few sections in data structures that I read to actually apply (I can't remember the exact parts, but I remember pouring over the book), but mostly it's enjoyable if you like programming for programmings sake. If you think of programming as a practical means for achieving some end (job or creative pursuit) then these books aren't for you. There is absolutely practical stuff in here, but it's all shown from first principles.
At any rate, don't judge the book on the first part - the first part is important to get the rest of the book, and it's as well written as the rest, but it doesn't reflect how much fun (again, fun for those who are into programming in itself) the rest of the book is.
Part 1 has some cool material. The mathematical preliminaries, polynomial arithmetic to motivate linked lists, and symbolic differentiation to motivate trees. The MIX simulator written in MIX too!
Yes, to be more clear about my point: there is a lot of learning about MIX to set the groundwork for future stuff, which can feel arbitrary and disconnected from practice. It can be off putting to a new reader. It took longer to read than just about any other part of the book, since the rest of the book has a much higher density of interesting material. Also it’s the only section that is really “required reading” and I most enjoy this book by bouncing around. I just want to encourage new readers to stick with it, it’s not exactly representative of the whole book.
At any rate, don't judge the book on the first part - the first part is important to get the rest of the book, and it's as well written as the rest, but it doesn't reflect how much fun (again, fun for those who are into programming in itself) the rest of the book is.