Teaching with Empathy

3994a1ac47c4a684d7378ef06c1571cd?s=47 Brian Holt
September 15, 2016

Teaching with Empathy

Given at DevDay Poland 2016

3994a1ac47c4a684d7378ef06c1571cd?s=128

Brian Holt

September 15, 2016
Tweet

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. None
  3. 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
  4. None
  5. W H AT I A M N O T •

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

    Empathetic (trying to be) • Taught thousands of people to code
  7. None
  8. 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)
  9. 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
  10. 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)
  11. 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
  12. 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
  13. All Programming Knowledge

  14. What You Know

  15. 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
  16. What You Know What You Know You Don’t Know

  17. 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
  18. What You Know What You Know You Don’t Know What

    You Don’t Know You Don’t Know
  19. 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
  20. • Contributes to why less experienced devs overestimate their knowledge.

    • Contributes to why more experienced devs feel dumb a lot
  21. 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 ?
  22. What You Know You Don’t Know What You Don’t Know

    You Don’t Know What You Know
  23. What You Know What you think you can teach well

  24. What You Know What you can actually teach well

  25. 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
  26. Felipe Micha

  27. 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
  28. T H E E M PAT H Y G A

    P
  29. 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
  30. 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
  31. 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.”
  32. 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.”
  33. What You Know What you can actually teach well The

    empathy gap
  34. 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
  35. . 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.”
  36. None
  37. None
  38. None
  39. None
  40. W E ’ R E TA K I N G

    A N D M A K I N G I T H A R D
  41. P R I V I L E G E

  42. What You Know What Your Student Knows Information Privilege

  43. 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
  44. PA R L O I TA L I A N

    O
  45. N I E M Ó W I Ę P O

    P O L S K U
  46. 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
  47. 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
  48. None
  49. 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
  50. 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
  51. 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’]
  52. 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’]
  53. None
  54. 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
  55. E X A M P L E S • [0

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

    . . . . . . . . . 2 . 4 . . . . . . . . 6 . 8 . 10 . . . 12] • [‘REAL SALT LAKE’ . . . . . . . . . . ‘SEATTLE SOUNDERS’ . . . . . . ‘LA GALAXY’]
  57. None
  58. 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
  59. 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
  60. 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
  61. 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
  62. @holtbt