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

Teaching with Empathy

Brian Holt
September 15, 2016

Teaching with Empathy

Given at DevDay Poland 2016

Brian Holt

September 15, 2016
Tweet

More Decks by Brian Holt

Other Decks in Programming

Transcript

  1. P R O M I S E N O T

    T O U S E P R O M I S E S F R P F U N C T I O N A L R E A C T I V E P R O G R A M M I N G F U N C T I O N A L P R O G R A M M I N G O V E R T I M E H AV I N G E M PAT H Y W H I L E T E A C H I N G P R O G R A M M I N G @holtbt
  2. WA I T, T H I S S O U

    N D S D I F F E R E N T • Talk is posted here: nho.lt/promise • Slides are posted here: nho.lt/promise-slides • The talk isn’t very empathetic • I’ll still address the main points at the end
  3. W H AT I A M N O T •

    A neuroscientist • A psychologist • A master of teaching
  4. W H AT I A M • A developer •

    Empathetic (trying to be) • Taught thousands of people to code
  5. F U N D A M E N TA L

    T O G O O D T E A C H I N G I S H AV I N G C O M M O N D E F I N I T I O N S O F T E R M S (also the best marital advice I ever got: when arguing, argue about the same thing)
  6. K N O W L E D G E :

    f a c t s , s k i l l s , t e c h n i q u e s , a n d e x p e r i e n c e re l a t e d t o p ro g r a m m i n g
  7. A N O T H E R K E Y

    T O T E A C H I N G T O E S TA B L I S H A N D VA L I D AT E A S S U M P T I O N S (also good marital advice)
  8. A S S U M P T I O N

    S • The student is a willing learner • You know enough to teach • You care more about the student learning than feeling smarter than the student
  9. I D O N ’ T T H I N

    K I I N V E N T E D A N Y O F T H I S B U T T H I S I S M Y M E N TA L M O D E L O F H O W K N O W L E D G E A N D T E A C H I N G W O R K S
  10. W H AT Y O U K N O W

    • Represents the corner of programming you know. • This is only an infinitesimal corner of all knowledge available
  11. W H AT Y O U K N O W

    Y O U D O N ’ T K N O W • You know the thing exists, you have the vocabulary to Google it and learn it • It’s within reach, just not yet grasped • Example: You understand while loops, you know do loops exist. With a bit of time and Googling, you could understand do loops
  12. What You Know What You Know You Don’t Know What

    You Don’t Know You Don’t Know
  13. W H AT Y O U D O N ’

    T K N O W Y O U D O N ’ T K N O W • What you don’t even know exists • Knowledge totally out of reach • You can’t Google it because you don’t have the terminology to describe what you’d be looking for • Example: A person just learning about if statements doesn’t have the vocabulary to describe free monads
  14. • Contributes to why less experienced devs overestimate their knowledge.

    • Contributes to why more experienced devs feel dumb a lot
  15. S O W H Y I S T H I

    S R E L AT E D T O T E A C H I N G ?
  16. S H A R E D E X P E

    R I E N C E M A K E S E M PAT H Y H A R D E R
  17. S H A R E D E X P E

    R I E N C E • A polar plunge is when you dive into freezing water. For some dumb reason ¯\_(ϑ)_/¯ • Micha was excited to do the polar plunge but chickened out at the last moment. Felipe isn’t sympathetic since he’d done it before. Felipe is an asshole. • People who had previously done a polar plunge were less sympathetic than those who had never done it
  18. A S H U M A N S W E

    ’ R E R E A L LY B A D AT R E C A L L I N G H O W PA I N F U L E X P E R I E N C E S W E R E
  19. W E C H O O S E I N

    S T E A D T O R E M E M B E R T H AT W E O V E R C A M E T H E C H A L L E N G E A N D E X P E C T O T H E R S T O D O S O A S W E L L
  20. F O R L O O P S • Your

    friend comes to you, telling you that he’s having trouble with for loops • Your answer: “Oh, that’s easy. Let me show you.”
  21. F O R L O O P S • Your

    friend goes to his brother who doesn’t code and says he’s having trouble with for loops, a concept in programming. • His brother’s answer answer: “Oh, that sounds hard. I’m impressed you know so much.”
  22. T H E E M PAT H Y G A

    P • Bridging the empathy gap is a learned and practiced skill • You have to acknowledge that you no longer know what it feels like to learn a skill you already know • Learning to peel back the layers of what you know to teach someone using vocabulary they know is hard
  23. . M A P ( ) • “Oh, it’s easy.

    You just take a function that transforms one value to another, pass that into map, and it’s transforms the array and gives you a transformed array.”
  24. W E ’ R E TA K I N G

    A N D M A K I N G I T H A R D
  25. I N F O R M AT I O N

    P R I V I L E G E • Unlike gender, racial, ability, or other inherited trait privilege, your information privilege fluctuates constantly based on what the subject is
  26. N I E M Ó W I Ę P O

    P O L S K U
  27. I N F O R M AT I O N

    P R I V I L E G E • In two slides I went from a privileged perspective to a bottom of the information pyramid • You must learn to recognize your information privilege and overcome it
  28. F U N C T I O N A L

    P R O G R A M M I N G • Oh, you need to use pure functions • Oh, you need a function without side effects • Oh, you need a function that doesn’t keep or modify any state • Oh, you need a function that given input(s) gives output • Oh, you need to use Haskell
  29. U S I N G J A R G O

    N A C T I V E LY P U T S D I S TA N C E B E T W E E N Y O U R S T U D E N T A N D U N D E R S TA N D I N G T H E C O N C E P T
  30. E S 7 O B S E R VA B

    L E S P R O M I S E T O N O T U S E P R O M I S E S @ H O LT B T E S 2 0 1 6 E S 2 0 1 7 java s cr ip t LOL
  31. A R R AY S • Arrays are groups of

    values • [0, 1, 2, 3, 4, 5, 7, 8, 9] • [‘Real Salt Lake’, ‘Seattle Sounders’, ‘LA Galaxy’]
  32. U S I N G M A P • With

    map, we can transform entire arrays • [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] • [‘REAL SALT LAKE’, ‘SEATTLE SOUNDERS’, ‘LA GALAXY’]
  33. W H AT I F Y O U H A

    D A N A R R AY T H AT J U S T A P P E A R E D O V E R T I M E ? • Instead of an array, where all your data is there, available already, your array is filled over time • Since we’re only applying a function, we can apply this function now or later • An observable is an array that appears over time
  34. E X A M P L E S • [0

    . . . . . . . . . 1 . 2 . . . . . . . . 3 . 4 . 5 . . . 6] • [‘Real Salt Lake’ . . . . . . . . . . ‘Seattle Sounders’ . . . . . . ‘LA Galaxy’]
  35. E X A M P L E S • [0

    . . . . . . . . . 2 . 4 . . . . . . . . 6 . 8 . 10 . . . 12] • [‘REAL SALT LAKE’ . . . . . . . . . . ‘SEATTLE SOUNDERS’ . . . . . . ‘LA GALAXY’]
  36. W E G E T T O T R E

    AT A R R AY S A N D O B S E R VA B L E S T H E S A M E WAY
  37. W H Y N O T P R O M

    I S E S • Promises are great for representations of single, one-time async values, like AJAX requests • Promises suck for orchestration, chaining, multi-event, cancellation, or anything besides one-time, simple values • Suck to debug
  38. W H Y O B S E R VA B

    L E S • Still suck to debug • Complex • Composable • Declarative • Able to model very complicated systems
  39. O B S E R VA B L E S

    I S E S . N E X T ? • Yes • Maybe ES2018 if I had to take a guess • TC39 wants (cancelable) promises, observables, async/await, generators, and async iterators all to play nice with each other