My industrial experience agrees strongly with Thomas Green's argument.
The best programmers from my point of view are the ones who produce the best problem
solutions, not the most code. This seems to be strongly associated with experience.
The person whom I regard as the best programmer on our team almost invariably begins a
discussion of how to implement a new requirement with "well, on the xxx project we did
it this way because ... and we encountered this kind of problem." He also frequently
reuses old programs to produce new ones - "I took
the program I wrote to do N and modified the input so that it now does M."
Reusing other people's code also seems to be the way this person learns new techniques
- "I took the example from the tutorial and I...."
What I find no evidence for is that he sits and passively studies existing programs.
(Then, again, I don't think chess masters do that either; the two I've known studied
the games with the board in front of them and tried to figure out WHY the moves were
made - it wasn't a passive process. Perhaps, if chess players were paid high salaries
to play 50 hours a week and were constantly offered opportunities to play their last
game over, against a similar opponent, they wouldn't need thick books either.)
While I have no doubt that all really good programmers make extensive use of their
experience, it also clear that experience per se doesn't produce good programmers.
(Just spending time studying chess books won't automatically make you a grand master
either.) Some conjectures:
1. Really good programmers have broader experience than less good ones. They've been
on more different kinds of projects or had more different responsibilities than less
good ones who have spent an equivalent amount of time in the field.
2. Really good programmers are more reflective than less good programmers. They are
more likely to think about and evaluate their own work.
3. (Varient on 2) Really good programmers have had more opportunity to receive
feedback on what they've done. They've been in situations in which they could see
what happened to code they wrote so they have a better idea of what does and doesn't
work in the long term.
Ruven Brooks
- Automatic footer for [EMAIL PROTECTED] ----------------------------------
To unsubscribe from this list, mail [EMAIL PROTECTED] unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED] help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]