nickwinter.net http://blog.nickwinter.net en-us Sat, 07 Dec 2019 18:58:58 +0000 http://sett.com Sett RSS Generator Willpower and Success Spirals http://blog.nickwinter.net/willpower-and-success-spirals I was talking to a friend who seemed to be independently rediscovering what he called self-referential motivation: motivating yourself to do something mostly based on the idea that doing it will strengthen your future ability to do things, and not doing it would weaken it, and the long-term effects from getting better at getting yourself to do things far outweigh the short-term difficulty of doing the thing. Then he asked me, "Didn't you write about that on the Beeminder blog? Is that the same idea?"

Here's the blog post he was talking about: Spiraling Into Control

Yes, it's the same idea, and it's not my idea, either. It's basically this guy George Ainsley's idea, who was the guy who discovered that pigeons (and other illogical animals like humans) follow hyperbolic discounting curves where short-term rewards matter exponentially more than long-term rewards, and that's usually why we are bad at making decisions, and you can hack this by choosing categorically based on what your choice will mean for future choices like it, and that basically that's all that willpower is: making internal rules which we can use to prioritize long-term desires over short-term ones.

The converse to that is that our short-term desires can also try to bend those internal rules so they can get what they want. These are called excuses, or rationalization, and the more we relent to them, the more likely we are in the future to give into similar excuses in similar situations.

So if you want to improve your willpower, your productivity, your reliability in your word to yourself, your ability to achieve your goals, your grit, whatever–you can do worse than to practice sticking to your own rules and achieving your goals. The practice of doing that is more important than the initial goals, actually. Success spirals is the technique of choosing easy initial goals and then gradually making them harder as you build up your trust in yourself to always succeed in your goal. If you always succeed and you never fail, then you can always make it a little harder, until you're doing very hard things and still always succeeding. There's more on this in the post above or in my book, but that's basically it, and it's the most useful motivation technique. Find ways to always do what you said you would do, at least in the categories where you are working on always succeeding. (You can't apply it to everything, as evidenced by my email inbox, but you can apply it to certain classes of goals that really matter.)

>> Comment on this Post · Like this Post

]]>
Mon, 18 Mar 2019 15:30:00 +0000 http://blog.nickwinter.net/willpower-and-success-spirals
Active vs. Passive Learning, or Production vs. Recognition http://blog.nickwinter.net/active-vs-passive-learning Here's another concept from language learning pedagogy (see also Extensive vs. Intensive Learning): the difference between active vs. passive learning, or production vs. recognition. You learn faster and retain knowledge much better when you practice it actively, rather than passively. Okay, sounds kind of obvious, right? But A) the effect is probably more extreme than you think, and B) just about everyone teaching, making educational software, or even trying to communicate ideas in a meeting gets it wrong all the time, so we clearly only passively know that active learning is better. ;)

I'm interested in talking about a focused definition of active and passive learning that goes beyond "doing math problems is better than listening to a lecture on math", about the exact details in which you practice a skill. In language learning, we call it production vs. recognition: actually saying or writing a word vs. just hearing or reading it. We learned the hard way at Skritter that seeing a new Chinese character, even if it's relatively simple and you see it all the time and you know how to write other characters, does not do you any good in terms of knowing how to write that character. You only have a recognition knowledge of it. A hilarious example came from a guy who was pretty good at Chinese who could speak okay and could read over 1600 characters, but never learned to write. He checked out Skritter, tried to write the character 你 (nǐ, which means "you")–something that he's heard, said, and read tens of thousands of times, and he realize he had no idea how to write it!

By that point, we weren't surprised at all, because we had tried many variations of the "let's show you the character first if you have never seen it before", but they never worked–the only thing that worked for people learning new characters was to try to write the character. So in essence, having a flashcard with the character on it was virtually useless. You could see the prompt ("nǐ: you"), flip over the flashcard, and rate whether you "knew" the 你 that you saw, but unless you mentally or physically drew it out, you would never actually learn the character, even in hundreds of tries. Basically, we built the entire Skritter business of the ramifications off the fact that it was very hard for people to make flashcards for Chinese that would let them do active learning.

One non-language-learning example I've heard is a good one: you would know a $5 bill if you saw it, right? Even if it you didn't see the number 5 on it? Not too hard, given the number of times you've seen a $5 bill in your life. But now tell me, what are some of the things on a $5 bill? ... I just tried this and not only did I get the dude wrong, but I couldn't remember any of the other stuff on it. Try for yourself, and then check your result. Recognition and production are almost totally separate skills! And recognition (passive learning) is a horribly inefficient way to learn anything, 'cause you won't remember it.

