If I look back at my careers there are many ways I have tried to improve my coding skill : reading other's code, writing various programs, reading popular books, listening to many podcasts, watching screencasts and more.
My question is: What is the most effective thing you have done to improve your programming skills? What would you recommend to others that want to improve?
Expecting different answers here and no single "one size fits all" answer - What worked for different people?
Program a lot. Buy books and do exercises from them. Read from sites like Hashnode, stackoverflow and MDN to get ideas, formulate solutions to problems and/or establish best practice :)
The one thing i could talk about was when i read a particular book on PHP from sitepoint. That shape my whole mentality on PHP and server side programing in general. From the examples on that book i went on to build a mini blog, listing site, and a twitter like site for my co-friends and am still building things
To add on to the other posts, one thing that really helped me master my craft was being active on Q&A sites, and participating as much as possible in the stacks I was interested in. Even if I wasn't directly answering questions, I would at least read and go through questions and see how they were resolved.
Besides coding coding coding coding, and writing code, I would say this is one of the biggest things that helped advance my knowledge of dev work.
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!
Ben Buchanan (200ok)
I make some bits of the web.
Hard to say. The things I think made the biggest difference:
If any one thing made the biggest difference it's probably learning more than one language. You need to be confident you can learn the next thing and not wait around, stagnating in your comfort zone.