A buddy of mine has been learning to program for the last couple of months. He was struggling the other week and came to me for some help. While we were stepping through a program he was writing for an assignment we got to talking about the experience of learning how to code. He said what most people say: “It’s like learning Russian or French. In time it will all start to click”. I agreed and we moved on.
Thinking back on that exchange I was wrong. Yes it will all start to click. But learning to program is not at all like learning a new communication language. It’s far more complicated. Learning a new language to communicate is rather straightforward, you know what you want to say. You just don’t know how to say it.
When you’re learning your first programming language you don’t know what you want to say or how to say it. An equivalent communication analogy would be learning a new language and writing a novel in that new language at the same time.
Picking up additional programming languages is much easier once you have your first down. You’ve solved the how. It’s only once we get to this point that we can safely say: “It’s like learning Russian or French. In time it will all start to click”.