Habits of highly mathematical people
Yeah, if we remove every mention of mathematics to make it less "elitist", then one could notice a few nice things, such as justification behind some TTD practices (writing down examples and counter examples to come up with more refined definition), healthy obsession with precise usage of words (plus not mentioned but important - to use as less of them as possible - just enough), and that, basically, the whole process is a heuristic search, so a "wrong" is nothing but merely an empty branch of the search process, not a "failure" - so, just accept it and backtrack. The need of assertions and tests (proofs) is obvious. And the ladder of abstractions is the very same notion of layers of composable abstractions, where each layer is a "language" and building blocks for a layer above, which was popularized by the on SICP and On Lisp books.<p>This, by the way, is also the answer to that question "do we need to study math for programming". Discipline in the use of ones own mind is what is required.