Beginners and experts (Batchelder blog post)

Gregory Ewing greg.ewing at canterbury.ac.nz
Fri Sep 29 01:28:42 EDT 2017


Chris Angelico wrote:
> finding the bug is basically searching
> through a problem space of all things that could potentially cause
> this symptom. A novice could accidentally stumble onto the right
> solution to a tricky bug, or an expert could search a thousand other
> things and only get to the true cause after a long time.

What I think is more important than how *long* it takes is
*how* they go about finding the bug.

A novice will make wild guesses about what might be wrong
and make random changes to the program in the hope of
making it work. An experienced programmer will conduct
a series of carefully-designed experiments to narrow
down the cause.

A result of this is that a true expert will never have
to try a thousand possibilities. He will be able to
search a space of N possible causes in O(log N) operations.

This doesn't necessarily translate into time, because
in some situations the experiments can be very time-
consuming to perform. But other things being equal,
the expert's bug-finding algorithm is faster than the
novice's.
-- 
Greg



More information about the Python-list mailing list