Whenever I finish a software project and return to electrical engineering, where I have to worry about parasitic capacitance, inductance, thermal noise, propagation delays, and pages of datasheets for something as simple as a single transistor, I realize how much easier and more satisfying electrical engineering is than programming, where I have to deal with truly unpredictable phenomena like libraries, APIs, and development environments so bloated they make Quartus and Vivado seem fast.<p>It turns out quantum mechanics and pages of empirical analysis are a plus, because they are well documented and everything behaves as expected. When I program, I spend more time reverse engineering other software, to try and make sense of the lacking, outdated, and often outright incorrect documentation than I spend writing my own software. I can't spend any extended period of time doing that and still keep my sanity.