You'll find that programs are more predictable than mechanical systems, but also less fault-tolerant
An additional improvement over mechanical design seems to be a quicker and more reliable feedback loop. For example, I used to do a lot of stress analysis on turbine blades. I never really knew if I got the answer right. I just had to have confidence in my calculations and my use of the FEA software. Once the part became reality, which could take nearly a year, no news was good news. As long as the thing ran and didn't break, I knew I did my job well enough. I didn't know how close to the stress limits I was. I just knew that I must have been far enough away from the breaking point that it ran without issue.
I like programming because you can write bits of code, test them, and get instant feedback. If it doesn't do what you intended during a test run, you can tweak the code and run again. With Mechanical Engineering, you're more in the dark. Even with new product design, you can come up with conceptual designs but you don't know if it's going to work until you build a prototype and test it. It could be a looooonnnng time until the prototype is built and you get feedback on how your idea worked. By that time, the company has spent a lot of time and money on a prototype and testing procedures. If your idea fails, you look really bad and you can't really fix the failure on the spot. You have to face the music. At least that's my slant on it (with my limited knowledge of the real world of programming). If anyone feels I'm off in left field, let me know.