There is a prevalent myth that some people are “natural born programmers” to whom programming comes easily. This is a dangerous idea, because of its corollary - the idea that “some people simply aren’t able to learn programming.” If you embrace these related ideas, you will find yourself wondering to which set you actually belong.
The truth is that in learning to program, we are learning to solve problems in a way that can be performed by a computing machine. Think back to your introductory computer science course - you may have been asked to give instructions to the professor or a peer to perform a task. Shuffling cards, for example, or making a peanut butter sandwich, as in the following video from the Darnit family:
The point of this exercise is to understand the exactitude or precision with which programs must be written. But it also reveals just how different people are from computers. The simple truth is that to become good programmers, we must learn to write programs by developing an understanding of how the computers work, as well as how to express instructions in a form they can use.
The rest of this chapter is devoted to understanding that learning process.