by Stephen Mayeux

Learn to code like a Korean student learns English

W2UZp2gY-4labXa6O7Ia0JiVRVUL9IjVpjcv
Human languages are made up of words which are governed by grammar. A bit like programming, isn’t it?

If this is the first you’ve heard of me, then there’s only one thing you need to know: I am an ESL Teacher Turned Full Stack Developer.

My career teaching English as a Second Language has spanned nearly a decade, so I have a refined understanding of how adults learn a second languages.

I’ve watched thousands of students from different cultural, academic, and professional backgrounds acquire the difficult, rather quirky language that is English.

After years and years of dedication and commitment to learning, many of my students have gone on to become proficient — if not fluent — in English. I have also seen a lot of intelligent, hard-working people plateau at an intermediate level of English, then subsequently grow tired and frustrated by their lack of progress.

The successful language learners have several traits in common. My observations of them mastering English have helped me learn web development much quicker than I would have otherwise.

Let’s talk about some of the theoretical frameworks that attempt to explain second language acquisition, and lessons I’ve learned from my students.

If It’s Easy, You Ain’t Doing it Right

Stephen Krashen, linguist and professor emeritus at the University of Southern California, is arguably the godfather of modern second language acquisition.

In the 1970s and 80s, he developed a set of 5 hypotheses that have informed modern communicative teaching methods.

One of these is known as the input hypothesis, which states:

Learners progress in their knowledge of the language when they comprehend language input that is slightly more advanced than their current level.

The exact thing could also be said for learning how to code!

Think back to the first month when you just started learning how to code. You probably started off with some tutorials on Codecademy, and followed along with the instructional prompts, only to feel “stuck” and unable to produce a website from scratch without copying and pasting.

I had probably gone through their JavaScript tutorials three times, and I still felt like I wasn’t learning anything. Why?

Because the hand-holding tutorials are much too easy after the first time around! They are great to get you familiar with the basic syntax of the language, but they won’t help you solve algorithms on your own.

Repeating these tutorials is unlikely to take you beyond your current level of understanding. I didn’t really start learning JavaScript until I ditched those tutorials and dived right into Free Code Camp’s basic algorithmic challenges.

6h3-W0MuXEV4GMpOM3JKLugeyhKH6L3Ds59E
If it’s easy, you’re doing something wrong.

It was tough, and each subsequent challenge was even more difficult than the last! I was constantly in a state of being challenged, just slightly above my current ability. And it worked!

My point is this: your coding journey is never going to feel “easy” or “simple”, and if it is, you have to stop what you’re doing and try more difficult challenges and projects. Get comfortable with feeling stuck and stumped for the long run, because that isn’t an obstacle. It’s a sign that you are about to learn more.

Don’t Aim for Perfection Early On

Perfectionists do not make great language learners. They tend to do well on grammar and vocabulary tests and can recite all of the irregular past participles by heart. I think the perfectionist students actually know more about English grammar than native speakers do! Not that it really matters though. Why?

Because their spoken English kind of sucks.

I have met a lot of these students, and have been successful in helping many of them ditch their less-than-optimal study habits. But so many have this unrealistic ideal of what a “fluent” speaker of English should be able to do, including never making any grammatical mistakes whatsoever!

They excel when it comes to reading and writing, but their speaking skills are seriously hindered because they take forever wracking their brains thinking of the “best” way to say something.

Don’t do this when you learn to code — especially when you’re just starting out. You don’t have to remember all of the semantic HTML5 tags or all of the Bootstrap classes to make a website. Why would you have to do that when you could just find whatever you need in the API docs, Google, or Stack Overflow?

In my very early days of learning HTML and CSS, I actually made flashcards to help me remember this stuff, and I can’t believe what a waste of time it was. I probably spent two hours creating flashcards every night, and I wish I had skipped all of that and practiced coding instead!

Just because you have all this knowledge doesn’t mean you can actually use it appropriately to solve a particular problem.

Don’t be perfectionist in learning anything, especially coding! Learn enough to be dangerous, then start building something. You’ll pick up the particulars on an as-needed basis.

Take Care of Yourself

In my last Medium article, I wrote about how South Korea is viable option for people who want a lot of free time to learn coding while making a decent living teaching English.

The bulk of my students are young people taking a gap year from university. They live with their parents and don’t need to get part-time jobs to support themselves.

Sounds like heaven!

The language institute where I teach is open from 7am — 10pm, and a lot of these young Koreans spend 10 hours or more each day at the center.

In addition to their regular classes at the school, they join extra study groups and hole themselves up for hours in the computer lab until closing time.

And even though they are taking a break from work and university, they are often sleep deprived because they are preparing for high-stakes tests that might determine the outcome of their professional lives.

I really admire the Korean work ethic, which was responsible for the country’s rapid development following the Korean War. But the human body can only function optimally with x amountOfSleep and y hoursOfWorkDone.

When it comes to learning a new skill, the Law of Diminishing Returns is at play. Students who regularly take breaks, meet friends, get enough sleep, and do exercise seem to do just as well — if not better — than students who use every second of their free time studying.

A lot of self-taught coders should heed this advice as well. For many of you, you have to balance your coding schedules on top of your busy work and family responsibilities.

And it’s true that you have to hustle hard and work your butt off if you really want to transition into web development. But if you find yourself yawning a lot and unable to focus, take a walk outside and get a breath of fresh air. Spend a couple of hours with your friends or family on the weekend and recharge your batteries.

8gCAuoL1H1TOqBfYK2OKM-Krhu4kcSosTfDA
Tom and Donna have great advice for self-taught coders.

Just remember to treat yourself from time to time, or risk getting scorched from the burn out.

Your Advice

Does any of this advice resonate with you? Do you want to add something to this list?

Share your questions and opinions in the comments below, and don’t forget to follow me if you haven’t already done so. Treat yourself.