Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How learning Chinese made me a better Python instructor

reuven
April 28, 2022

How learning Chinese made me a better Python instructor

I'm a Python instructor. But I have also been learning Chinese for the last few years -- something that has made me think about learning and teaching. In this presentation, I share some of the insights I've gained for my Python training work from my studies.

reuven

April 28, 2022
Tweet

More Decks by reuven

Other Decks in Education

Transcript

  1. How learning Chinese made
    me a better Python instructor
    Reuven M. Lerner • PyCon US 2022 Edu summit
    [email protected] • @reuvenmlerner

    View Slide

  2. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • Corporate • Video • Hybrid


    • Weekly Python Exercise


    • Books:


    • Python Workout


    • Pandas Workout


    • Come see my booth in the expo hall for swag + discounts!
    I teach Python!
    2

    View Slide

  3. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • I love helping others with their careers


    • I love helping people to get those “a-ha” insights


    • And I also love thinking about teaching, and how I can do it
    better


    • Which leads me to my main topic…
    I love teaching
    3

    View Slide

  4. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • Friends: Wow, you’ll have the best time. Just learn some Chinese
    before you go.


    • Me: 😂😂😂😂


    • Same friends: No, it’s really not that hard.


    • Me: 😂😂😂😂😂😂😂😂


    • Same friends: You know, they don’t speak English in China.


    • Me: I see. I’ll give it a whirl.
    I was invited to teach in China
    4

    View Slide

  5. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • First trip (2012): I learned some words


    • Second trip (2013): I listened to some podcasts


    • I then went all in:


    • Chinese lessons with live teacher, 5x each week


    • Simple books (Mandarin Companion)


    • Waze in Chinese


    • In all, I went to China about 30 times


    • Each time, I got a little better


    • Each time, I got a little bolder


    • Final trip: End of 2019
    My Chinese journey
    5

    View Slide

  6. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    What does this


    have to do with teaching Python?
    6

    View Slide

  7. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    Learning a programming language
    is like learning a language.
    7

    View Slide

  8. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    For many people, learning Python


    is as laughable, terrifying, and


    ridiculous as I thought it would be to
    learn Chinese.
    8

    View Slide

  9. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    Also:


    From learning a foreign language,


    I’ve learned a lot about teaching Python.
    9

    View Slide

  10. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • By de
    f
    inition, a foreign language is a second language


    • You have a basis for comparison


    • What are nouns, verbs, and adjectives?


    • Imagine trying to learn a foreign language without a
    f
    irst one


    • That’s what newcomers to Python have!


    • Data structures? Editor? Variables? Strings? Functions?


    • Experienced non-Python developers don’t have this problem


    • Help them to climb two ladders at the same time


    • Conceptual — the new ideas


    • Syntax — how they express these ideas in Python


    • Expect them to have both kinds of confusion, and be ready for both
    The two ladders
    10

    View Slide

  11. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • My Chinese is far from fluent.


    • It’s good enough for basic communication


    • “Your Chinese is so good!”


    • I often have to ask them to speak slowly or repeat
    themselves


    • Fluency isn’t a yes-no thing in language.


    • And it isn’t in programming, either.
    Fluency isn’t binary
    11

    View Slide

  12. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • And that’s OK!


    • Just keep learning and improving


    • I stress this with my Python students, especially the newbies


    • You can get things done with Python, even if you’re new


    • You’ll never stop learning and improving your Python skills


    • I’ve been using Python for about 30 years, and I learn new
    things about it every single day, often from students’ questions
    You’ll never be 100%
    f
    luent
    12

    View Slide

  13. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • Can I express myself reasonably in Chinese?


    • Yes, if it’s about my family or my work


    • Not if it’s about hash functions or object-oriented
    programming!


    • Can I express myself reasonably in Python?


    • Yes, if I’m using the standard library


    • Yes, if I’m writing Web apps or working with databases


    • No, if it involves a GUI or devops


    • You can be fluent in one domain and be clueless in another


    • Given Python’s size and scope, this is to be expected!
    Fluency by domain
    13

    View Slide

  14. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • Obvious to native speakers of Chinese, but not foreigners:


    • A change in tone can radically change what you’re saying?!?


    • Chinese (mostly) doesn’t have singular and plural?!?


    • Chinese doesn’t conjugate verbs?!?


    • Chinese uses “measure words” before nouns?!?


    • Obvious to experienced Python developers, but not newcomers:
    • Variables don’t have quotes around them, but strings do


    • You need to have a colon at the end of of a line before a block


    • The name of an iteration variable doesn’t affect what you get
    in each iteration of a “for” loop
    It's not obvious to beginners
    14

    View Slide

  15. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    Never, ever say,


    “That’s obvious.”


    It’s not obvious to newcomers.
    15

    View Slide

  16. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    Also, don’t say:


    “We learned this before”


    or


    “As you remember”


    Because they might not.
    16

    View Slide

  17. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • I have a pretty good memory


    • But I forget Chinese words and characters all the time.


    • What’s the pronunciation?


    • Which tone do we use?


    • What’s the meaning?


    • What’s the grammar?


    • As a teacher, don’t say, “How can you forget that? We learned
    that.”


    • The student isn’t trying to forget!
    About remembering
    17

    View Slide

  18. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • You cannot give people enough examples!


    • How is it used?


    • Why do you need it, rather than use other techniques?


    • Show the most common use cases and paradigms


    • Show context, to help anchor the idea


    • How often is this construct really used?


    • (And if it’s uncommon, then why are you teaching it?)


    • Compare the new thing with previous things you’ve taught


    • Describing something without an example is basically useless
    Lots of examples
    18

    View Slide

  19. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • It’s easy to fool ourselves into thinking we understand


    • Ask students to produce and create, not useless questions:


    • “Did you understand?”


    • “Any questions?”


    • “Use this in a sentence.”


    • Every word I learn, my Chinese teacher asks me to use it in two
    separate sentences. This is a fantastic teaching technique.
    Almost no substitute does this, which is a shame.
    Nodding isn't understanding
    19

    View Slide

  20. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • I “interviewed” 20 Chinese teachers


    • I chose the one who was OK with me asking tons of questions


    • Other teachers weren’t bad, just not what I wanted.


    • Your style of teaching won’t work for everyone.


    • That doesn’t mean you’re a bad instructor


    • It doesn’t mean they’re bad students


    • That said: Constantly pay attention to what mistakes your
    students are making, or what confusion they have.


    • Change your teaching, to avoid those mistakes!
    Different teachers for different students
    20

    View Slide

  21. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • You can’t practice enough. (Have I mentioned my books?)


    • The value of practice is over the long term, not the short term


    • When I don’t practice Chinese for a few weeks, I feel rusty.


    • Some ideas:


    • Different kinds of exercises, on different topics


    • People should both read and write code
    Lots of exercises
    21

    View Slide

  22. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • I’m pretty good at chatting with Chinese teachers


    • But in China?


    • They speak quickly


    • They have strong accents


    • We’re talking about things I’m not used to


    • Similarly, the real world of programming has lots of challenges
    that a course doesn’t prepare you for


    • Teach your students how to teach themselves


    • Programmers are always learning more


    • They’ll encounter code that is … heavily accented
    The real world isn't like class!
    22

    View Slide

  23. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • What’s it like to learn as an adult?


    • The author tries it, and gains a lot


    • Chess


    • Singing


    • Sur
    f
    ing


    • He’s not great, but he is ful
    f
    illed


    • I’ve had the same thing with Chinese


    • People can have the same thing with
    Python
    “Beginners,” by Tom Vanderbilt
    23

    View Slide

  24. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • Python instructors can and should adopt techniques from
    language instruction, which has many parallels


    • Give context and examples


    • Have the students produce things, not just tell you if they
    don’t understand (because they won’t)


    • Don’t use phrases that put the blame on your students for not
    knowing or understanding


    • Remember that they’re climbing two ladders, which isn’t easy!
    Conclusion
    24

    View Slide

  25. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il
    Learning Chinese, Teaching Python
    • E-mail me: [email protected]


    • Follow me on Twitter: @reuvenmlerner


    • My videos: https://YouTube.com/reuvenlerner


    • 微信 (WeChat): ReuvenLerner


    • Check out PythonForNonProgrammers.com


    • Free, weekly newsletters:


    • About Python: BetterDevelopersWeekly.com


    • About training: TrainerWeekly.com
    谢谢!
    25

    View Slide