So of course with CodeCombat, we try to avoid time spent on passive learning / recognition activities and instead have the player focus on producing / actively learning. They're spending almost all their time coding! That's a big part of why players learn a lot faster than with other resources that would rely on a video / lesson / explanatory text talking about how to use code before the player actually gets to try to use code. And don't get me wrong: that stuff has its place, too, just like intensive learning has its place–but it should definitely be a minority of time spent, a distant second to the active learning practice.

>> Comment on this Post · Like this Post

]]>
Mon, 18 Feb 2019 15:30:00 +0000 http://blog.nickwinter.net/active-vs-passive-learning
Extensive vs. Intensive Learning http://blog.nickwinter.net/extensive-vs-intensive-learning In language learning, there's a slightly obscure but useful concept of "extensive reading" vs. "intensive reading". See this article for more discussion. Basically, if you are reading easy stuff quickly with very few unknown words, you are reading extensively. If you are reading difficult stuff slowly and having to either skip or look up many words, you are reading intensively.

Almost all learning materials tend towards intensive reading, whereas extensive reading is more effective and fun. It's very difficult to get large amounts of foreign language text using words the learner knows that just happen to have very few unknown words, especially in the beginning when the learner doesn't know many words. Thus the textbook. Ain't no one like the textbook. Eventually you can read a translation of Harry Potter, but most students don't get there. Especially in languages like Chinese, where reading is extremely difficult and slow and one can't rely much on cognates for unfamiliar words, learners really only get intensive reading, and their reading speeds stay very slow forever (if they don't give up entirely in frustration).

We can broaden this concept of "extensive reading" beyond reading into "extensive learning". For math, it would be very quickly doing a lot of problems, almost all of which are trivial, like one might do in a brain training game. (In school, math assignments tend to be focusing only on new techniques which are difficult, with problems that take a while to learn and do, and not many review problems.) For history, it would be reading stories about events you already know well, so that the new details are few and easily hung on the tree of your existing history knowledge. (Traditionally, "studying history" is usually about trying to absorb a ton of facts about an entirely new historical scenario, and it's hard to remember afterwards.) So on, so forth–the pattern is that properly paced extensive learning is actually kind of fun, but schools typically have to rely on intensive learning, to the detriment of retention and engagement.

What does extensive learning look like for programming? Writing lots of code you know well many times, with only a few new things here and there, not slowing you down much. CodeCombat was designed to do this as much as possible. I think we have a ways to go before it really feels extensive without being boring for all students, but we are doing a lot better than other learning methods. One key is to keep the players writing familiar code, so the pacing isn't difficult, but to keep it from being boring using gameplay. The other is to never stop long to make learners do something other than coding (like reading too many instructions or watching a long lesson).

If we think of learning programming like learning a foreign language, it's clear that you want to have a lot of extensive conversations with the computer. I think many programmers take a long time to become fluent, and a big reason for that is that they're almost always in intensive mode–writing some code that's difficult and halting, spending more time reading documentation and debugging than actually expressing themselves. CodeCombat is my attempt to save them. Our goal is that our players will be native speakers of code.

>> Comment on this Post · Like this Post

]]>
Mon, 04 Feb 2019 15:30:00 +0000 http://blog.nickwinter.net/extensive-vs-intensive-learning
Getting better at making accurate predictions with PredictionBook http://blog.nickwinter.net/getting-better-at-making-accurate-predictions-with-predictionbook I use a site called PredictionBook to make predictions, say how likely I think they are to occur, and then later judge whether I was right or wrong. Over many predictions, this improves my calibration on knowing what will happen on the future.

The reason this is super useful is that pretty much all humans are overconfident in their predictions. As one blogger put it:

Nearly everyone is very very very overconfident. We know this from experiments where people answer true/false trivia questions, then are asked to state how confident they are in their answer. If people’s confidence was well-calibrated, someone who said they were 99% confident (ie only 1% chance they’re wrong) would get the question wrong only 1% of the time. In fact, people who say they are 99% confident get the question wrong about 20% of the time.

