2 ms·
Rather the opposite, I'd say. Software is deterministic and quite easy to reason about. It either works, or it doesn't. Hardware relies on actual physics, and
by crote 3y ago
Rather the opposite, I'd say.
Software is deterministic and quite easy to reason about. It either works, or it doesn't. Hardware relies on actual physics, and even minute changes can be the difference between working perfectly fine and not working at all.
A lot of hardware design is based on rules-of-thumb and institutional knowledge. Learning those as a hobbyist is incredibly difficult, and most of the time you essentially end up cargo culting what everyone else is doing - and there is no guarantee that everyone else is doing the right thing either! It is really easy to end up wasting hundreds if not thousands of dollars like this.
This is exactly why companies like Adafruit have become so big. They take care of all the hard part, and provide the hobbyists with essentially a bunch of lego bricks which neatly click together. The only thing you have to do yourself is... the software.
- jacquesm 3y agoI've never spent as much time on hardware bugs as I've spent on software bugs. If the software you've worked on is 'easy to reason about' then you've led a charmed life! That's probably also why all software is 'bug free' ;) But seriously: both software and hardware have their unique challenges. But those can be overcome and just like software hardware can be 'unit tested' by breaking down circuitry into manageable chunks. Adafruit is a success simply because they fill a need: the ability to create bespoke gadgets without investing lot of $ or learning a new skill. The market to programmers, not to hardware people, though I'm sure there is some overlap as well due to the convenience. But those skills are not substantially harder than software skills, they are just different. I'm kind of lucky: I got into software through hardware rather than the other way around. To me software was an infinite parts budget (bounded by RAM limitations, usually). Hardware was a running expense, computing a one-time expense (or so I thought, hah!). So I simply got more mileage out of my pocket money and Saturday job earnings by saving for a computer rather than by spending it on various hardware components.