As far as my knowledge goes there aren't many great courses available and I haven't really read any books till now. Let's see if anyone has books.
Now getting to some good courses ->
1.chainshot -> Good if you want to learn solidity concepts. Do note just concepts but most people don't know them as everyone is mostly focused on building dapps rather than solidity itself.
2. Superhi course for web3 -> Great course if you want to get started with dapp development. It's web3modal guide helped me in a major project given to me by my company though now with arrival of new tools web3modal is rendered useless.
3. Nader Dabit -> That dude is godfather of web3 watch all of his tutorials.
I haven't mentioned cryptozombies because it's kinda outdated now but still if you have time do it, it's just great. Hope this comment helps.