Learn how to program!

Everyone in the 21st century needs to learn to code, right? But not everyone needs to become a software engineer or computer scientist. Automate the Boring Stuff with Python is written for office workers, students, administrators, and anyone who uses a computer how to write small, practical programs to automate tasks on their computer.

You don't need to know all the complexities of algorithms and syntax, you just want to write basic programs to automate mundane computer tasks. In the process, even total beginners will learn to use Python to control their computers without having to learn complex information about computer science. This is a practical programming guide for the rest of us.

Develop video games!

Invent Your Own Computer Games with Python teaches you how to program in the Python language. Each chapter gives you the complete source code for a new game, and then teaches the programming concepts from the example.

Invent with Python is for young adults, adult adults, and anyone who has never programmed before. The 3rd edition is still available on the web and Amazon.

Make games with graphics!

Making Games with Python & Pygame covers the Pygame library with the source code for 11 games. Making Games was written as a sequel for the same age range as Invent with Python. Once you have an understanding of the basics of Python programming, you can now expand your abilities using the Pygame library to make games with graphics, animation, and sound.

The book features the source code to 11 games. The games are clones of classics such as Nibbles, Tetris, Simon, Bejeweled, Othello, Connect Four, Flood It, and others.

Encrypt messages and hack ciphers!

Hacking Secret Ciphers with Python teaches complete beginners how to program in the Python programming language. The book features the source code to several ciphers and hacking programs for these ciphers. The programs include the Caesar cipher, transposition cipher, simple substitution cipher, multiplicative & affine ciphers, Vigenere cipher, and hacking programs for each of these ciphers. The final chapters cover the modern RSA cipher and public key cryptography.

“I am a college professor who occasionally teaches courses for liberal arts students. [...] I offered a game programming course in the Python programming language using Sweigart's book. The students loved this book. It starts at the very beginning and leads them, game by fascinating game, to become highly capable programmers.”

“I picked up a copy of this book and was in all honesty blown away by how easy the concepts of python are introduced to the reader in a clear and concise manner. The fact that you are also making small little games with your programs throughout this book helps with motivation as tasks get harder and harder - it keeps it all fun while learning. ”

“It provides a simple introduction both to programming, and to Python. The book and examples are also available online at the book's website under a Creative Commons Attribution-NonCommercial-ShareAlike license, so you're also supporting free culture business models by buying this book.

This book is particularly effective at getting you started, and so if you've tried to learn programming before and failed or gotten stalled, I highly recommend this as the approach for you.”

“This Spring, we used this book for six weeks of a homeschool "Physics and Modeling" class. I am extremely happy with the book. It received many compliments from the students for ease of use, the hands-on approach, and the fact that game programming starts right away.”

“I used to write a column on a greek magazine about learning Python and PyGame. [...] Since I found this book, every time the topic of learning programming is mentioned - especially from a person interested on making games - I point people to it.”

Educational Discount

Programming Books I Recommend (if you don't mind paying)

These books take a more conventional approach to covering programming concepts. They don't focus on having complete source code for small projects or games, but they do explain programming concepts fairly well.