What's the best book to learn blender?
Well...I don't know of any books I'd recommend, but I can give you a few suggestions when it comes to digital content.

A good place to start is with BlenderGuru's Donut Tutorial Series. That'll help you get a good start with Blender (learning the UI, basic modelling, texturing, rendering etc).

If you're willing to spend a bit of money, I've found the Hard Surface Modelling Tutorial Series to be a fantastic way to quickly progress from a beginner level to an intermediate one (in terms of modelling). There are a few caveats, as it has been recorded with the 2.79 UI. However, everything that they teach can also be learned while using 2.80+ (I can personally attest to that). They'll teach you the tools that you have at your disposal, many modelling techniques and workflows, not including sculpting, and the theory behind proper shading, good topology etc.

As far as special effects and animating goes, there are plenty of free materials online. Poke around StackExchange and find Q/As that are related to what you want to do. Try to focus on understanding the tools that are presented so that you may apply them elsewhere. Tutorials such as the LazyTutorials by IanHubert can help you in that aspect.

To be honest, where you want to go and what you want to focus on is up to you. To my knowledge, everything that you can learn from paid tutorials can also be learned for free or figured out on your own. What the paid tutorials do is to condense the knowledge down so that you can learn quicker and in a more organized fashion.