Over the past couple of weeks, I've been teaching my brother-in-law and his wife, JavaScript. They have never been exposed to programming of any sorts and have been interested to learn. The challenge hasn't been their lack of prior experience in programming, but the barrier of language.
My brother-in-law is a native German speaker that communicates in Korean and German with his wife. My sister-in-law is a native Korean speaker. And I'm a native English speaker that knows elementary level Korean and only basic phrases in German.
Nonetheless, we decided to embark on this journey for them to learn JavaScript and the basics of programming. The language that I chose to teach it in is a mix between Korean and English.
What's been interesting to me is that the world of programming revolves around the English language. This has been something that I had taken for granted as I was born and raised speaking English.
Teaching the various keywords in JavaScript and what they do, especially watching my sister-in-law process what she is learning is interesting. It's because she has to first understand what the keyword is, translate it into Korean so that she could process it in the language she thinks in. And then when it's time for her to use it as an example, retranslate it from Korean in her mind, back to English.
What's been helpful in the teaching process is to try and make the learning process fun by using silly examples and re-enforcing concepts by giving them short exercises. So that if there was anything lost in translation from my explanation, the example and exercises would re-enforce or course correct their understanding.
I'm also curious if the language barrier can be mitigated by using diagrams and drawings or if things like variable names could be in the native language in which a person learning programming speaks.
Curious to see whether this was at all possible, I tried creating a variable called "ν" and set a string of "Han" to it. "ν" is the first syllable in the word hangul, which is the word for the Korean alphabet. Then I ran a console.log()
on "ν" and sure enough I got the value "Han" returned to me.
let ν = "Han"
console.log(ν)
// > Han
I'm also curious as to how much material is out there in the World for non-English speakers who want to learn programming. I have personally not sought out such resources since it has never been a need for me, but in teaching my brother-in-law and sister-in-law, I do think there is a need for such resources.
If you're not a native English speaker and have at one point learned programming, I'm curious how you learned to program and what sort of resources you've found helpful on your journey. Could you let me know by tweeting me @michaelsoolee so I can pass the information along to others who might be seeking them? Also, if there was anything in particular that helped you learn during the early part of your journey please let me know.
Programming is hard, I didn't know (until now) it could be harder.
Originally posted on michaelsoolee.com.
Thanks for taking the time to read this article! I'd love to stay in contact and send you tips on programming and design, working from home and making side projects through my newsletter. Click here to sign up.
Top comments (7)
This reminds me of a StackOverflow question from years back.
Source: softwareengineering.stackexchange....
That's awesome! Thanks for sharing :)
I started coding like 12 years ago using my mobile phone. Back then it was simple WML(a lite version of HTML for mobile phones) pages and I somehow managed to find resources to look at the source code of other websites and try to replicate things on my own and see how it works.
There have been some online editors where you could basically type code on your mobile phone using T9 keyword and get a result, which I basically did. Instead of copy/pasting things I had to write whole markup down on a paper :|
That's amazing Evaldas! I had no idea such a thing existed or that it was possible to do all this from your mobile phone. Do those resources still exist today?
I was very curious as a kid and somehow managed to find all these tools.
These resources probably no longer exist. Heck, I can't even remember how they were called anymore.
Yeah, so this is quite some nostalgia, but it's a very bright memory from my childhood.
One thing I found works really well is to separate the process of implementing a solution in a programming language from the process of coming up with that solution. When running exercises, it would be useful to let them come up with the solution in a pseudo code format in german or korean or whatever they feel comfortable with and then translate that into some code.
I'm a native english speaker, but I first learned programming at age 13 using APL, which relies heavily on symbols from a mathematical notation invented in the 1950's, so I can appreciate a little bit the difficulty learning to to program using English keywords to someone who is not fluent in English.