The first trick is to be able to describe how to solve a problem; and then break that description down into the smallest possible units and write it out such that there’s absolutely no possibility of a misunderstanding, no matter what conditions occur.
Once you’ve got that done, it’s fairly easy to learn how to translate it into a programming language.
Which is also why it helps, conversely, for reduction and rational thinking: The same skill that applies to formulating clear programs applies to formulating clear algorithms and concepts in any format, including thought.
The first trick is to be able to describe how to solve a problem; and then break that description down into the smallest possible units and write it out such that there’s absolutely no possibility of a misunderstanding, no matter what conditions occur.
Once you’ve got that done, it’s fairly easy to learn how to translate it into a programming language.
Which is also why it helps, conversely, for reduction and rational thinking: The same skill that applies to formulating clear programs applies to formulating clear algorithms and concepts in any format, including thought.