Here are a few distinctions between both of them.
Software engineers typically work as part of a team, while programmers work independently and receive direction from software engineers.
Programmers are usually involved in one or partial life cycle of development. On the other hand, software engineers oversee a project from the start to the end.
Software engineers require formal training and extensive experience in the field. Contrary, programmers are commonly fluent in few programming languages and have less experience.
Did we miss out on anything?