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

How learning Chinese made me a better Python instructor

4ef16ff17bbfb331c657d584ea0dc135?s=47 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.

4ef16ff17bbfb331c657d584ea0dc135?s=128

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 reuven@lerner.co.il • @reuvenmlerner
  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
  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
  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
  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
  6. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il Learning Chinese, Teaching

    Python What does this have to do with teaching Python? 6
  7. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il Learning Chinese, Teaching

    Python Learning a programming language is like learning a language. 7
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  25. Reuven M. Lerner • @reuvenmlerner • https://lerner.co.il Learning Chinese, Teaching

    Python • E-mail me: reuven@lerner.co.il • 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