Building a Better Language App

Over the past three years, I’ve taught English in three countries while learning three languages. These experiences have been wonderful opportunities to meditate on and tinker with existing methods.

With each country, I faced a different culture, classroom setting, and set of needs. My teaching style had to morph to match the circumstances. Sticking to one method would only risk alienating students. In Chongqing, I oversaw twenty-two conversational English classes at a junior high school, each of which had 60 students or more. I had complete control over the curriculum, but was required to create Keynote presentations (and have their content vetted by the head teacher). Most of my day was spent trying to get through it. Prague was an experimental period. I tram-hopped to various companies to teach business English to small classes of 20-60 somethings. Since most of my students despised textbooks and had specific goals in mind, I had to create most of my lessons from scratch. In Taipei, I had to follow stricter guidelines. For every intensive, general, and test-prep class I taught to adults and high school students, I was required to use a specific textbook at a certain pace and attend regular workshops.

Where training failed, language study stepped in and made adapting easier. After failing to learn Czech in a classroom setting during my initial months in Prague, I committed to pursuing my interest in another language—Japanese—on my own. Once I refined my approach and techniques, I easily moved on to Mandarin Chinese and Russian, and even returned to Spanish.

By teaching in a classroom while learning on my own, I discovered gaps in traditional methods, possible alternatives, and new materials. And my teaching evolved further.

Leaving education for iOS development isn’t leaving at all. It’s simply a continuation of a three-year experiment, with the added challenge of linking together everything I’ve learned to create awesome language apps.

In a series of posts, I’ll walk you through a project that hopefully meets this challenge. We’ll start with what’s missing from current language apps and move on to possible solutions.

Read More


Breaking Into Chinese, Japanese, & Russian: A Brief Guide to Getting from Newbie to Intermediate-Level in 8 Months or Under 

My Twitter has been blowing up with requests for language learning resources and tips. So, I’m putting together a short guide. I’ve tried to keep it as simple as possible, since a deluge of resources won’t help you. In general, I recommend using no more than three resources at a time, even if you’re going at an accelerated pace. Also remember to vary your materials; using three step-by-step guides, apps, or what-have-you wastes time.  Whenever I start learning a language, I focus on small deliverables. Having a benchmark for each week and month keeps me focused. To get an idea of what a realistic goal looks like, check out this one-page CEFR guide.

Since these three languages have a special reputation for being difficult, some advice: consistency is more important than volume. Don’t fall into the trap of trying to learn All the Things, as many language learners will (wrongly) suggest. If you want to go fast, you need to go slow. 20 minutes of concentrated practice is better than two hours twice a week. You’ll notice that most of these resources can be completed in 1-3 months with 30-minute daily sessions. There’s no need to stop having a life to learn a language.

Read More

Dancing with the Chaos Monkey: Refining Goals, Building Work Cycles, and Decluttering


This article
came at the right time. After sixteen months of constant change — a job switch and four unexpected moves — and adversity — financial struggles, working overtime, and cancer surgery — I needed to be reminded of Nassim Taleb’s ideas. He’s the only writer, aside from Haruki Murakami, who has given me both perspective and comfort during times of uncertainty. When you read his work, it’s impossible to look at the world in the same way.
Up until now, I’ve been fixated on his philosophies of risk and causation (see: Fooled by Randomness and the Black Swan), but after the events of the past year and a half—and my determination to continue building the career I want despite them—I’ve become more interested in Antifragile. It’s an exploration of how certain things grow stronger through disorder. It’s not a question of resilience—bouncing back from negatives; it’s a matter of thriving on them. 

Read More

A Guide to Selecting & Organizing Self-Study Materials


From Stefan Bucher’s 344 Questions


So, you’ve decided to learn how to program or speak a foreign language on your own. Without a clear strategy, one of two things will happen. You’ll spend hours researching and gathering resources, only to become overwhelmed, as it becomes increasingly clear you have no idea where to start. You’ll assume you need several hours a day to learn, which means that your routine will be threatened by every unscheduled event, bad mood, or low-energy day. Or, you’ll hop over to Codecademy or Treehouse, Duolingo or Babbel–or whatever big-name company you’ve read about online–and start picking through their courses. Your sense of mastery will grow with each badge you earn and streak you maintain, until of course you finish. That brief, exhilarating ego boost will be crushed, as you realize that your chosen subject is far more complex and rich than those introductory courses led you to believe.
This is when most people start giving up, which is unfortunate because both approaches have merit. Deep research is essential to mastering a subject, as is recognizing that you should probably stop googling and just get something done. The problem isn’t the approach; it’s the fact that most people only choose one.

Read More

Swimming in Swift

Aside from my language learning goals, the next three months are all about gaining a deeper understanding of Swift. (After that, I’ll go full-force into development, with the intention of building a portfolio of 3-4 apps and landing a developer job. But that’s later.) 

Why iOS programming?

I want to build awesome, beautifully-designed apps that help people learn languages better and faster. As someone who teaches languages in a classroom and studies several solo, I’m aware of the upsides (and downsides) of learning through apps and the Internet. Instead of preaching about what I know, however, I’d like to actually apply it.

Since March, I’ve acquired a pretty solid foundation in Objective-C and Swift and even designed a prototype for a language-learning app (which I’m currently developing). But, as with languages, I’m dissatisfied with my existing skills.

Today, I’m starting the Complete iOS9 Developer Course and the Complete Apple Watch Developer Course on Udemy. By the time I finish, I’ll have built 80 apps. As a longtime fan of AppCoda and Ray Wenderlich, I’ll supplement these courses with other tutorials. And to stay immersed in code on MRT rides, there’s always Swifty.

The ride should be interesting. Be on the lookout for updates.

9 months, 3 languages

Over the next nine months, I’m pushing for B2/C1 level fluency in three languages: Russian, Mandarin Chinese, and Spanish. For three months, I’ll dive into each language and (hopefully) fill up gaps in my existing skill set***.

Why this madness?

For one, figuring out ways to learn languages more efficiently will make me a better teacher. It also makes sense to avoid juggling multiple languages while working full-time and intensely exploring iOS programming.

But the motivation goes deeper. I want to explore the cultures associated with each language in greater detail—which is difficult to do when struggling with day-to-day communication.

Over the past two and a half years of living abroad, it’s become clear that becoming multilingual and multicultural are two distinct, though related, processes.

Read More