The Invent with Python Blog



Sun 05 September 2021
Recursion Is Not A Superpower: An Iterative Ackermann
Sat 28 August 2021
ccwd - A Copy Current Working Directory Command
Mon 02 August 2021
Algorithmic Art with the BitFieldDraw Module
Sat 10 July 2021
Book Review: The Charisma Machine by Morgan G. Ames
Sat 03 July 2021
Combinations and Permutations in Python with itertools
Sat 26 June 2021
New Book: The Big Book of Small Python Projects
Sun 07 March 2021
Al Sweigart's PyTennessee 2020 Opening Keynote
Sat 06 March 2021
Calm Programming Video Series
Mon 11 January 2021
Text Recognition in Python with pytesseract
Mon 11 January 2021
A Quick Pip Guide: How to Install Python Modules


Thu 24 December 2020
Installing the ComputerCraft Mod for Minecraft 1.16 (and later)
Fri 18 September 2020
Two Weird Tricks to Help Learn the Git Command Line
Thu 26 March 2020
Free Coupon Codes for My Online Courses


Tue 31 December 2019
Reading Guide to Automate the Boring Stuff, Second Edition, for Readers of the First Edition
Sun 24 November 2019
Type Hints for Busy Python Programmers
Tue 12 November 2019
Book Review: Code This Game! by Meg Ray (Odd Dot 2019)
Tue 12 November 2019
Book Review: Serious Python (No Starch Press 2018)
Sun 20 October 2019
Live Online Python Class on Twitch on October 21, 2019
Mon 07 October 2019
What's New in the 2nd Edition of "Automate the Boring Stuff with Python"
Thu 15 August 2019
Python Error Messages: Gotta Catch Em All
Wed 05 June 2019
Pythonic Ways to Use Dictionaries
Fri 01 February 2019
Hashable Objects Must Be Immutable


Sun 09 December 2018
Book Review: The Little Schemer
Mon 22 October 2018
A Curriculum for Python Packaging
Wed 17 October 2018
Writing Bots to Play Zombie Dice
Fri 24 August 2018
PyOhio 2018 Recursion Tutorial
Fri 17 August 2018
The Zen of Python, Explained
Mon 21 May 2018
Python's Fake Increment and Decrement Operators
Mon 05 February 2018
Python Tuples are Immutable, Except When They're Mutable
Fri 02 February 2018
How To Ask For Programming Help


Wed 05 April 2017
Lessons Learned from Creating a Udemy Course
Tue 14 March 2017
How to Install Django 1.10.6 and Python 3.6.0 on Dreamhost Shared Hosting


Mon 21 September 2015
"Automate the Boring Stuff with Python" online course now available!
Tue 15 September 2015
APIs, not apps: What the future will be like when everyone can code
Tue 01 September 2015
Further Reading: Intermediate Python Resources
Tue 10 March 2015
3rd Edition Released


Sat 20 December 2014
Translate Your Python 3 Program with the gettext Module
Wed 17 December 2014
Programming a Bot to Play the "Sushi Go Round" Flash Game
Thu 11 December 2014
Making a Text Adventure Game with the cmd and textwrap Python Modules
Sat 06 December 2014
Announcing the "Invent with Python" Bookshelf
Tue 02 December 2014
Why is Object-Oriented Programming Useful? (With a Role Playing Game Example)
Thu 20 November 2014
IDLE Reimagined
Tue 30 September 2014
No, Seriously, Why Should I Learn to Code?
Tue 11 February 2014
"Let's Create Software" Tutorial: Bus Routes Overlaid on Google Maps


Sun 15 December 2013
Why Is HTML Not A Programming Language?
Wed 02 October 2013
"Invent with Scratch" Screencast Series
Mon 30 September 2013
Downloading Imgur Posts Linked From Reddit with Python
Thu 20 June 2013
Decimal, Binary, and Hexadecimal Odometers
Thu 13 June 2013
Source Code Makeover: Demon Kingdom, Part 2
Wed 12 June 2013
Source Code Makeover: Demon Kingdom, Part 1
Tue 11 June 2013
Comments on John Resig's "Programming Book Profits" (and on Self-Publishing)
Wed 05 June 2013
Text Adventure vs. MUD vs. Roguelike vs. Dwarf Fortress
Mon 22 April 2013
Multithreaded Python Tutorial with the "Threadworms" Demo
Mon 15 April 2013
"Hacking Secret Ciphers with Python" Released
Mon 25 March 2013
Taking Punches is a Sucker’s Game
Tue 19 February 2013
What Professional Games Use Pygame?


