My answer: to an extent. Broadly speaking, software engineers do _basically_ the same thing that "real" engineers do - learning patterns and applying the useful/applicable pieces to the problem at hand.
The fundamental difference that separates software engineers from the rest is the consequence of failure and the culture of caution that comes with it.
If you're working on (non-embedded) software and you ship broken code to prod, chances are your consequences range from embarrassment and some angry emails on one end to a major financial loss at worst. With most other engineering disciplines, the cost of a screw-up _starts_ with a major financial loss and worst case? Honestly the sky is the limit. Fatalities, environmental ruination, loss of critical infrastructure, you name it - there are enough case studies on industrial horror shows to keep you up for the rest of your life, and in engineering school we had to read a lot of them.