I am considering changing the trajectory of my own life, towards a more community/maker/teacher role, and I have a freelance/small business idea about teaching but I need sort of "soft syllabus" materials.
I am learning Python myself, having just never had a need for it in all of my professional web development life (I've written apps in just about every other web-focussed programming language, including Perl and Ruby).
It looks like the right language to teach general concepts in, and having a book I can draw from will help.
But I am, well, mid-life at best, and the only crisis I am experiencing is that I think much of what I have done for years is worth less than I would have hoped.
I think it is ironic that technology seems to serve people less and less (and advertisers more and more) at just exactly the same time as every possible piece of technology is falling in price and increasing in availability.
Want to make a small device with a colour LCD display, buttons, an entirely custom enclosure, a rechargeable battery and a custom PCB? The cost of doing that has never been lower. Even if you only want one.
Want to give some tool a comfortable handgrip for accessibility reasons that needs to be parametrically adjustable? The software tools are free and the prototyping tools are incredibly cheap.
Want to find the answer to a question about your local area that would have required months of library time? The software is free and shockingly complete data sets are available from governments.
So why do so many people, even adults my age and younger, feel that technology is out of their control?
I have always felt as a freelance developer that the work I am paid for is just the seed in the middle of a larger fruit, where I listen and discuss and explain and educate.
I feel I should be turning it inside out. Making the listening, discussion, education the product, and the development work ancilliary to it (because it almost always is).
What I find interesting about Python, specifically, is how many applications it is suitable for, considering its ease of access -- CAD packages, 3D printing, PCB design, GIS, microcontrollers, statistics. Children's and adult education etc.
So while I have a little time I am spending it re-orienting myself into Python as a programmer "way-of-life", and away from the tools I have been using so far (which has never, really, meant Python).
And as I do so I am getting a sense of how it might fit into me turning my freelance work inside out to become a teacher/trainer/educator/facilitator, largely for adults, to help them have better concepts of technology (even for just the humdrum business of getting suppliers to quote for bespoke projects).
A vague sketch, sorry -- but I think this might answer your question.
I do admit that I haven't had the first-hand experience of optional typing in Python supported by something like PyCharm so it is possible that the tooling has brought the experience to be comparable to working with a statically typed language. If someone has used IntelliJ community edition with Python typing-enforcement turned-on, please share your experience.
There's a lot of context and drudgery involved in programming that can dissuade people before they get to that magical moment, and they can blame themselves and think they weren't smart enough because they don't understand that the deck was stacked against them. For instance with Python, broken virtual environments can be really dissuading for new programmers.
I think Java's opinionated and verbose nature can be cumbersome to beginners, who have never debugged a type confusion issue and so don't give a hoot about static typing. But I think after programming in Python for a while, they'll see why eg declaring what exceptions you'll raise is tremendously helpful.
(I came across Think Python when I was trying to help other people learn how to program. So I did not learn programming from Think Python, and Python is also not my favourite language. (It's also not my least favourite language, either. Far from it.))
It's not just a book about a language, but an introduction into the basics of solving problems as a programmer.