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

Transcript

62 slides
  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

More Decks by Brian Holt

Other Decks in Programming