4 ms·
In my experience, it's easy to be hand-wavy about the details of algorithms without even realizing it. Programming forces a level of rigorous thinking and, impo
by jgwil2 6y ago
In my experience, it's easy to be hand-wavy about the details of algorithms without even realizing it. Programming forces a level of rigorous thinking and, importantly, allows you to get feedback from the machine.
A recent example I went through as an exercise was writing a regular expression engine. I understood the desired behavior and the theory of finite automata (or thought I did) but in programming it I was forced again and again to review the concepts and proofs in a very detailed and rigorous fashion.
One last thing I would add is that I agree that language- or machine- specific details can get in the way of high-level understanding; this may be inevitable to a certain extent but choosing a language that fits the abstraction level of the problem helps a lot.