Several people at React Conf asked me for advice on becoming a better programmer you should know.
1. Know real world, and code frequently.
Always try to go one layer deeper into the most important concepts. If your basic concepts are strong then you can solve complex problems by breaking it into smaller problems. Your code should be neat and well structured, so that if you start working with the code after few months then you can easily know where you left off.
2. Don't devalue your work.
There are many awesome websites like codechef.com, topcoder.com, etc where you can practice. Your work is worthwhile, no matter what. In the worst case, if your idea doesn't work out, the community will have learned better why that approach doesn't make sense. There are plenty of ways for practicing, like you can solve problems from good programming books or find online programming contests.
3. Be Amenable to Change.
It's valuable to learn how to read academic papers. I don't know anything about denotational/operational/etc semantics so there are a lot of papers I can't read. For becoming a better programmer you should always engage yourself in learning new things.
4. Take on big projects. Get uncomfortable.
The more you read, the more you learn. Just trying to tackle something like writing a compiler will teach you tons in the first few weeks. The best way for reading and learning programming is to join various programming forums and contests.