<TLP/>
Think Like Programmer
A free library for people who love to build with code. Explore programming books, computer science resources, and developer knowledge — freely available from a growing open library.
Popular Topics
View all →Featured Books
View all →Artificial Intelligence: Foundations of Computational Agents
David L. Poole, Alan K. Mackworth
An undergraduate/graduate AI textbook organized around the design of intelligent agents: search, reasoning under uncertainty, planning, learning, and multiagent systems, presented within one coherent agent framework.
Artificial IntelligenceAdvancedCreative CommonsHTML
Deep Learning
Ian Goodfellow, Yoshua Bengio, Aaron Courville
The widely cited reference on deep learning: the mathematical background, deep feedforward networks, regularization and optimization, convolutional and recurrent networks, and research topics including generative models.
Deep LearningAdvancedMITHTMLMachine Learning Crash Course
Google
Google's practical, example-driven introduction to machine learning: loss and gradient descent, classification, neural networks, embeddings, fairness, and production ML systems, with interactive exercises using TensorFlow.
Machine LearningBeginnerAPACHE 2.0HTML
An Introduction to Statistical Learning
Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani
A broad, applied introduction to statistical learning: linear and logistic regression, resampling, regularization, trees and ensembles, support vector machines, and unsupervised learning, with lab exercises in R and Python.
Machine LearningIntermediateOfficial Free DistributionPDF
Mathematics for Machine Learning
Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong
The mathematical foundations behind machine learning, taught for ML rather than in the abstract: linear algebra, analytic geometry, matrix decompositions, vector calculus, probability, and optimization, connected to real ML models.
Machine LearningAdvancedOfficial Free DistributionPDF · 17 MBNeural Networks and Deep Learning
Michael Nielsen
A hands-on introduction to neural networks, built around teaching a network to recognize handwritten digits. Derives backpropagation from first principles, then covers why deep networks are hard to train and the ideas that make deep learning work.
Deep LearningIntermediateCreative CommonsHTML
Natural Language Processing with Python
Steven Bird, Ewan Klein, Edward Loper
A practical introduction to natural language processing using Python and NLTK: text processing, tagging, classification, parsing grammars, and information extraction, with runnable examples throughout.
Natural Language ProcessingIntermediateCreative CommonsHTML
Python Data Science Handbook
Jake VanderPlas
A practical guide to the core Python data-science stack: IPython/Jupyter, NumPy, Pandas, Matplotlib, and Scikit-Learn, with real workflows for cleaning, transforming, visualizing, and modeling data.
Machine LearningIntermediateMITHTML
Speech and Language Processing
Daniel Jurafsky, James H. Martin
The standard graduate textbook on NLP and computational linguistics: language models, part-of-speech tagging, parsing, information extraction, semantics, and speech recognition. The freely available 3rd edition draft is continuously updated.
Natural Language ProcessingAdvancedOfficial Free DistributionPDF
Algorithms
Jeff Erickson
A rigorous algorithms textbook built from the author's courses at the University of Illinois. Covers recursion, dynamic programming, greedy algorithms, graphs, NP-hardness, and more, emphasizing intuition and the problem-solving process alongside formal proofs.
AlgorithmsAdvancedCreative CommonsPDF · 24 MB
Dive into Deep Learning
Aston Zhang, Zachary C. Lipton, Mu Li, Alexander J. Smola
An interactive deep learning textbook combining explanations, mathematics, and runnable code (PyTorch, NumPy, JAX, and TensorFlow). Covers linear and softmax regression, MLPs, CNNs, RNNs, attention and transformers, and more. Adopted at 500+ universities.
Deep LearningAdvancedCreative CommonsPDF · 43 MB
Eloquent JavaScript
Marijn Haverbeke
A book about JavaScript, programming, and the wonders of the digital. It dives into the language in detail, teaching programming fundamentals alongside browser APIs and Node.js, with exercises and project chapters.
JavaScriptIntermediateCreative CommonsPDF
Fundamentals of Computer Programming with C#
Svetlin Nakov, Veselin Kolev, Nakov's Team
A large, thorough introduction to programming using C#. Covers the language and .NET from first principles, then data structures, algorithms, recursion, OOP, exception handling, and writing high-quality code, with hundreds of worked examples and exercises.
C#All LevelsCreative CommonsPDF · 11.6 MB
The Linux Command Line
William E. Shotts, Jr.
A thorough guide to the Linux command line: navigation, file manipulation, permissions, package management, I/O redirection, and shell scripting, from first commands through writing real scripts.
LinuxBeginnerCreative CommonsPDF
Open Data Structures (in C++)
Pat Morin
An open textbook covering the design and analysis of fundamental data structures — arrays, linked lists, hash tables, binary and balanced search trees, heaps, tries, and graphs — with full C++ implementations and mathematical analysis.
Data StructuresIntermediateCreative CommonsPDF · 1.5 MBOperating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau
A widely used operating systems textbook organized around three themes: virtualization (CPU and memory), concurrency (locks and condition variables), and persistence (disks, RAID, and file systems).
Operating SystemsAdvancedOfficial Free DistributionPDF
The Rook's Guide to C++
Jeremy A. Hansen
An introductory C++ textbook written by students and faculty at Norwich University. Covers variables, control structures, functions, arrays, pointers, classes, and file I/O, with exercises throughout.
C++BeginnerCreative CommonsPDF · 914 KBThe Rust Programming Language
Steve Klabnik, Carol Nichols
The official book on Rust: ownership and borrowing, structs and enums, error handling, generics and traits, concurrency, and building real projects — the standard starting point for learning the language.
RustBeginnerMITHTMLThe System Design Primer
Donne Martin
A community-maintained study guide for large-scale system design and the system design interview: scalability fundamentals, caching, load balancing, databases, messaging, and worked example architectures, with flashcards and further reading.
System DesignIntermediateCreative CommonsHTML