A professor in college had two terms: microprogramming and macroprogramming.
Microprogramming was the kind of thing where you're trying to, for example, cut down an assembly loop to run in 6 cycles rather than 8, design a numerical algorithm, an operating system scheduler, or similar. This is very mathematical in style of thinking.
Macroprogramming is what happens when you write a database-backed web application, for example. It's much more linguistic. It's about understanding other people's code, writing your code to be understood, and gluing a lot of stuff together.
Both have their place. Macroprogramming is taking over now, but I enjoy microprogramming more.