Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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