I've often told people that programming is like woodworking:
- jigs are like functions
- stops are like constants
- experience teaches you the order of operations, how things fit together
- woodworkers build a lot of their own tools
- custom tools are usually made by same stuff the products are
- both spend time optimizing their workflow
- wood is quite soft, like software!
Jigs (and power tools that use them) are like co-pilot! I love my hand-tools. I know inevitably it's all on the way out, but I like the hand tools more!
experience teaches you the order of operations, how things fit together
This is how we can still "beat" co-pilot enabled juniors! You can actually understand the whole system and direct an army of juniors!
woodworkers build a lot of their own tools
Only if you consider jigs your tool(s). I find that this is not actually the fun part of woodworking. Building a workbench from 2x4s from nothing (well, an old ikea table - or sawhorses w/ a sheet of plywood on top), glue to laminate and some 50+ year old plane from Ebay that took a week+ to de-rust and sharpen and handsaws that needed re-sharpening and de-rusting was very satisfying!
custom tools are usually made by same stuff the products are
Yesssssir!
both spend time optimizing their workflow
Absolutely!
wood is quite soft, like software!
It's amazing how hard it can be to work those cheap 2x4s when you're learning. You kinda don't want to use proper hardwood (-ware) for fear of destroying (bricking) something not so cheap!
https://github.com/commaai/openpilot/blob/a8ec08e5bbc2be0a32...