Newton had something to say about people who merely work with things from a mechanical/physical/empirical point of view, versus those who operate on abstracted models, and who are good at finding their own errors, correcting them, and using reasoning to overcome varied situations and problems.
Newton was aiming for a dynamic and vigorous type of understanding, not merely static "pattern recognition". When we talk about "pattern recognition", it is merely learning from what has been taught before or seen/learned before. There is no progress into higher reasoning/organisation. Perhaps words such as insight and creativity point at his intent more accurately, in the present day world. He seems to be batting for a sort of energetic reorganisation and enhancement of mental representations in an ongoing basis.
“A Vulgar Mechanick can practice what he has been taught or seen done, but if he is in an error he knows not how to find it out and correct it, and if you put him out of his road he is at a stand. Whereas he that is able to reason nimbly and judiciously about figure, force, and motion, is never at rest till he gets over every rub.
-- Isaac Newton (from a letter dated 25 May, 1694)”
In summary, Newton seems to have valued the following problem-solving traits:
- Awareness: Continuously look for errors in one's work (in the process or product or oneself)
- Self-correction: Once an error is found, fix it as quickly as possible
- Resourceful: Take on new and never-before-seen problems; challenge and train oneself to handle the unknown
- Reasoning: Abstract the problem/situation, and reason (1) quickly and efficiently (2) using refined judgement to cut through problems
- Persistence: Put active and relentless efforts until every single obstacle is cleared
Given my association with the field of software engineering for quite a few years now, I wonder:
- What would Newton say about the breed of engineers who build software?
- How would I practice engineering differently, if I were to take Newton's values to heart?
- What potential benefits and drawbacks may arise if one were to take these values seriously?
- Given the vast field of software engineering, which "views" or "subfields" would pass Newton's filters and gain his approval (or at least avoid his condemnation :) )