Programming has a more specific meaning than coding, which is referring to programming language, a formal constructed language to make instructions to be executed by computers.
While coding has much broader meaning, including cryptography (a procedure to transform a message that will hide the meaning), information theory (a procedure of representing data in a way so the data can be delivered efficiently and be easier to recover from errors) – instead of coding as making instructions for computer to execute.
ProCodeCG is use the term programming for writing computer software using programming language, and the term coding more specific purpose or activity related to cryptography or information theory.
Programming and coding has slightly different philosophy. Programming, a skill of writing computer programs, requires knowledge of computer hardware and architectures. Not on every level though, since a high programming language does not require the cryptic details of what is going under the hood (of a computer). So the philosophy of programming is how to give instructions to computer effectively.
Coding, is more about transforming data representations, without specifically referring to computers. The philosophy of coding is how to transform data into a representation that can be used efficiently for a particular purpose.
This definitions is used as a guide for ProCodeCG to develop the curriculum for kids. In our curriculum, teaching programming for kids might includes some visual approaches but later they have to transform their visual and abstract understanding into concrete written sequence of instructions. Because that is the way for them to understand the nature of programming.
Because programming/coding is about writing and not about dragging pictures.