I think there's a key difference that puts programming a bit further ahead in my opinion - you can make a backup with software. You can 'undo' what you've tried, or reset the whole thing. In general with physical things you can only move forwards, and potentially you can make things way more broken than they already are. That's a useful lesson in itself, but if people are learning it's good that they're not scared of making mistakes. It's a lot harder to make things catastrophically broken with code (despite my best efforts).