Like Elegance in Mathematics

A short accessible piece by Joe Morgan on the question of whether to teach coding to children has appeared in Slate. One of its themes is about cultivating an appreciation for quality.

Of course, getting something working is just the first step of building software. The next step is to make code clear, reusable, and neat. Once, early in my career, I wrote a feature and gave it to a senior developer for review. He took one look at my sloppy spacing, mismatched lines, and erratic naming conventions and just said, "Do it again." It was working. The syntax was valid. It was still wrong. Good coders don't just get something to work. They want it to be good.

That feeling of quality is the hardest thing for many developers to master. Well-designed code feels good to work with, and ugly code will make developers involuntarily cringe. The best developers learn to fuse abstract logic with the sensitivity of an artist. Learning to trust that aesthetic feeling is as much a part of development as any algorithm or coding pattern.
Keen sense of the apt anecdote. Like Zen tales.
My wife and I recently made sugar cookies with our son. [...] Every step—precisely measuring ingredients, gauging mixed dough for smoothness and consistency, placing precision cuts to minimize waste—taught him something about quality. It's hard to teach the difference between merely executing steps, such as following a recipe, and doing something well. It can only be passed on through feel and experience. And every time you involve your kids when you work on something you value, you are teaching them how to do things well. You are preparing them to write code.
Transferable skill. Attitude. Approach.


And so for day 2332