The big secret is really pretty straightforward. To get good at something, just start doing it at a difficulty level that feels easy, and then over time make it harder. That sounds obvious, and it is. The rare thing is just to do it. But it’s not rare because it’s at all difficult — really, it could hardly be easier.
This is the basic principle of self-improvement. This is the formula. All we need is this and time (and the patience to use that time), and everything is within reach.
This has a couple important corollaries.
If it’s not easy yet, you don’t have to make it harder. (You can if you want, if there’s a good reason, but just as a matter of course, you don’t need to. You’re making progress already, which you know because it isn’t easy and because you’re still doing it!)
Similarly, if it’s unpleasantly difficult, you might even want to make it a bit less difficult, unless there is a strong justification for making it unpleasant. Generally, if we are patient and look to the long game rather than searching for quick progress, we’ll get farther in the long run. There’s no shame in pursuing our goals intelligently.
And if it’s neither easy nor hard — that is, if you know you should do it and just haven’t yet begun — then get started, and first of all figure out how to make it easy. Always start with easy. Once easy is established, start ratcheting up the difficulty, one notch at a time, slowly, until it begins to press out of the comfort zone. Then stay there, until it’s feeing easy again, and then repeat.
That’s all it takes.