A motivated student of GoEast Mandarin and Product Marketing Manager for a Fortune 500 company. Erica's Chinese is level HSK4, she speaks English and a bit of French. As for programming languages, she knows matlab, c/c++/c#, MySQL, python, and labview (if you count that as a language).
I am a citizen of the world, I have lived in 7 countries and speak 4 languages fluently. I have been in China for 10 years.
Which programming languages do you use?
And how long have you studied Chinese?
Filiberto: I use Python, Ruby, JS and HTML/CSS. Been in China for about 10 years so 10 years and keep studying!!
Do you think learning Mandarin and learning a programming language is similar?
Filiberto: Not similar to the process of language assimilation is very different. I speak 4 languages fluently and learning a language is a very deep-rooted neurological process. Learning a programming language in my experience resides and utilizes a lower neurological plane and is more comparative of learning a skill (other than language). In my experience similarities are limited to the extent that both follow rules and structures (grammar) and a degree of abstract representation.
Audrey: I think there are definitely some similarities. Both feel very foreign at the beginning, Mandarin especially if you are a Latin language speaker, but there is definitely a turning point where you start to understand the logic of the language and start to be able to pick it up exponentially quick.Filiberto: Yes, compartmentalization. If a learner is able to effectively create language silos it indicates a degree of skill mastery. Neurologically this means the brain is constrained to a single set of rules, structure, and vocabulary thus limiting cross translation/contamination (i.e: transfer of logic applied to one language to another!)
Ben: Coding is more intimidating because a simple mistake can break everything, whereas knowing just a few words in a spoken language is enough to get positive feedback. Learning a language is a horizontal experience whereas learning coding is more vertical: you can open a dictionary, choose a random word and try to use it in a conversation straightaway. But you cannot learn to code unless you build on top of things you already know: if you want to try to use a resolver, you first need to learn what a service, an injection and a class are.
Erica: In terms of differences, I feel the grammar syntax of mandarin only gets harder the more advanced you get whereas, in programming languages, I feel personally that as you become more experienced the syntax becomes easier because you can quickly notice common faults. The largest difference is, of course, you don’t have to pronounce or listen to programming languages and the alphabet when it comes to programming is significantly smaller and more flexible in terms of naming things like variables and programs.The other big difference I feel that exists comes in terms of the thought process. This difference might be a cultural difference though. In programming, you typically will think through the whole process/activity and flow chart it out before you actually write any code. With mandarin, I personally find that I write/speak at the same time. I think this is a cultural thing though because Americans typically use speech as a way to think through processes, ideas. I’ve found my Chinese colleagues often think more before speaking.
Do Mandarin speakers program differently?
Filiberto: No idea, but I would hypothesize there is a degree of logical interference as there would be for any language. But the foundations of all computer languages over time are essentially unchanged. Computers' cognitive abilities are limited to 0 and 1 and infinite possibilities in between. Everything is false or true to a varying degree thus computer programmers frame their programs as a set of conditional statements based on a “known” value. Languages and culture have a much vaster degree of ambiguity.
When you’re learning a new language, the goal is always to be able to do something useful with it, right? It might be to hold a fluent conversation with someone or to travel to that country. Learning to code should be the same way. Find your ultimate goal of learning and pick one language to start!