Programming is about learning to think like a computer. The languages are very small compared to those we speak, so that’s not the challenge. The challenge is learning to think like a very dumb machine. To do that, you need to have a lot of conversations with the machine. You have to learn how it thinks and give it a chance to dumb you down. That means feeding it code and learning to interpret those cryptic error messages.