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

How learning Chinese made me a better Python in...

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 M. Lerner

April 28, 2022
Tweet

More Decks by Reuven M. Lerner

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
  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: [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