So if I say I think my team will ship Feature X before March with 80% confidence, I want that to happen 80% of the time, not 55% of the time. If I think we will be 95% likely to hit our sales targets, then I'd like us to miss only 5% of the time. I want to be well-calibrated. This is really important not just for business strategy, but also for day-to-day decisions. If I'm "pretty sure" that I'll have enough time to hit the gym before my meeting, then I don't want to miss my meetings because my "pretty sure" is a human's normally overconfident way of judging a "slightly probable" situation.

But it's hard to realize that when you say something is 99% likely, it only happens 80% of the time, unless you are keep tracking of your predictions. So, I practice using PredictionBook. Over time, I have become less confident at the high end of certainty and more confident at the low end:

You can read this chart as saying I've made 37 predictions I thought were 50/50, and they were about 51/49, so pretty close. At 60% I'm overconfident–it's still a coinflip. So I read this and say, "Okay, I feel like this thing is a little more probable, but... it's probably not." At 70% I'm dead on across 124 predictions. 80% needs work. And I'm no longer nearly as bad at 90% confidence as I used to be.

What kind of things do I predict? I keep all my predictions private (the public predictions on PredictionBook are all pretty eccentric), so it's all pretty scattered. Here are some random predictions I made:

  1. We will hire Bob. ( 20% confidence )
  2. I'll have been to Mars by 2055. ( 16% confidence )
  3. I'll decide it was a good idea to go for China now after a year. ( 60% confidence )
  4. Chloe's ankle/foot are just sprained or better, not broken. ( 40% confidence )
  5. This next logic shifter attempt will work at establishing serial communication between the robot and the Pi. ( 40% confidence
  6. Max's infant swimming lessons will be successful (he's happy and capable of surviving in the water). ( 80% confidence )
  7. We will go with this Berry Street childcare we're checking out. ( 50% confidence )
  8. Chloe will finish Worm. ( 75% confidence )
  9. My humans code won't be in the top 10 when I get back home on Wednesday. ( 80% confidence )
  10. Max will be reading dozens of simple words via sounding them out by himself by his 3rd birthday. ( 70% confidence )

So yeah, it's kind of fun. If you want to get better at strategy, productivity, shipping stuff, or just general life effectiveness, you can geek out like me and start overcoming your natural human overconfidence bias with PredictionBook.

>> Comment on this Post · Like this Post

]]>
Mon, 21 Jan 2019 15:30:00 +0000 http://blog.nickwinter.net/getting-better-at-making-accurate-predictions-with-predictionbook
Murphyjitsu http://blog.nickwinter.net/murphyjitsu Humans are naturally bad at predictions. Being bad at predictions, and figuring out how to make better ones, sounds kind of fun but not necessarily a basic life skill. Like, you can say, "I bet I'll spawn a baby infant by 2020 with 80% confidence!" or "Oculus Rift is go]]>

Humans are naturally bad at predictions. Being bad at predictions, and figuring out how to make better ones, sounds kind of fun but not necessarily a basic life skill. Like, you can say, "I bet I'll spawn a baby infant by 2020 with 80% confidence!" or "Oculus Rift is going to be a market success - 65%", but you can't just want to make a really close friend and say, "I predict that I will make a really close friend this month with 95% probability" and magically have it happen.

Or can you?

I mean, the kinds of things you can try to do to make close friends are known. Get out of the apartment, do social events, reach out to people you like to hang out, be vulnerable, open up your schedule and routine to allow for repeated and unplanned interactions, practice your social graces, spend less time at work or with people you don't actually want to be close friends with, wear a really cool hat, and so on

But it feels like there's a lot of uncertainty on 1) whether you will actually do these things and 2) what the results of each effort will be. You vaguely wonder, "What if they don't like me?" "What if I don't like them?" "Does anyone really have time to make new close friends?" "What parties would I even go to?" and so on, until it feels like it probably wouldn't work. So you don't attempt any of these things, and so of course it doesn't work.

That, or you think that making really close friends won't be that hard and if you just give it a try, it'll probably work. So you give it a try: you go to a couple parties, you hang out with a few people, and it's kind of fun, but a couple months later you realize that you've gotten busy and stopped doing the things, and you haven't quite bonded with any one new friend.

