Software is pretty complex and hard to explain to people. Concepts are abstract, changes are incremental and it's never really "done". Even if part of it is beautiful, in some short time it'll be outdated and replaced by something else.
Woodworking, on the contrary, is something concrete I can touch and hold on my hand. It has practical uses, people can appreciate it and judge its form and function. If done even moderately right it'll last many years or decades.
It's really rewarding to be able to point at something you've done yourself, mistakes and all, and see it in daily use. The feeling lasts a whole lot longer than "I've refactored this class into something better".
In (fine) woodworking, making a mistake is far more punishing. You have a blueprint, not a puzzle. The work is as much physical as it is mental. The challenge is in setting up and executing a series of cuts, shapings, sandings, and finishings with perfect precision. There are few correctable mistakes: material can be removed but never added, joinery must mate perfectly else it's useless, blemishes in the finish are extremely difficult to remedy, etc.
I think a lot of coders tend to be perfectionists, wanting to be certain that their end product generates correct results and irritated to the point of obsession when it doesn't. I think fine woodworking feeds into that same perfectionist drive, and in an even more challenging way.
Tim Ewald - Clojure: Programming with Hand Tools https://www.youtube.com/watch?v=ShEez0JkOFw