It's sad to put it this way but some "software engineers" roles are essentially like bricklayers: a bricklayer is expected to know how to best lay a brick given the circumstances, or to come up with new techniques to lay bricks faster and better, but they don't need a civil engineering degree to do it.
Other software engineering roles do involve a fair bit of creativity though, e.g. architects (designing the structures), computer scientists (study how to make better bricks), and perhaps also project managers (coordinate brick laying and manage bricklayers).