Automotive Deals BOTYSFKT Shop Women's Clothing Learn more nav_sap_plcc_ascpsc Crown the Empire Fire TV Stick Sun Care Handmade school supplies Shop-by-Room Amazon Cash Back Offer TarantinoCollection TarantinoCollection TarantinoCollection  Amazon Echo  Echo Dot  Amazon Tap  Echo Dot  Amazon Tap  Amazon Echo Starting at $49.99 All-New Kindle Oasis STEM Segway miniPro

Self-Study CS Books

B. Butler "redline6561"
The list author says: "I once wrote a blog article on getting "An Undergraduate CS Education for Under $1,000". It focused on selection of appropriate texts and resources for self-study. Since then, my opinion on texts has changed as has my opinion on an Undergraduate CS education. Principally, I feel that actually coding and working on projects (open source or otherwise) is a better motivator and leads to more retained knowledge than books and exercises. Nonetheless, these are valuable texts and one should be familiar with these subjects even without experience hacking on an "applied" project. But to really learn, code. As a disclaimer, I have also re-enrolled in school.

This list is, of course, opinion. I will continue to refine it as I complete more of the books on my shelf and learn more about CS through self-study and school. There are a few conspicuous absences like Databases or Distributed Systems. In time, hopefully a book to fill these needs will come to my attention. Finally, there are Mathematics prerequisites for these books which this list does not cover. I hope to publish another list for math and other texts and a potential course sequencing/dependency tree at some point in the future.

(Edit 09/25/11: I've changed the list once again, now it looks something like this:
* Structure and Interpretation of Computer Programs
* Computer Systems: A Programmer's Perspective
* Paradigms of Artificial Intelligence Programming
* C Interfaces and Implementations
* Programming Pearls
* Algorithm Design Manual
* Modern Compiler Implementation in ML"
Concrete Abstractions: An Introduction to Computer Science Using Scheme
Concrete Abstractions: An Introduction to Computer Science Using Scheme
"The First CS Text SICP and HTDP are treated as though they are the only two choices. HTDP I felt assumes a bit too little of the reader, it begins slowly. The beginning could be breezed over but I prefer brevity. The amount SICP covers and the determination and maturity it expects of its reader is perhaps too much. I would recommend this book instead. SICP is worth returning to later."
A Practical Guide to Data Structures and Algorithms using Java (Chapman & Hall/CRC Applied Algorithms and Data Structures series)
A Practical Guide to Data Structures and Algorithms using Java (Chapman & Hall/CRC Applied Algorithms and Data Structures series)
"A First Data Structures Text It is difficult to introduce Data Structures without Algorithms. Different schools approach the course sequence differently. I think this is a suitable first text for many reasons to be followed up with a more Algorithms-focused text later."
Algorithm Design
Algorithm Design
"A First Algorithms Text I am no fan of CLRS as an introductory text, it is better suited as reference. Particularly for self-learners, well-motivated material helps. Both Levitin and Kleinberg-Tardos are immensely more enjoyable for self-study than CLRS. Additionally, they stress methods over specific problem types. Kleinberg-Tardos is best to read, afterwards you can consider CLRS or others."
Computer Systems: A Programmer's Perspective
Computer Systems: A Programmer's Perspective
Structured Computer Organization (5th Edition)
Structured Computer Organization (5th Edition)
Computer Architecture: A Quantitative Approach, 4th Edition
Computer Architecture: A Quantitative Approach, 4th Edition
Concepts, Techniques, and Models of Computer Programming
Concepts, Techniques, and Models of Computer Programming
Programming Language Pragmatics, Third Edition
Programming Language Pragmatics, Third Edition
Engineering a Compiler
Engineering a Compiler
Lisp in Small Pieces
Lisp in Small Pieces
Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
Artificial Intelligence: A Modern Approach (2nd Edition)
Artificial Intelligence: A Modern Approach (2nd Edition)
Operating Systems Design and Implementation (3rd Edition)
Operating Systems Design and Implementation (3rd Edition)
Introduction to the Theory of Computation (Advanced Topics)
Introduction to the Theory of Computation (Advanced Topics)
Security Engineering: A Guide to Building Dependable Distributed Systems
Security Engineering: A Guide to Building Dependable Distributed Systems
The Humane Interface: New Directions for Designing Interactive Systems
The Humane Interface: New Directions for Designing Interactive Systems
Computer Networks (4th Edition)
Computer Networks (4th Edition)
Software Engineering for Internet Applications
Software Engineering for Internet Applications