On Fri, Sep 29, 2017 at 3:28 PM, Gregory Ewing <greg.ew...@canterbury.ac.nz> wrote: > 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.
This is very true, which is part of why I said that in programming, it takes one to know one - to observe a candidate and determine his/her experimental technique, you basically need to yourself be a programmer. ChrisA -- https://mail.python.org/mailman/listinfo/python-list