Do you believe that learning programming changes the way people think forever?
When I was thinking about this, I have realized, that whan I was learning programming I saw many people freeze up completely. To truly know they have no idea how to work with this kind of language and be terrified. And I realized that I saw this kind of freeze only once before. When a kid was learning math for a first time.
What a strange view...
First when they finally realize how loops work, and stop putting return statements in the loop body.
The second hurdle is recursion.
That hits people hard, and is the biggest test for devs in general.
I've never met a good dev who didn't understand recursion.
It's simple, but abstract and completely new.
A self referencing rule, that is the reason many quit software engineering.
CSS rules, REGEX, parsing tokens, and SQL statements, are last but not least.
Selecting items by describing the group, instead of describing the method, as well as mutual recursion, are entirely different approaches to get things done, and it's difficult for many to fit into their heads.
If you get past all that, you definitely think differently.
One line a time.