I would certainly suggest
https://cryptozombies.io/ from Loom Network. It might sound like another of those crypto games, but basically it is a solidity programming website. It has beginner level to expert level courses, which you asked for. The best thing is that they are teaching you to create a DAPP and not doing all that textual mumbo-jumbo. So you are learning solidity, you are creating a DAPP and seeing the results side by side. Plus since it is gamification based teaching, so it is not boring and faster way to learn. After you complete this course, you can of course go for more advanced courses on Udemy or other good sites.