
Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services
Brendan Burns
4.3 on Amazon
9 HN comments

High Performance Python: Practical Performant Programming for Humans
Micha Gorelick and Ian Ozsvald
4.8 on Amazon
9 HN comments

JavaScript: The Definitive Guide: Master the World's Most-Used Programming Language
David Flanagan
4.7 on Amazon
9 HN comments

Kubernetes in Action
Marko Luksa
4.7 on Amazon
8 HN comments

Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are
Seth Stephens-Davidowitz, Timothy Andrés Pabon, et al.
4.4 on Amazon
8 HN comments

Mathematics for Machine Learning
Marc Peter Deisenroth
4.7 on Amazon
7 HN comments

The Hundred-Page Machine Learning Book
Andriy Burkov
4.6 on Amazon
7 HN comments

Grokking Deep Learning
Andrew Trask
4.5 on Amazon
7 HN comments

Eating Animals
Jonathan Safran Foer
4.7 on Amazon
7 HN comments

Fundamentals of Database Systems
Ramez Elmasri and Shamkant Navathe
4.3 on Amazon
7 HN comments

Software Design for Flexibility: How to Avoid Programming Yourself into a Corner
Chris Hanson and Gerald Jay Sussman
4.3 on Amazon
7 HN comments

Invent Your Own Computer Games with Python
Al Sweigart
4.7 on Amazon
7 HN comments

Implementing Domain-Driven Design
Vaughn Vernon
4.5 on Amazon
7 HN comments

Math for Programmers: 3D graphics, machine learning, and simulations with Python
Paul Orland
4.9 on Amazon
7 HN comments

Digital Gold: Bitcoin and the Inside Story of the Misfits and Millionaires Trying to Reinvent Money
Nathaniel Popper
4.6 on Amazon
7 HN comments
jokermatt999onMay 3, 2009
AlSweigartonDec 24, 2009
octopusonJan 23, 2011
It will be fun and you will learn a lot.
If this seems too difficult, then take a good introductory book like "Invent Your Own Computer Games with Python" and implement by yourself all the include projects.
MithrandironOct 9, 2011
I assume that the kid is on Windows. Using a UNIX-like system (Linux, BSD) is definitely a good way to understand computers better, especially because of the large amount of programming libraries available often by simply running one command. It's not required of course, but it might help him/her. Yet again, it might not. :-)
Once they've learned the dynamics of Python (or other) setting up a GitHub account might not be a bad idea.
geomarkonJan 3, 2019
mindcrashonFeb 2, 2018
If you want something game centric you might like "Invent Your Own Computer Games with Python, 4th Edition" by Al Sweigart [2]
[1] https://nostarch.com/catalog/kids
[2] https://nostarch.com/inventwithpython
AlSweigartonNov 9, 2009
I wrote a freely available book called "Invent Your Own Computer Games with Python" and released it under a Creative Commons license. It's available at http://inventwithpython.com
I think Python makes a great (even superior) replacement for BASIC. Adding in Pygame, and it is much easier and fun to learn programming.