BlogJune 10, 2024

Programming, mathematics, and formulating the problem

Marcos Conci
I have been programming for a long time, and the more I learn about it, the more I notice its influence on how I think. Programming does not only have the power to solve problems. It has the power to formulate them — and that is the part I have come to value more. One of the most fundamental difficulties in any technical field is not answering a question. It is arriving at a question precise enough to be answered at all. Every problem must first be stated in a way that can be understood, decomposed, and acted on. A vague problem produces vague work. The practice of programming, like mathematics, forces a kind of mental discipline against that: you cannot write the function until you know what it takes and what it returns. You begin to break the whole into sequential steps, each of which either holds or does not. That discipline transfers. I use it on things that have nothing to do with code — when a process is failing and nobody can say precisely how, the first useful move is almost never a solution. It is a definition. I recommend the practice to anyone, not only because it is a large professional field, but because it is unusually good training for thinking clearly.
Share this post: