Software engineering covers the full lifecycle of software development including planning, designing, coding, testing, and maintenance. Programming is mainly the act of writing code.
Software engineering involves activities related to software creation and maintenance. Manufacturing hardware is outside its scope.
Programmers mainly write and debug code. Software engineers plan the project, ensure quality, and oversee delivery.
Software engineering projects are often large and involve many people, so a structured process helps manage complexity and teamwork. Simple programming tasks may not need this.
Software engineering aims to build software that works well over time and can be maintained. Programming is the act of writing code to solve problems.