How to become a better programmer
codelathe.com
codelathe.com
I learnt a ton of stuff about programming when modifying the code of the linux kernel for an Operating Systems course. Fixing bugs in a huge code base requires inherent understanding of where things are in the code and how they are connected. And it's during that process that you gain an understanding of how to handle complex things : by making them simple.
But sometimes, I have also seen that even when exposed to great code, it might not be evident to someone that it is truly great, without the accompanying commentary by a programmer on why it is great.
Right now I do reporting (sql, vbscript and perl). I want to get in to database administration and C#. I am starting on my own, but there is nobody here to consult with or learn from. Am I lost?
The other way is maybe to get into open source dev. You will interact with a lot of folks.
"Work in a shop that QA's the source code by people who know what they're doing." This would be in addition to User Acceptance Testing.
The first program I submitted in a shop like this was rejected for 38 reasons. Some were shop standards, but many requirements where I thought "I knew better". I didn't. And I've been a much better programmer ever since.
Of course if you work in a shop like that, it's advisable to leave. And I did.
Needless to say, the company didn't go far.
Yep, that's one of the 38 reasons for my original rejection. Violations of "single entry/single exit" were not promoted into production. I argued and lost. Now I'm glad I did.
Enforcing discipline for the sake of enforcing discipline? See military.
It's also worth noting that code reviews should be two-way streets--that is, more junior programmers should review more senior programmers' code, even if for nothing more than a learning experience.
It will allow you to see if this chunk of codes work, and if it does, you can learn from it, improve it or give it back to others.