I just enrolled in a CS course and the instructor gave a list of readings for the course. There is a total of 4 books and each book contains around 15+ chapters and around 2 thousand pages and all the chapters of the book cover our course syllabus. But I am now pretty confused about which book to read and how can I prepare for the course? All the books are somewhat similar but I have no Idea How to decide which book to read and How to read the book for the course.
It is ridiculous to assume there is anything of immediate value in a CS text.
Instead, you should read all of Stack Overflow, where the real learning is at!
They undoubtedly mean you should treat the books as a reference to look up topics, not read them cover-to-cover, as might be implied, and may assign homework from select topics amongst them.
I'd ask the professor to clarify whether they intend to assign specific homework assignments from the books and also ask them or your peers for more specific suggestions of relevant resources.
Frequently books in scientific topics have wildly varying (sometimes comically high) prices and often little correlation between price and printing age to quality.
Even though they're normally "off-topic" and eventually closed, the Stack Exchange network has dozens of threads of great books in a particular subject.
I would also personally recommend if this is your first computer science course to approach books on the subject along the lines that most are broadly
mathematically/theory-based and may deal with a very specific theoretical language that is not in common use, but very elegant for the field
these tend to be extremely dense and unpleasant to understand at first, but enjoyable when you already have a good base and help with how to think about computer science and especially "formal logic" topics like lambda calculus
Essentials of Programming Languages (Freidman, Wand, Haynes)
SICP (Scheme Lisp)
deal with a particular language or subject (C, Python, C#, GNU/Linux, some particular database dialect) in-depth
these tend to be great references, but nigh-impossible to read end-to-end because most of it is irrelevant outside of a niche situation and therefore boring and needless to subject oneself to
Linux Programming Interface; Kerrisk
largely tutorials for a particular language
these tend to just be a collection of challenges and are best augmented by the above to help explain topics in greater detail
Automate the Boring Stuff (free Python text) http://automatetheboringstuff.com/
The Little Schemer (Scheme Lisp and Friedman (again))
First, read a little bit from each book (which you borrowed from the library) and see which one you like best. Whose explanations work for you? Which book is working on the level of detail you prefer? If there is no clear cut winner, just pick one. You can also consider factors such as availability in your preferred format (e-book vs paper).
Once you have chosen your primary book, read it. If you come across a concept you struggle with, consider reading the relevant part of other books. Something seeing explanations from different perspectives can help. If the lectures bring up a concept not appearing in your primary book, look for it in the others.