Ultimately, programming and software engineering are the same thing
Not at all. This isn't some elitist "I'm not a programmer" kind of thing. I am a programmer, but that ability is a subset of my abilities as a software engineer.
Programming is the ability to instruct a computer to perform actions.
A programmer is someone who has this skill.
Software engineering is a superset of programming. It includes the abilities of a programmers, plus the skills, the ethos, and the discipline for all the other aspects of building software that are important. The discipline is the most difficult part (at least for me.)
The simplicity of those differences can be seen in the drudgery of commenting your code where appropriate (or, if you know that junior developers will be working in the codebase, documenting it thoroughly), and the complexity of those differences can be in recognizing that the architecture of your solution provides for 3rd party integration opportunities that may be of enormous value to your employer and yet require more work on your behalf because abstraction can also be drudgery.
This doesn't mean that there aren't people out there who consider themselves programmers, not software engineers, that don't have these skills - it means that that they are what would be technically considered a software engineer.
You can pick up a book on learning JavaScript in 24 hours and start programming and even refer to yourself as a programmer if you land a job doing so, but calling yourself a software engineer at that point is ridiculous. Heck, quite a few CS grads don't even appear to be able to call themselves programmers (they do so little of it in the course of their studies generally.)
An analogy, which in my obviously subjective opinion, describes this relationship would be a mechanic and a mechanical engineer. That is a rougher comparison than the differences between MOST programmers and software engineers, but it conveys the basis of what I mean.