All programming is UI programming
Whethere you're building a mobile app, a CLI tool, a REST API, or an SDK, you're building a UI, and you should consider the user of your code.These days it seems a lot of people believe that “UI programming” is a special skill that not everyone has.
If what they really mean is that “GUI programming” is a special skill, they might be right. I’ve certainly dabbled in various forms of GUI programming (mostly, but not excluslively, web-based).
“Okay, but who uses non-graphical UIs these days?” you may be thinking.
Well. You do. All the time :)
A UI is how your software interfaces with the user. Who’s the user?
Whoever uses the code.
If you’re building a REST API, then the request paths, and HTTP methods and status codes are the UI.
If you’re building an SDK, then the function names and argumenst are the UI.
If you’re building a CLI tool, then the CLI is the UI.
Each of these types of programming relies on a different set of UI-related skills, but the important thing is to remember that they are all UIs of a sort. And therefore, they all deserve keeping your user in mind, as you’re coding.