show/hide this revision's text 1 [made Community Wiki]

I usually feel that I best understand a construction (versus a proof) when I can successfully implement it in code (note that this is not to say the converse: that I wouldn't understand something I hadn't coded). I have found in practice that programming causes you to confront details and highlights phenomena that would often otherwise be quite obscure or even "deep". The best things about this are the lack of ambiguity about whether or not code works and the ability to isolate bugs and highlight areas of the construction that are still (perhaps unexpectedly) unclear.