All "programming" really is, is formulating what you want done precisely. A compiler can take it from there. Where a specialist in "computers" comes in, is he can optimize your algorithms to run more efficiently. But in more cases than not, what "programmers" are tasked with, is to "just make it work", with little more specificity than that. And then the garbage inputer gets upset because he gets garbage back out.
SQL was originally, back when clarity of thought was still considered fashionable in executive suites, intended to be used by decision makers. "Specialist" IBM "programmers" provided the code that accessed and processed the relevant records efficiently, but the person who wanted an answer, often a C level, was the one tasked with specifying what he wanted done. With enough precision that his question made sense.