Read books, not just websites.
Read for self-improvement, not just for the latest project.
Read about improving your trade, not just about the latest technology.
Some of the books listed here would be a good start: The most influential programming books of all time
2. Work With People Smarter Than Yourself
Working with smarter and/or more experienced developers will teach you a great deal.
3. Become a Polymath (or 'Jack-of-all-Trades')
Decide to be a 'Jack-of-all-Trades', allowing you to avoid becoming 'pigeon-holed' into one specialty, which can stagnate your programming skills, as well as hurt your future employment prospects.
4. Read and Document Other People's Code
Writing code is significantly easier than reading someone else's code and figuring out what it does.
5. Get Programming Experience on a Real Project
There is nothing like getting in and coding, especially under pressure - work on a real project, with real fickle customers, with real, ever-changing requirements and with real engineering problems.
6. Teach Others About Programming
This will force you to understand something at a completely different level, since you have to explain it to someone else.
7. Learn One New Programming Language Every Year
One year gives you enough time to get past the basics - it pushes you towards understanding what's beneficial in that language, and to be able to program in a style native to that language.
8. Complete One New Pet Project Every Year
Start a "pet" project and follow it to completion and delivery; a good pet project will push your boundaries and keep you interested.
9. Learn Assembly Language
Learning a low level language like assembly gives you insight into the way computers 'think' without any high-level abstractions; the elegance at this level is surprising.
10. See Your Application From the End User's Perspective
Interact with the end-user to see, through their eyes, how they use the software; end users are typically not technical, and they often see software as a magical piece of work, while you see software as a logical set of steps.
11. Start a Physical Exercise Program
You work a whole lot better when you're in good physical shape - problems become easier and less overwhelming, wasting time is much less of a temptation, you can think clearer, and working through things step by step doesn't seem an arduous task.
12. Learn Touch Typing
Learning to touch type is a quick and effective way to give your productivity a boost as a programmer.
Cross posted from: Dodgy Coder - How To Become a Better Programmer
Follow @dodgy_coder
Subscribe to posts via RSS