Can we become better programmers through studying code?
To help myself and others understand better the qualities of good code and deficiencies of a bad one, I have started a new blog called Wonders of Code. The question is, is this something that can trully help us improve our understanding and thus skills?<p>The idea is to take a piece of code, point out some noteworthy improvement opportunities - preferably in relation to the general principles of clean code, such as DRY, SRP, readability etc. - and rewrite it in a (presumbely) better way and explain the new qualities.<p>You might want to check out some of the 3+1 code studies already published at WoC to see what I mean: http://wondersofcode.wordpress.com/.<p>I have two questions:<p>1) Is this something worth doing, something that can really help us - and especially the juniors among us - become better programmers faster?
2) Do you have any tips and ideas for how to make it better and more effective?<p>Thank you!
8 comments
[ 3.0 ms ] story [ 30.1 ms ] threadThe way I learned how to code was to play with pre-written pieces of code myself.
1. I would say to myself... I want to see if I can write a loop to print out a message.
2. Then I would go and google for the code.
3. Copy and paste it into my own file, and change it to do what I want.
I'm willing to bet that most of the hackers on HN learned how to code this way. That's why we call ourselves hackers right?
I guess this is similar to your approach but in a more controlled environment?
I guess you would need to come up with some sort of metric to measure how much 'better' one solution is over another. A crude example which I've seen is the number of lines. To me that just shows how elegant the code is, but as you know it does not necessarily mean it will execute faster.
Also this kind of "learning" is very useful in the future - you can understand other people's code faster or recognize problems by looking at the code.
I think your idea is worth doing and I would encourage you to keep working on it; I am sure I will recommend it to my friends too.