Everyone is different. Speaking for myself, I never found books or tutorials useful. My mind simply balks at the prospect of doing exercises for the sake of it.
Instead what worked really well for me is to find a practical problem that I wanted to solve (maybe with the goal of making money from it). It turns out that just about any interesting project that you dream up for yourself will have aspects that are outside of your current knowledge/ability. Then as soon as you hit these parts start looking for reference materials, documentation or tutorials specifically related to this problem. Before you know it you're learning new stuff.
And the upshot of this approach is, that if you stick with it you may end up with a functional product at the end, which you can sell.
Also read other people's code. I find it really humbling to read well crafted code. It also motivates me to continue refining my own code.
And I'm the exact opposite. I love exercises. You should find what works for you and stick with it until it doesn't work for you! For a while, I would read a section out of a programming book, think to myself "Could I explain this better?", and if I could, I'd write an article. If I came across an exercise in a book, I'd think to myself "What if these requirements had to be met? What if this needs to be read in from a keyboard? A database?", and I'd expand the exercise into a full fledged project. Just do your best to keep yourself interested. Find a reason to stay excited.
Instead what worked really well for me is to find a practical problem that I wanted to solve (maybe with the goal of making money from it). It turns out that just about any interesting project that you dream up for yourself will have aspects that are outside of your current knowledge/ability. Then as soon as you hit these parts start looking for reference materials, documentation or tutorials specifically related to this problem. Before you know it you're learning new stuff.
And the upshot of this approach is, that if you stick with it you may end up with a functional product at the end, which you can sell.
Also read other people's code. I find it really humbling to read well crafted code. It also motivates me to continue refining my own code.