One of the keys to improving is getting a good practice partner. Usually these are two players who are roughly the same level. But it's more important that they both want to improve, are willing to work together, and are regular to train on a regular basis. The more they train together the more used to each other they get, and the better each plays in these drills. This leads to both players' levels escalating up – an upward spiral to excellence! (Here's my article on How to Play and Practice with Weaker Players.)
I want to emphasize how much better you play when you drill with someone regularly – you get used to their shots, and your own shots become more and more natural and consistent, as well as more powerful. Some might think this is artificial, since you are playing against the same player and shots, which isn't what happens in tournaments or leagues. But the key is how much this type of drilling develops your foundation. (This doesn’t mean you only practice with one player, but if you are able to practice with multiple players, the more you hit with them the better you’ll drill with them.)
Players still need to practice with and play others with different styles, especially matches – that's imperative - but drilling with a good partner (or partners) develops the foundation that's so important to developing your game.
Once you find someone to train with regularly, take turns with the drills. But remember that in any drill, both players are doing the drill. If one player is doing a footwork drill to the other's block, then the other is doing a blocking drill. Players not only need to learn to move and attack, but also to control an opponent's shots. And remember even blocking is a footwork drill – you need to step to the ball, not just reach.
Don't forget to get a box of balls and do some multiball training! (Here's my article on Multiball Training.) Multiball training makes up about 1/3 of the training of world-class players.