Here's a tactic for making an accurate prediction of probable success at your goal, whatever it is, regardless of whether it feels uncertainly difficult or easy. It's called Murphyjitsu. When making a new plan to accomplish a goal, you spend some time writing down everything that could possibly go wrong. It doesn't take long. Humans already have a great simulator for generating failure scenarios; we just don't typically use it when we feel that success is likely, and we don't use it systematically when we feel that failure is likely. So you just say, "Okay, I've executed my plan and suddenly I realize I've failed my goal. Oh no–why, what happened?"

You should be usually able to generate something like seventeen failure modes in five minutes. Then, for each failure mode, you write down what is usually a very simple preparation step or contingency plan that would avert failure. Here is an excerpt from an example for when I was preparing for hosting a national Singaporean coding tournament, which I went through a couple days before the tournament when I thought everything was already done:


Okay, time to use Murphyjitsu to make sure this tournament goes well. Goal: Have the tournament go so smoothly and excitingly that IDA will pay us $$ to run the next one. What could go wrong?

  1. The ranking is buggy -> ask people to try desperately to break it, and spend 15 minutes trying to break it myself.
  2. It runs too slowly for great justice -> do some CPU profiling to make it faster.
  3. Someone gets in the ladder who shouldn't be -> I can just take them out of the clan and delete their sessions' leagues.
  4. The kids' strategies are all too similar -> give a more complex example of how to pick units to build so fewer players use 100% of one type.
  5. I make a last-minute change and it busts things -> do all this today and don't mess with it tomorrow.
  6. They just aren't that interested after and I don't really know why -> ask Chris to get someone to video the event so I can review and see how it went.
  7. [... many more possibilities ...]

If I do all that stuff, it seems like things will go a lot better. So let me get cracking!


Based on this, I then fixed a bunch of things that ended up being necessary for the tournament to run at all. Thanks, Murphyjitsu!

(Not pictured in this list was my laptop basically dying right before the tournament, so I ended up with a barely-configured new iMac sitting on the floor of my apartment at 3am supervising the event with no ability to fix anything on the fly. Good thing I had fixed all the things in advance.)

You can apply Murphyjitsu to any plan that might fail, from going to the gym to raising Series A to shipping your indie game side project to just fixing a particular bug. It doesn't even take very long. The key is to just remember how bad you (as a human) naturally are at planning things, and to solve your pesky human mental deficiencies by using your beautiful human mental strengths.

This Murphyjitsu technique was developed by the Center for Applied Rationality (CFAR). If you want to give it a try, here are the steps in their words:

Step 1: Pick a plan/project/goal

Step 2: Make it specific enough to visualize

What’s the next action you would need to take to keep this project/plan moving forward? It should be concrete enough that you can picture yourself doing it, not something vague like “work out more.”

Step 3: Check your surprise-o-meter

Visualize putting this plan in motion, then ask, how surprised would I be if this plan failed? If you’d be shocked, then you’re done! Otherwise, continue to step 4.

Step 4: Use Pre-Hindsight

Your plan didn’t work! And it failed at the stage of the next action you wrote in Step 2! What happened?

Step 5: Use Looking Forward

What action would you have had to take to prevent this particular failure mode? Visualize taking this preemptive action and then ask “What comes next?” Have you successfully defused the danger? Did you create a new weak point to patch?

Step 6: Iterate!

Repeat steps 3 - 5 several times (sometimes this technique is called “Simulate 17 times, act once”). What else might have gone wrong? What could have prevented it? You’re battle-hardening your plan against happenstance and poor habits. Remember that this should be very quick - all “17” iterations should take maybe a few minutes total.

>> Comment on this Post · Like this Post

]]>
Sun, 06 Jan 2019 21:18:06 +0000 http://blog.nickwinter.net/murphyjitsu
Meet Clark http://blog.nickwinter.net/meet-clark Now I have two kids. So far, it's pretty similar to just having one kid. The time and energy needed to sustain double the lifeforms can be obtained almost entirely from further lowering of parenting standards. There are a lot of good jokes about this. You can see from th]]>

Now I have two kids. So far, it's pretty similar to just having one kid. The time and energy needed to sustain double the lifeforms can be obtained almost entirely from further lowering of parenting standards. There are a lot of good jokes about this. You can see from this blog how it goes. Max got a post at one month announcing his existence and another at four months about parenting surprises. Clark? He's eight months now, and this is all he gets.

Anyway, behold how cute he is:

So far, baby Clark looks basically the same as baby Max did, except for a little more hair, to the point where sometimes we can't tell which is which in a photo:

But they're not quite identical. Here are Max and Clark at around six months:

