I think you should keep in mind that the distinction you make between "programming" and "coding" is not shared by most programmers. I acknowledge that the things you're describing exist, and are distinct, but those are not the words I use for them. To me, "programming" and "coding" are synonymous. I point this out because you may run into confusion if you discuss these concepts with others, and rely on using your own words.