> If you’re a programmer, you might think that the fiddliness of programming is a special feature of programming, but really it’s that everything is fiddly, but you only notice the fiddliness when you’re new, and in programming you do new things more often.
I think I'm drawn to programming because the fiddliness is tractable, and fixable.
In which other domain can I:
* introspect the relevant processes/state, step by step
* snapshot/undo
* fix niggles, once and for all, and for everyone; and get their fixes too
* probe and test my inputs and outputs, checking for quality. Get notified if a part changes in a way that breaks me.
And the only tool I need is a commodity general purpose PC.
When I try woodwork, or even electronics, I'm struck by much friction is in even simple tasks: tools, parts, lead time, safety, space, physical effort, cost, ...
Unless you have endless budget, many things can be one-shot. You can't do a test run first, or roll back a cut if the length is too short. You can patch misplaced nail holes, or re-dig a hole (messing up filling a hole with concrete is another matter) and hope you don't kill a tree transplanting it, but the end result isn't clean.
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 taught me a lot about planning and design. As a young person, I was like the authors brother. I just wanted to do the thing, not draw a diagram and figure out how much wood I need, or build a fixture to mark the stair lines.
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.
Absolutely.
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.
That's also a lesson about what people will sell you. First time I went to a lumberyard, I was (coincidentally) with a friend who did a lot of woodwork. I thought, well, I've just paid for a pack of wood, I'll get it. The worker there was completely happy with that. My friend stopped me, and inspected each piece.
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.
They aren’t “knowingly selling you poor quality” as some sort of scam. They are selling you wood to the spec you asked for. If you want higher-grade wood, you either have to spend money getting lumber graded to a higher spec or spend the time going through piles of low-spec boards to find the good ones. Many engineered wood structures are designed to use “poor-quality” wood, and they prefer it because it’s cheaper than using less high-grade wood.
The thing is, other packs of the same wood to the same spec were better. We were able to sort through and get one graded/rated the same, but without problems.
I know about wood quality and I have deliberately bought higher and lower grade wood. But even so, quality varies greatly.
Yeah, that is correct. Sawmills often produce only one or two grades of wood and don’t do aggressive binning. That’s why the quality is so variable within the grade. There are also factors that affect the grade but don’t necessarily impact every application (eg warping and knots are sometimes ok), so the bins are coarse-grained.
The fiddliness isn't necessarily fixable though, at least in business code. The code has to represent the real-world, and if the real-world is fiddly then the code must be fiddly too. The only way to 'fix' this is to restrict your code's representation of the world to some non-fiddly sub-set, but this isn't always possible.
Until the next OS update...
With wood you are up against nature. With software you are up against corporations and comities.
> With wood you are up against nature.
You're up against your wood vendor. Anyone familiar with Home Depot "fresh from the tree" lumber has discovered this.
I think this is a very common sentiment among a lot of people, including me.
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.
https://news.ycombinator.com/item?id=46881264