Might sound silly, but "the drive to improve yourself" is the only thing, that made me improve my programming skill. Be it any profession, this is the only thing for us to move forward.
So with this thought in my mind, I did the below to improve myself!
1. Technology news sites.
Trust me, this is one of THE best decision. Before this, I used to be a user in a small forum, and I was stuck with Java. And I wasn't aware of other happenings regarding various new tools and technologies. But after I got into news stuff, it was a revelation. From that point, I didn't stop reading. Every day, I plan to learn one new technology name, or tools for that technologies. You don't have to learn it, but just having the preface will help you somewhere, somehow.
2. Open-Source
I won't call myself a open-source contributor and with the things going in my countries IT industry, I hardly have time to contribute. But I read all about them, visit their repo and check out the code. Even if I am not going to do anything, I would simply import the code and have a look at how they did things and I compare it with how I will do the same.
By reading codes from different developers, I'm sure one can improve his coding skills. I won't say the improvement will be over the top, but it is a gradual process and with patience, you will develop a better coding standard within short period of time. Without open source, I am sure I never would have used an dependency management in any of my projects.
Better would be, if possible, try to contribute. No matter how small it is, it will help us one way or another.
3. Discussion/Forums
Enrolling into various forums and discussion sites will be good idea. With a lot of people around, you have best chance to get a good idea about sharpening your skills and you may easily come across some of the best and worst codes.
4. POCs
It might sound stupid, but doing a simple POC. Be it any language, writing a couple of lines of code will give you the "you can do it" feeling, which is nice. Don't be arrogant once you finished up POC. Because with POC, we only touch the tiniest part of a big eco-system. But by doing this, we can learn a couple of things. a) How is this lang different from the one you use? b) It's pros and cons!
So this is what I did to improve myself yet still I have a lot to learn. In my opinion, I have a long way to become a good developer and I craft my skill everyday!