Algorithms Illuminated: Part 1: The Basics

Accessible, no-nonsense, and programming language-agnostic introduction to algorithms. Includes solutions to all quizzes and sel ...

Details »
A Philosophy of Software Design

This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and me ...

Details »
Decision Trees and Random Forests: A Visual Introduction For Beginners

If you want to learn how decision trees and random forests work, plus create your own, this visual book is for you.  The fact ...

Details »
Writing A Compiler In Go

This is the sequel to Writing An Interpreter In Go. We're picking up right where we left off and write a compiler and a virtual ...

Details »
Twenty Lectures on Algorithmic Game Theory

Computer science and economics have engaged in a lively interaction over the past fifteen years, resulting in the new field of a ...

Details »
A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills

"Algorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster ...

Details »
The Little Typer (The MIT Press)

An introduction to dependent types, demonstrating the most beautiful aspects, one step at a time.A program's type describes its ...

Details »
Deep Reinforcement Learning Hand...

...On: Apply modern RL methods, with deep Q-networks, value iteration, policy gradients, TRPO, AlphaGo Zero and moreThis practic ...

Details »
Math with Bad Drawings: Illuminating the Ideas That Shape Our Reality

A hilarious reeducation in mathematics-full of joy, jokes, and stick figures-that sheds light on the countless practical and won ...

Details »
Grokking Algorithms: An illustrated guide for programmers and other curious people

Summary Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to the practi ...

Details »