Clark has been more chill the whole time. Sleeps better, eats better, is more relaxed. Must get it from his mom. Max loves Clark and thinks he's so cute and often wants to hug and kiss him and give him toys, but now that Clark has started crawling, Clark slimes Max's toys and Max is somehow surprised and distraught. "NO, Clark!" How could he? ... he's a baby, dude, and you left the slinky on the floor.

Like Max, we used our baby name generator algorithm web app thing, Bantling, to name Clark. Here we also used the Starbucks test to disqualify a name (if the barista gets the name wrong or asks you to repeat, the name is not obvious enough). There are no more boy names in existence that would satisfy both Chloe and me now, so we pretty much have to stop making children.

I aim to make a video that better expresses his personality when he turns one on July 29, like the ones for Max turning one and two, and to track his vocabulary acquisition up until two as well. No mind-controlled robot baby Roomba chariot, though.

>> Comment on this Post · Like this Post

]]>
Mon, 26 Mar 2018 16:30:00 +0000 http://blog.nickwinter.net/meet-clark
Fourth Year Book Sales http://blog.nickwinter.net/fourth-year-book-sales I always love it when people share revenue data for their apps / games / books / works, and it's been four years since The Motivation Hacker came out, so here's another updated graph of ebook sales by platform including the second year. (See also Second Year Book Sales, First Year Book Sales, Aftermath: The Motivation Hacker)

I forgot about checking the numbers for year three, and now it's been just over four years, so I thought I'd take another look. Looks like sales have more or less held steady on Kindle and the other ebook platforms, but CreateSpace paperbacks have come out of nowhere, so year four was better than year three or even two. Cool! (CreateSpace paperbacks cost more than ebooks, $7.99 to $2.99, but I set it so that the royalty is the same either way, about $2.21.)

Ratings kept falling on Amazon, from 4.4 two years ago to now 4.1. Goodreads inched down from 3.85 to 3.81, with a combined total of 633 ratings. I wrote the book quickly (about 200 hours total) and have now made about $17K, or around $86/hr. Not a huge amount, but not bad for something that I initially thought only 50-100 people would read.

>> Comment on this Post · Like this Post

]]>
Sat, 10 Jun 2017 21:23:01 +0000 http://blog.nickwinter.net/fourth-year-book-sales
Max's Vocabulary Acquisition http://blog.nickwinter.net/graph-of-maxs-vocabulary-acquisition Max's vocabulary started exploding around 15-17 months old. I started writing down everything he could say (with understanding of what it means) starting at 18 months, when he could say 107 words. I stopped when he hit 1000 words, a day before his second birthday. During that time, he learned an average of five words a day. Here's the graph:

I did kinda want him to hit 1000, so I spent extra effort teaching him words in the last nine days.

Out of the 1000, he knew 248 Chinese words, 738 English words, and 14 words in other random languages. He learns most of his Chinese words from me, and some at daycare. I speak mostly Chinese to him, but it's not natural for me, so sometimes I switch back to English, plus Chloe speaks all English to him, which is why his English is way ahead.

What kind of words does he know?

Objects 167
Verbs 130
Food 102
Animals 91
Adjectives 65
People 57
Body 44
Numbers 40
Exclamations 38
Vehicles 33
Places 29
Other nouns 26
Adverbs 23
Letters 21
Colors 20
Sounds 19
Clothing 18
Sky 15
Activities 13
Pronouns 10
Directions 9
Shapes 6
Times 6
Emotions 6
Determiners 4
Prepositions 3
Articles 2
Classifiers 2
Particles 1

(Don't pay too much attention to the long tail of grammar words, I got bored of assigning parts of speech and didn't do it very precisely.)

Among his words, some favorites: contrail, aurora, fluffy, Buddha, skeleton, beige, oval, 面包车, Jupiter, 新年快乐, cuddle, babysitter (pronounced "baby sister"), slime, crunchy, faceplant, and 帅哥.

While I was in the middle of doing this, this image started getting passed around, where a guy tracked the first 100 words his son said.

Funnily enough, in the first 100, it looks exponential, whereas the graph for Max's 100-1000 is pretty linear. Max's graph for 1-100 would have probably looked exponential and very similar to this other kid's but shifted a couple months earlier in age. Well, I'll start from the beginning for the next one!

There's another guy who did this rigorously by actually recording everything in his house for his kid's first three years and then going back to find the first times the kid said each word. From his paper:

