Me personally, it all depends on what you already know and what you want.
Doing the course linearly is fine if you don’t exactly know what to learn and just let the course teach you the fundamentals; but, if you know some of the concepts already, feel free to skip.
But be sure to take a look at the challenges before skipping. For example, if you know React already, check the challenges for anything that’ll teach you something new about React.
It seems that you have a clear idea on what to learn so I think it’s okay to skip sections.
You can always go back to the skipped sections when needed eg if functional/oop requires understanding of the skipped sections.
I prefer to take them lineary, because you will build knowledge block by block.
and if you know something it will never take you a long time to finish the related challenges. and you will revise everything.
That is a good point. But I don’t want to skip the theory.