| My experience with written/spoken languages vs programming languages has been vastly different. In my early 20s I picked up enough Spanish working in a restaurant to have conversations about simple topics/small talk, including native speakers at family dinners. Not much effort. In my late 20s using Anki (SRS) I learned enough Russian to mostly understand radio broadcasts and television, but I never practiced speaking. In my mid-to-late 30s I started learning Korean also using Anki, and it has been a grinding and slow process. After many months of on again/off again studying, I can pick out some words and use context to maybe understand what is being spoken. Obviously the curve has gotten a bit steeper with each language being further away from English, but definitely a salient reminder about the ability to learn new languages with age. Programming languages on the other hand have been a much different experience, not nearly as difficult to pick up. I haven't considered exactly why it's so different until now. |
Well, general purpose, procedural, imperative languages -- the first programming languages we typically learn -- are all essentially the same. In many ways, they're all re-imaginings of Fortran, COBOL, Pascal, ALGOL, BASIC and C. They're really different dialects that express ideas in basically the same ways. All languages that derive from this family work in essentially the same ways. Sure, they have different features, syntax, abstractions, paradigms, etc., but Python, Go, Rust, C#, Java and JavaScript are all essentially the same way of thinking and express things in nearly the same ways.
When you start to work with languages that increasingly deviate from that common general purpose, procedural, imperative paradigm, you start to see people struggle. That's when you're actually learning a different language. Established programmers have a notoriously difficult time picking up declared languages like SQL and XSLT, for example, and domain-specific languages like LaTeX can give others difficulty, while functional languages like Lisp seem to be either something you love or hate.