🏡 Home👩🏽‍ About🧵 Threads

immersion driven development

May 20, 20203 min read

I’ve compared programming to writing, but there’s a stronger analogy to be made: learning to program is like learning a new language.

There’s new vocabulary like regex and ternary and viewset. And there’s new syntax too: In English, a parent might tell their child, “If you see someone, say hello!” In Javascript that’s expressed as If (person) { return 'hello!' } The meaning is the same, but the sentence structure differs.

How do we learn a language? Well, we learned out native tongue by listening to our families and community speak, and trying to imitate them. Similarly, the proper way to learn a second language is through immersion. That’s why people finally learn a language in 6 months of living in a foreign country, after having taken 5 years of the language at school.

You can create immersion even if you aren’t in a foreign place. I have a Serbian friend who taught herself Spanish by binge-watching Mexican soap operas. She watched them so much that they had a similar effect of total immersion, even though no one around her spoke Spanish.

When Andrew dropped out of college to be the first engineer at Culdesac, he was pretty inexperienced at programming. To try to catch up to his role, he replaced idle Youtube browsing with watching programming videos. He only read programming books, and he only listened to programming podcasts. For months.

I attended a programming bootcamp, which creates a similar immersive effect. We had class six days a week. On my Sundays off, I studied or caught up on assignments. In fact, before Hack Reactor starts you’re advised to tell your friends that they won’t see you for 3 months; You won’t have time to socialize.

(Incidentally, I recommend coding bootcamps over a traditional CS degree, because traditional CS programs are more like a traditional foreign language class than an immersion).

Another consequence of analogizing learning to code to learning a foreign language is: kids should probably learn to code.

Before I got into coding, I assumed that parents who made their kids code were tiger parents—people who desperately wanted to create a prodigy and were willing to sacrifice their child’s happiness to do so. But now I believe that kids should be taught programming. I think they’ll pick it up easily, and that they’ll probably enjoy coding, just like most kids enjoy making art. Kids love to make stuff, and as a child, coding is just another tool to make cool stuff.

I also suspect that if kids are exposed to coding they’ll achieve a higher degree of fluency than people who learn to code as adults. Similar to how adult foreign language learners struggle with poor grammar or a limited vocabulary, whereas someone who learns a second language as a child often sounds indistinguishable from a native speaker. Perhaps that’s why so many famous programmers and founders learned to code as kids.