The best I could do with woodworking in the end to approximate programming was live with wasting some timber, leave a lot of margin on the main cuts and size all the pieces as a whole.
Woodworking (the more constructive, furniture-making kind), rewards a deliberate, controlled process and it savagely penalizes mistakes. Those lessons transfer well to other disciplines. I’d have been a much better student if I’d learned wood working in high school.
Woodworking was part of my first 3 years of high school, but it was mainly about learning safety and tool usage and not planning, estimating, selecting or purchasing timber.
These days I only want to go to the lumberyard once for a project. Learnt the hard way on my first project that you need to take the time to carefully select the timber - checking straightness, matching grain and also colour before I started. Major hassle and waste of time to have to go back to swap boards.
Sure enough, several had cracks at the ends, knots in poor places, and other things that, had I bought it, would have caused me trouble.
I can be a naive person in that I assume good faith. I would never knowingly sell something poor quality to someone else. I had assumed because I was being sold it, it was okay.
I know about wood quality and I have deliberately bought higher and lower grade wood. But even so, quality varies greatly.
With wood you are up against nature. With software you are up against corporations and comities.
You're up against your wood vendor. Anyone familiar with Home Depot "fresh from the tree" lumber has discovered this.
And also that’s why AI tools create mix reactions. A couple of months ago a post went viral which was really insightful on what I was originally drawn to cs.