Defending the Python lanuage...

Cliff Wells logiplexsoftware at earthlink.net
Mon Feb 4 12:09:52 EST 2002


On Mon, 4 Feb 2002 08:42:58 +1100
Peter Milliken wrote:

> G'Day Cliff,

Peter =)

> > I much prefer the "continuous ongoing code review" idea better than a
> > formalized procedure (if I understand what you mean by it correctly).
> > Working in pairs provides this as a side-effect rather than having a
> formal
> > procedure for code-review and seems less time-consuming overall.
> >
> 
> Not sure what you mean by "continuous ongoing code review". I used to be
a
> "team leader", I have "looked after" groups of programmers between 1985
and
> 2000, bitter experience taught me to "review early and often" i.e.
diivide
> the programmer's work in small units and as each unit is completed review
> it - never, ever, ever let the stuff build up to the point where after an
> unfavourble review you are faced with the decision to either miss
schedule
> because it should be re-written or forge ahead regardless and hope that
it
> will come good through some miracle of extra effort on some ones part
:-).
> There are so many what I will class as "poor" programmers in the
industry,
> that this is a necessary technique when you have to "manage" other
> programmers. So I assume that "continuous ongoing code review" is similar
to
> my idea of "early and often"? :-)

I think so.  My personal experience in working closely with another
programmer was that we tended to write code appropriate for the other
person to read and often discussed approaches to coding problems.  After
discussions, prototype code was reviewed (informally) to see how our ideas
worked out, if there were shortcomings and the like.  We never had a
"formal" review, but since we were comfortable working with each other and
had much mutual respect, we were able to criticize and accept criticism
freely.

> >
> > Actually, when I say "art", I am using it in the sense of "skill", as
in
> > "martial art" or "art of design" versus the broader sense that includes
> > unrestrained personal interpretation.  In this sense "art" means taking
> > basic, established techniques and internalizing them to the point where
> > they are second-nature. At that point, personal expression becomes an
> > extension of those techniques - not a deviation from them.  My
experience
> > has been that programmers at this level feel a sense of pride and
personal
> > accomplishment and _appreciate_ code review (otherwise, who will ever
see
> > and appreciate their accomplishment?).  I suspect this to be a major
> > driving force behind open-source software - it's the equivalent of a
> public
> > demonstration of one's skills.
> >
> 
> I think you are correct about the open source motivation etc, but in any
> typical project/company I have worked for, it is *relatively* rare to
find
> people who welcome a review of their code. The people you find in Open
> Source stuff are the people who view programming as a "joy" (hobby)
rather
> than a "job". These people, in my experience, tend to be better
programmers
> (probably because they really do "care" and have pride in their work?
:-)).
> But the majority of people I have worked with over the years forget about
> programming the minute they step out the corporate doors, it is nothing
more
> than a job to them - very sad :-). These people tend to be the people who
> view their work as "Art" rather than increasing their skills as an "art"
:-)
> They do no external reading, they are not interested in seeing how other
> people have solved similar problems etc etc.

People who don't enjoy their work inevitably suck at it.  This is
undoubtedly a factor in why it is not uncommon to find that a self-taught
programmer is often quite superior to someone who actually obtained a
degree in CS.  It seems that quite often people are drawn to a field
because that field is in vogue and looks to be financially rewarding, so
they get a degree in that field, but to them it's simply a job (of course
this does not apply to the majority of people pursuing degrees, but it is
not uncommon), whereas a self-taught individual usually becomes proficient
because they are deeply interested in the subject.

Of course, the ideal programmer is the self-taught individual who later
goes to college to raise their level of skill.

-- 
Cliff Wells, Software Engineer
Logiplex Corporation (www.logiplex.net)
(503) 978-6726 x308  (800) 735-0555 x308

"Then with your new power you'll accomplish all sorts of cool stuff 
 in no time, and We'll All Be Sorry.  At that point you can either 
 gloat a bit, and then relent, or go ahead and send the robot army 
 after us." - Quinn Dunkan




More information about the Python-list mailing list