Thu 27 December 2012
Why I Recommend Against Hackety Hack
Mon 10 December 2012
8-bit NES Legend of Zelda Map Data
Wed 21 November 2012
Programming AI Bots for Zombie Dice
Tue 30 October 2012
Designing a Button UI Module for Pygame
Thu 27 September 2012
Am I Too Old to Learn Programming?
Fri 17 August 2012
How Does Compression Work?
Mon 13 August 2012
Source Code Makeover: Square Shooter, Part 3
Fri 10 August 2012
Source Code Makeover: Square Shooter, Part 2
Thu 09 August 2012
Source Code Makeover: Square Shooter, Part 1
Mon 30 July 2012
Need a Game Idea? A List of Game Mechanics and a Random Mechanic Mixer.
Wed 18 July 2012
Using Trigonometry to Animate Bounces, Draw Clocks, and Point Cannons at a Target
Mon 09 July 2012
16 Common Python Runtime Errors Beginners Find
Thu 21 June 2012
A Common Programmer Mistake: Dog is not the Opposite of Cat
Wed 16 May 2012
A Modest Proposal: Please Don't Learn to Code Because It Will Damage Your Tiny Brain
Thu 03 May 2012
Implement a "Save Game" Feature in Python with the shelve Module
Fri 06 April 2012
Stop Using "print" for Debugging: A 5 Minute Quickstart Guide to Python’s logging Module
Sun 25 March 2012
How to Code a Twitter Bot in Python on Dreamhost
Mon 19 March 2012
CircleMUD Data in XML Format for Your Text Adventure Game
Sun 18 March 2012
“How much math do I need to know to program?” Not That Much, Actually.
Sat 03 March 2012
Nobody Wants to Learn How to Program
Mon 20 February 2012
"I Need Practice Programming": 49 Ideas for Game Clones to Code
Fri 10 February 2012
New Book: "Making Games with Python & Pygame"


Fri 09 December 2011
Pyganim - A Pygame module to make sprite animation dead simple.
Tue 29 November 2011
The Things I Hate About IDLE That I Wish Someone Would Fix
Fri 21 October 2011
My awesome exciting indie Pygame games: "Look At This Rock" and "Look At This Rock 2: A Different Rock"
Fri 21 October 2011
Pygame Basics Chapter
Sun 16 October 2011
Chinese Translation of "Invent with Python" Started
Fri 07 October 2011
Pygame Cheat Sheet
Wed 28 September 2011
List of Street Names, List of Last Names
Tue 20 September 2011
JavaScript Cipher Wheel
Sun 18 September 2011
Virtual Caesar Cipher Wheel program
Sat 17 September 2011
New Game Source Code: Simon Gesture (Simon clone with mouse gestures)
Sat 10 September 2011
Pygcurse - A "curses" Emulator Built on Pygame
Wed 07 September 2011
Rough Drafts of Next Two Books Available
Fri 19 August 2011
Nobody Cares About a Few Million Nanoseconds
Thu 11 August 2011
Recursion Explained with the Flood Fill Algorithm (and Zombies and Cats)
Fri 24 June 2011
New Game Source Code: Gemgem (A Bejeweled clone)
Mon 13 June 2011
New Game Source Code: Star Pusher (Sokoban clone)
Fri 10 June 2011
New Game Source Code: Four in a Row
Mon 16 May 2011
Great Pygame Example Site
Mon 09 May 2011
"MooseGesture" - Python Mouse Gestures Module
Sat 30 April 2011
Free Music, Sound Effects, Tiles, and 2D Art to Use in Your Games
Sun 06 March 2011
New Game Source Code: Squirrel Eat Squirrel
Fri 25 February 2011
New Extra Game: Connect Four clone
Sat 12 February 2011
1000th Book Sold!
Wed 09 February 2011
Cipher Disk Cutout
Mon 03 January 2011
Code Comments Tutorial: Flippy


Fri 03 December 2010
I am Boycotting Amazon for the Holidays
Thu 18 November 2010
Code Comments Tutorial: Tetromino
Fri 29 October 2010
Code Comments Tutorial: Snakey
Fri 08 October 2010
Code Comments Tutorial: Slide Puzzle Game
Thu 30 September 2010
Code Comments Tutorial: Simulate - A "Simon" Clone
Tue 28 September 2010
Code Comments Tutorial: Memory Game
Mon 27 September 2010
I Want To Teach My Kid How to Program
Thu 09 September 2010
Code Comments Tutorial: Ink Spill - A "Flood It" Clone
Wed 01 September 2010
The Top 10 Pygame Tutorials
Fri 25 June 2010 A Remake of Gorillas.bas
Thu 08 April 2010
Printed book still being edited.
Fri 26 February 2010
"Invent with Python" printed book on the way!
Tue 05 January 2010
Version 9 of the PDF is Available


Tue 24 November 2009
New Appendices
Mon 02 November 2009
Lessons Learned from Writing a Technical Book to Teach Programming
Thu 29 October 2009
What's new in the second edition?