5 years ago, if I was told that I could run a blog, I would not have believed it. As a software engineer, I was spending more time designing and writing programs. However, a priori, nothing suggested that I could write good articles too.
In hindsight, I can say that these two activities have more similarities than differentiation points. When you write, you create, you fill a blank, you give life. Similarly, when you design a program, you create a system that will be used on a daily basis. So in both cases you need to deeply understand the reader or the user of your creation.
Putting yourself in their shoes leads you to imaginative and creative like a painter or a pianist. So, when I am asked about the fundamentals required to learn how to make good computer programs or software, I ask the interested party if he has ever written a letter, a short story, an article, etc. If the answer is "yes", then the person already has prerequisites to learn how to write programs. If not, they can still try to write a short story and assess their abilities to create or innovate.
Coding is just writing.
[Translated from a contribution by Jean-Patrick Ehouman]