Although it is widely known that children’s vocabularies grow more or less exponentially in this developmental period, we found the rate of worth births abruptly drops at 20 months.

Interestingly, Max didn't show this pattern yet–that guy's kid topped out at 3 words per day around 20 months, then dropped way down, only getting to 517 words by age 36 months. I stopped keeping track at 1000, but Max is still learning a ton of new words–not following either trend.

If you want to see the full words, play around with the data, or do a similar vocabulary tracking project of your own, here's the spreadsheet: Max's Vocabulary Words

>> Comment on this Post · Like this Post

]]>
Tue, 30 May 2017 15:30:00 +0000 http://blog.nickwinter.net/graph-of-maxs-vocabulary-acquisition
Video: Max's Second Year http://blog.nickwinter.net/video-maxs-second-year Max recently turned two, so I made another video! See also the video I made for his first year. ]]>

Max recently turned two, so I made another video! See also the video I made for his first year.

>> Comment on this Post · Like this Post

]]>
Thu, 18 May 2017 15:30:56 +0000 http://blog.nickwinter.net/video-maxs-second-year
How to Really Make an Impression When Speaking Chinese http://blog.nickwinter.net/uid/1341601 I just got back from a business trip to China, where I visited Beijing, Shenzhen, and Guangzhou. I listened to and spoke a lot of Chinese, and while I can't yet get by in a business negotiation without occasional-to-frequent interpretation, I think my interpreter wouldn']]>

I just got back from a business trip to China, where I visited Beijing, Shenzhen, and Guangzhou. I listened to and spoke a lot of Chinese, and while I can't yet get by in a business negotiation without occasional-to-frequent interpretation, I think my interpreter wouldn't have survived if I hadn't been able to get most of what people were saying on my own. Plus, I made a very good impression whenever I dropped some Mandarin. I can be proud of how much I can still converse in Chinese now, almost ten years after I stopped taking Chinese classes. (Thanks Skritter for maintaining my vocabulary all this time!)

But the real demonstration of my language skills was when a guy came up to me to hand me a flyer for a Chinese kung fu club that was just opening up. "Chinese gongfu! Very interesting!", he said.

“对不起,我没有时间。” Sorry, I don't have time.

After this basic response with good pronunciation, the guy was excited by my apparent comprehension, and redoubled his efforts. After a bit of conversation, I decided to tell him I was flying out tonight and so couldn't possibly come see the fight:

“我住在美国,在旧金山。我没有时间,我今天晚上要打飞机。“ I live in America, in San Francisco. I don't have time, tonight I'm going to get on a plane.

The guy seemed very confused at this point, so I just left. My colleague Lisa then burst out laughing, "You just made a BIG mistake!" Apparently even though you can 打车 ("hit car", or "take a cab"), you are supposed to 坐飞机 ("sit plane", or "take a plane"). If you try to 打飞机 ("hit plane"), that's something else entirely. So what I ended up saying was, I don't have time, tonight I'm going to masturbate.

Lisa laughed at me for at least five minutes.

This reminds me of the time as a second-year Chinese student I was trying to tell a joke during the department's Mid-Autumn Moon Festival about the policeman who was trying to catch a blonde, brunette, and redhead who had escaped from jail. "Catch, I know that word, like to catch a plane!" (I should really learn from my pattern of misusing plane-catching-related verbs.) Of course instead of 赶 (gǎn, "catch (a bus, plane, etc.)"), I used the wrong tone and said that the policeman wanted to 干 (gàn, "fuck") the blonde, brunette, and redhead. It fit just well enough for everyone in the Chinese department to assume I meant it, and the next day Ma Laoshi chewed me out for swearing!

Anyway, now I need to get a Chinese tutor, since if I try to do a business conversation in Chinese by myself, sooner or later I will confidently declare that our future partnership will be harmonious and erotic, or something equally hilarious. Or else I'll use language more appropriate for my toddler Max, with whom I currently speak most of my Chinese. I need to get all my egregious mistakes out of the way. Let me know if you know someone really good. I’m thinking something like one hour per week. Cost is no object. Mainland Mandarin focus, Beijing style (not southern). Remote okay, or in person in San Francisco.

>> Comment on this Post · Like this Post

]]>
Sun, 26 Mar 2017 14:57:46 +0000 http://blog.nickwinter.net/uid/1341601