November 14, 2026 · 2 min read
Where to start with free computer science books
A practical starting point for self-learners: choose one book, finish a small project, and only then add a second source.
The hardest part of learning from free books is not finding them. It is choosing one and finishing it. The catalog has more than a thousand titles; a good learning path needs three or four.
Start with one language, not five
Pick a language you can use for a small project. Python is a common first choice because the feedback loop is short and the free material is abundant. C is a good second language if you want to understand memory and systems. JavaScript is the practical choice if you want to build for the browser.
Read one general introduction, type the examples and finish a small program. A calculator, a text parser or a small web page is enough. The goal is not to finish the book; it is to stop needing it for the basics.
Add algorithms when the programs get bigger
Once you can write a program, the next constraint is usually structure: how to store data, search it and keep the code understandable. An algorithms and data structures text will make more sense after you have written something that became messy. Pair it with a book on the language you are using.
Choose a domain
Computer science is broad. After the foundations, choose a direction: web development, data, security, systems, machine learning or mathematics. The curated collections group books by goal, so you do not have to guess which title is introductory and which assumes a PhD.
A simple reading plan
- Weeks 1–4: one language introduction, one small project.
- Weeks 5–8: one algorithms or data structures text, exercises from two chapters.
- Weeks 9–12: one domain book and one project that uses it.
- After that: one book at a time, with a written note about what you built.
Start with the Start here collection, then open the collection for your domain. If you are unsure, browse the category directory and read the descriptions before you commit.