I think a big reason I became interested in programming and computers in general, is the short feedback loop and lack of real consequences. Did the algorithm crash your computer? No problem, just start again. Need to fix a bug? Rewrite and run the program again. Want to try another solution? You got it. It’s what software was designed to do. The cost of altering it is practically zero.
I’ve worked with electronics before, and the same cannot be said about them. When learning, there’s always the risk of a short circuit, of damaging a sensitive component, and the effort of gathering all the materials and putting them together before powering the circuit. Need to add something else? The list of components and cost will increase. That doesn’t happen with computers. A decently powered laptop can go a long way.
Unlike software, hardware doesn’t have an undo button. Not only in the field of engineering, but almost in everything else. There’s always the risk of ruining a dish when cooking, of making a mess when trying watercolors for the first time, or breaking a bone when trying a new skateboard trick. Unlike software, hardware doesn’t forgive.
We have come up with tools that serve as a sort of undo button. Erasers, super glue, and insurance policies were created to revert, or at least lessen the damage done by our mistakes and errors. Of course, none of the completely erase our mistakes. The true undo button is a time machine.
Errare humanum est. There are philosophies that embrace errors as part of the creative and learning process. A world without errors would probably be boring. Nothing worth loving isn’t askew. Sometimes, some actions are truly irreversible, and we must learn to live with the consequences, hoping that the painful lessons will help us not to repeat the same mistakes.