No Starch Press


Writing a C Compiler Cover

Writing a C Compiler

Nora Sandler

A hands-on, example-filled guide to the theory and practice of writing a C compiler: a computer program that translates code written by programmers into code the computer can read.

Batch Scripting cover

The Book of Batch Scripting

Jack McLarney

This fast-paced, hands-on, quirky introduction to Windows’ Batch scripting language is ideal for coders of all skill levels.

R for the Rest of Us Cover

R for the Rest of Us

David Keyes

Learn how to use R for everything from workload automation and creating online reports, to interpreting data, map making, and more.

Computer Architecture cover

Computer Architecture

Charles Fox

Based on an award-winning university-level CS course, this entertaining book teaches you the history and inner workings of the modern computer.

Windows Security Internals placeholder cover

Windows Security Internals

James Forshaw

Power up your Windows security skills with expert guidance, in-depth technical insights, and lots of real-world vulnerability examples.

Machine Learning Q and AI cover

Machine Learning Q and AI

Sebastian Raschka

Learn the answers to 30 cutting-edge questions in machine learning and AI and level up your expertise in the field

Locksport Cover


Jos Weyers, Matt Burrough, Walter Belgers, BandEAtoZ, and Nigel K. Tolley

This hands-on guide to the art of lockpicking will take you from noob to competition-ready.

The Complete Developer Cover

The Complete Developer

Martin Krause

A hands-on, beginner-friendly approach to developing complete web applications from the ground up.

The Art of Randomness Cover

The Art of Randomness

Ronald T. Kneusel

Use randomness to solve problems in fun, hands-on experiments—from simulating evolution to encrypting messages.

JavaScript Crash Course Cover

JavaScript Crash Course

Nick Morgan

A thorough introduction that will have you writing your own JS software and web applications in no time.

Algorithmic Thinking, 2nd Edition Cover

Algorithmic Thinking, 2nd Edition

Daniel Zingaro

Get in the game and learn essential computer algorithms by solving competitive programming problems—no math required.

The Art of Machine Learning Cover

The Art of Machine Learning

Norman Matloff

Learn to expertly apply a range of machine learning methods to real data with this practical guide.

Coming Soon

Engineering Secure Devices cover

Engineering Secure Devices

Dominik Merli

An essential resource for current and future developers tasked with protecting users from the potential threats of these ubiquitous devices.

The Nature of Code cover image

The Nature of Code

Daniel Shiffman

This creative coding tutorial is designed to grow your skills in a fun, hands-on way as you build simulations of natural phenomena.

Microcontroller Exploits cover

Microcontroller Exploits

Travis Goodspeed

A deep dive into advanced hardware hacking with detailed examples of real-world techniques and a comprehensive survey of vulnerabilities.


Math Hacks for Scratch cover

Math Hacks for Scratch

Michael Mays

Push Scratch programming to the limits as you explore mathematical curiosities through hands-on coding projects.

Black Hat Bash cover

Black Hat Bash

Dolev Farhi, Nick Aleks

Master the art of offensive bash scripting. This highly practical hands-on guide covers chaining commands together, automating tasks, crafting living-off-the-land attacks, and more!

Introduction to Computer Organization: ARM	placeholder cover

Introduction to Computer Organization: ARM

Robert G. Plantz

Introduction to Computer Organization: ARM shows how a modern computer’s hardware and software work "under the hood.” It covers the ARM instruction set—popular in smartphones, laptops, and tablets—and walks the reader through programming examples using a Raspberry Pi.

PHP Crash Course Cover

PHP Crash Course

Matt Smith

Go from beginner to pro in PHP programming, through hundreds of in-depth examples and hands-on exercises.

Cover coming soon

Data Structures and Algorithms in JavaScript

Federico Kereki

In addition to teaching developers how to solve complex problems, Data Structures and Algorithms in JavaScript is strong preparation for coding interviews and programming competitions.

Effective C, 2nd Edition cover

Effective C, 2nd Edition

Robert C. Seacord

Is an introduction to essential C language programming that will soon have you writing programs, solving problems, and building working systems.

C++ Crash Course, 2nd edition cover

C++ Crash Course, 2nd Edition

Joshua Lospinoso

Revised to reflect the latest in C++ code and practices, its fast pace is designed to get intermediate programmers fluent in the language—with help from 500 code samples and nearly 100 exercises.