I have somewhat pulled back on book suggestions pending learning how someone learns and what their preferred style is, even more so if they have some experience already*.
*I can program some things and generally feel comfortable playing at the lowest levels of code. If I have to have my hand held in baby's first introduction to signed numbers/data types, loops and what is memory/CPU/... I tend to lose the will to live, and usually can't skip it as it will also be introducing basic language syntax, as well as what a syntax error vs more fundamental types of errors are, and whatever all the various data types (and whether it is strong, strict or weak), types of loops available and approaches to memory (pointers or not). Some however do allow skipping.
As ever though programming and the learning thereof goes so much better for 99.99% of people if they have a reasonably achievable goal (you are not going to write an OS, you can however very much expect to write a save editor to your chosen game, a converter from one format to another if you can describe the sorts of changes that need doing, maybe make a mod for a game that uses python, make an installer for something, make a simple text format convertor, make a program to strip junk data from a file/log/whatever....)