Programming

The Nature of Code cover image

The Nature of Code

Daniel Shiffman

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

Introduction to System Programming in Linux

Stewart N. Weiss

This comprehensive introduction to Unix system programming—with an emphasis on Linux—teaches beginners how the Unix OS is designed and structured "under the hood."

The Book of Batch placeholder cover

The Book of Batch

Jack McLarney

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

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.

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.

The Art of ARM Assembly placeholder cover

The Art of ARM Assembly

Randall Hyde

Add valuable skills to your programming toolkit by learning to write complete applications in ARM, a popular low-level assembly language.

Math for Programming placeholder cover

Math for Programming

Ronald T. Kneusel

Learn all of the core mathematical topics that professional software engineers need to know—in a single book!

Kotlin for the Curious placeholder cover

Kotlin for the Curious

Faisal Islam

Learn to code in Kotlin by starting from scratch and gradually building skills to tackle a wide range of fun and challenging problems.

The C# Type System cover

The C# Type System

Steve Love

A comprehensive guide to effectively using modern C# to write better programs.

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 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.

The Complete Developer Cover

The Complete Developer

Martin Krause

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

Math Hacks for Scratch placeholder cover

Math Hacks for Scratch

Michael Mays

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

Python Playground, 2nd Edition Cover

Python Playground, 2nd Edition

Mahesh Venkitachalam

Put the fun back in programming with 3D simulations, speech-recognition systems, IoT devices, and more.

The Rust Programming Language, 2E Cover

The Rust Programming Language, 2nd Edition

Steve Klabnik and Carol Nichols

The quintessential guide to programming in Rust. Thoroughly updated to Rust’s latest version, this edition is considered the language’s official documentation.

The Shape of Data Cover

The Shape of Data

Colleen M. Farrelly and Yaé Ulrich Gaba

This advanced machine learning book teaches algorithms through geometry, and data analysis through practical scientific applications.

Practical Julia Cover

Practical Julia

Lee Phillips

Use Julia as a research tool and solve real-world problems in this practical, hands-on intro to the language.

 

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.

Python for Kids, 2nd Edition Cover

Python for Kids, 2nd Edition

Jason R. Briggs

The second edition of the best-selling Python for Kids—which brings you (and your parents) into the world of programming—has been completely updated to use the latest version of Python, along with tons of new projects!

MySQL Crash Course Cover

MySQL Crash Course

Rick Silva

Takes you from the basics of creating a table to the complexities of managing an entire database, with real-world examples and hands-on projects.

Dive Into Data Science cover

Dive Into Data Science

Bradford Tuckfield

Teaches you how to collect and work with data in business settings, and how to analyze data sets using Python code.

The Book of Kubernetes Cover

The Book of Kubernetes

Alan Hohn

This hands-on guidebook explains the inner workings of containers, and shows how Kubernetes helps computing, networking, and storage.

Python Crash Course 3rd Edition Cover

Python Crash Course, 3rd Edition

Eric Matthes

This fast-paced intro to programming with Python will have you writing code, solving problems, and making cool projects in no time.

Strange Code Cover

Strange Code

Ronald T. Kneusel

Strengthen your coding skills by exploring the weird, wonderful world of atypical and esoteric languages.

Data Structures the Fun Way Cover

Data Structures the Fun Way

Jeremy Kubica

Learn how and when to use the right data structures in any situation, strengthening your computational thinking, problem-solving, and programming skills in the process.

 

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.

Python for Data Science cover

Python for Data Science

Yuli Vasiliev

Introduces you to the Pythonic world of data analysis with a learn-by-doing approach rooted in hands-on activities.

The Art of Clean Code

The Art of Clean Code

Christian Mayer

Uses 8 core principles, with a focus on simplicity and functionality, to teach you how to write clear, concise code.

The Book of Dash Cover

The Book of Dash

Adam Schroeder, Christian Mayer, and Ann Marie Ward

A practical, fast-paced introduction to building interactive data-visualization dashboard apps in Python.

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.

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.

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.

Object-Oriented Python Cover

Object-Oriented Python

Irv Kalb

A hands-on tutorial that goes deep into OOP, showing you how to combine data and code into reusable units.

Rust for Rustaceans Cover

