Comment by farfatched
4 days ago
> 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.
4 replies →
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.
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.
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