11 ms·
Those are good distinctions. I'm a 13-year software engineer, and a 4-year part time finish carpenter. An important distinction that comes up for me a lot is t
by spenczar5 3y ago
Those are good distinctions. I'm a 13-year software engineer, and a 4-year part time finish carpenter.
An important distinction that comes up for me a lot is that it's much harder to fix mistakes with physical stuff. I can rapidly iterate on software, try stuff, see what works, play with a concept. But if I do that with wood and nails, I'm going to be in for trouble. Each idea costs material, and if it's a repair, there can be no going back. "Iterative development" really isn't a thing. This has gotten me in trouble - my instinct is to explore a problem, but I find that physical stuff requires more intellectual planning up-front, counterintuitively.
- cwalv 3y agoIMO this is the defining characteristic of software development. It's why I love it, and why the processes that support doing it well are different from other types of projects. I also think other disciplines will inevitably move more in this direction. Once things can be accurately modeled and tested with computers, the iteration cycle becomes similar. You do have to eventually build the "machine", but I think that will become more and more automated, sortof like a compiler.
- eternityforest 3y agoIf you do 3D printing, make furniture, or anything like that, you can sometimes carry over ideas from programming. Once you've built something yourself, you start seeing problems like "Oh, this assembly has multiple parts that all need to be done in place, how can I change it so I can build it all in the shop and just screw it in". But with software, we try as hard as we can to make it impossible to mess up. With physical goods, we seem to prefer things that can be messed up, things that only look good with expensive materials, etc. Things that by their existence, demonstrate the skill of the maker, and the wealth of the buyer. We don't really know what the limits of pocket screws joinery and cardboard tabletops are, because... nobody is trying to make something out of cardboard that lasts a century, they just assume it will be thrown away. With software, we start with the assumption that no programmer is up to the challenge, nobody will ever understand a large system, no user will ever be competent, etc, and figure out how to make amazing things anyway.
- dajtxx 3y agoMy hobby is model engineering and it's quite stressful when you're hours or days into a part and every new operation risks ruining it. Not only have you wasted that time and effort but also the material, and if you stuff it up you get to do it all again for no benefit at all - it's all cost and loss. Read a drawing wrong? Another chunk of time & metal wasted. It's a frustrating and expensive hobby. That's what I think is so great about software - almost nothing is irretrievable and even if it is it's not that big a deal to redo, other than for whoever paid you to make those mistakes! But software is also ephemeral and for all but a few of us it's hard to point to something and say 'I made that, it's works, and it's really cool' and have other people get it. When you drive off on the steam loco you just finished it has a bit more impact! Even my teenage son said "it's pretty cool to build something that moves under its own power".