Honestly, when I started tinkering with code I wanted something that felt like building, not reading a textbook, and that shaped what I recommend.
For absolute beginners who want friendly, hands-on introductions, I always point people to 'Automate the Boring Stuff with Python' because it teaches Python through real tasks — web scraping, Excel automation, simple GUIs — and that makes concepts stick. Pair that with 'Python Crash Course' for project-based practice: it walks you from basics to small apps and games. If you like a more visual, conversational approach, 'Head First Programming' (or 'Head First Python') breaks ideas into bite-sized, memorable chunks.
Finally, sprinkle in 'Grokking Algorithms' once you know the basics: algorithms explained with visuals helps you understand why some approaches are faster. And don’t forget practice: tiny projects, community forums, and breaking things on purpose are where real learning happens. I still have sticky notes of tiny scripts on my monitor — little wins matter.