Rust for Rustaceans

Jon Gjengset

Bridges the gap between beginners and professionals, enabling you to write apps, build libraries, and organize projects in Rust.

Bare Metal C cover

Bare Metal C

Stephen Oualline

Teaches you how to program embedded devices with the C programming language.

Dive Into Systems Cover

Dive Into Systems

Suzanne J. Matthews, Tia Newhall, and Kevin C. Webb

A vivid, layer-by-layer intro to computer architecture and software components.

Hello Web Design Cover

Hello Web Design

Tracy Osborn

Don't wish for your own website, make it yourself with Hello Web Design! Written for beginners, brimming with professional insights, and sure to inspire.

Practical SQL, 2nd Edition Cover

Practical SQL, 2nd Edition

Anthony DeBarros

A fast-paced guide to SQL – the language for defining, organizing, and exploring relational data.

Dead Simple Python

Jason C. McDonald

A thorough intro to every feature of the language, for programmers who are impatient to write production code.

ScratchJr Coding Cards

ScratchJr Coding Cards

Marina Umaschi Bers and Amanda Sullivan

ScratchJr Coding Cards are a deck of 75 activity cards covering fun and exciting projects designed to educate young children with the visual programming language, ScratchJr.

Python Flash Cards

Python Flash Cards

Eric Matthes

Python Flash Cards help new Python coders drill and reinforce the concepts, syntax, and terminology they'll need to become successful professional programmers.

Serious Python

Serious Python

Julien Danjou

Serious Python is a collection of practical, real-world advice for tackling common Python developer-level problems.

Black Hat Go

Black Hat Go

Tom Steele, Chris Patten, and Dan Kottmann

Black Hat Go will help you test your systems, build and automate tools to fit your needs, and improve your offensive security skillset.

Mission Python

Mission Python

Sean McManus

Mission Python will teach you how to program an adventure game in this hands-on, beginner-friendly introduction to coding in Python.

The CS Detective

The CS Detective

Jeremy Kubica

The CS Detective is a fantasy whodunit for the digital age that introduces the concepts behind search algorithms and important data structures.

The Book of R

Book of R

Tilman M. Davies

The Book of R is an interactive introduction to the essentials of R programming and statistics.

Realm of Racket

Realm of Racket

Matthias Felleisen, David Van Horn, Conrad Barski, M.D., and Eight Students of Northeastern University

In Realm Of Racket, you'll learn to wield Racket's mighty yet mind-bending power by reading comics and programming games.

The Modern Web

Modern Web

Peter Gasston

The Modern Web deftly guides you through the technologies web developers will need now and in the years to come.

Think Like a Programmer

Think Like a Programmer

V. Anton Spraul

In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches readers what other introductory books often ignore: how to Think Like a Programmer.

The Art of R Programming

Art of R Programming

Norman Matloff

R is the world's most popular programming language for statistical computing. Whether you're doing academic research, designing aircraft, or forecasting the weather, The Art of R Programming is your guide to harnessing the power of R.

The Book of Ruby

Book of Ruby

Huw Collingbourne

Cut through those programming conventions and blaze your own trail with The Book of Ruby. From methods to metaprogramming, gain the skills you need to master the world's most fun programming language with this hands-on introduction.

Code Craft

Code Craft

Pete Goodliffe

"Some books you read because you have to, some you simply have to read. Pete's book is in the second category – it's useful and fun and it'll make you a better programmer."
Jez Higgins, ACCU Chairman

"Code Craft is a goldmine of information that every professional software developer should be aware of."
Tim Penhey, editor of C Vu Journal

View a sample chapter, Chapter 6: To Err is Human

Land of Lisp

Land of Lisp

Conrad Barski, M.D.

Master the elegance of functional programming with Land of Lisp, an illustrated guide to the world's most powerful language. Learn by doing as you write games like Dice of Doom, The Wizard's Adventure, and the updated classic, Grand Theft Wumpus!

Gray Hat Python

Gray Hat Python

Justin Seitz

The first Python book written for security analysts, Gray Hat Python explains the intricacies of using Python to assist in security analysis tasks. You'll learn how to design your own debuggers, create powerful fuzzers, utilize open source libraries to automate tedious tasks, interface with security tools, and more.