While many companies may use the term software engineer loosely (title inflation is quite prevalent in the tech industry), in the strict sense, the term computer programmer will encompass any position that involves programming whereas the term software engineer refers to a more disciplined practitioner of software development. Software engineer is a more prestigious title.
While certainly not necessary, a software engineer will often hold at least a bachelor's degree in computer science, computer engineering, or a related field. At many universities, software engineering is a graduate level degree. Unlike other engineering fields where it is often necessary to have a professional engineer (PE) license, it is rarely necessary for a software engineer; however, there is a PE licensing program for software engineering (although it's being discontinued for low enrollment).
A software engineer should embrace more disciplined engineering principles for planning, development, testing, deployment, and monitoring. Their practices should be repeatable and verifiable. A software engineer would be responsible for delivery of full applications or systems whereas a computer programmer might only participate in a small part of the system.
To me someone like a web developer who makes something like WordPress websites or an IT analyst who writes scripts for IT administration could be considered a computer programmer but not a software engineer. Coding bootcamps are advertising certification programs to become a software engineer; however, I would say there is some title inflation there. Usually those programs do not provide enough training for a graduate to fulfill all of the responsibilities of a software engineer out of the gate. He or she can get their foot in the door for a software engineer position, but they'll need lots more on-the-job training to truly get to the level of software engineer.
Matt Strom
Software Engineer, TypeScript ninja