The most basic things are hard to grasp also. I had a really hard time understanding what is the difference between unicode, str, bytes and how to encode what when I started with it 5 years ago: https://stackoverflow.com/questions/14839028/how-are-these-s...
Nowadays, teachers have to start with generators and yield even for beginners, because most of the things are generators in Python3, which is not a trivial concept to understand when you have no programming background.
Every language will get more complex as you dig into it, but most people don't need to go beyond the surface.