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

Écouter et répéter is so last century (Arrrrcamp 2013)

Écouter et répéter is so last century (Arrrrcamp 2013)

You know what? Learning how to speak another language shouldn't be hard. So lets put it in a context that we know and love - programming in Ruby. This is a talk about abstraction, counting, syntax and grammar. It's nerdy, but its fun.

What you won't see is your typical "language talk" - I won't be banging on about language theory (except to relate to Ruby), or any particular natural language.

I think this is better, because it's about applying what you already know to the task at hand. There might even be a lesson or two snuck in there - wouldn't that be nice?

Ryan Stenhouse

October 03, 2013
Tweet

More Decks by Ryan Stenhouse

Other Decks in Technology

Transcript

  1. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  2. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  3. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Hi, I’m Ry

    View full-size slide

  4. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    I’m a freelance engineer
    these days

    View full-size slide

  5. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    I ❤ communication

    View full-size slide

  6. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    I ❤ languages

    View full-size slide

  7. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    I ❤ learning

    View full-size slide

  8. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  9. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Scary audience
    participation time

    View full-size slide

  10. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  11. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Écouter et répéter is
    SO last century

    View full-size slide

  12. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  13. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    JUST SAY NO

    View full-size slide

  14. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    So let’s talk about
    languages

    View full-size slide

  15. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    What are they?

    View full-size slide

  16. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Vocabulary

    View full-size slide

  17. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Morphology

    View full-size slide

  18. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Syntax

    View full-size slide

  19. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    The last two are
    basically grammar

    View full-size slide

  20. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    1 class Thing
    2 def foo; end
    3 def foo!
    4 foo
    5 raise “More Contrived Examples”
    6 end
    7 end
    8
    9 Thing.new.foo
    10 Thing.new.foo!

    View full-size slide

  21. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    1 class Thing
    2 def foo; end
    3 def foo!
    4 foo
    5 raise “More Contrived Examples”
    6 end
    7 end
    8
    9 Thing.new.foo
    10 Thing.new.foo!
    Vocabulary

    View full-size slide

  22. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    1 class Thing
    2 def foo; end
    3 def foo!
    4 foo
    5 raise “More Contrived Examples”
    6 end
    7 end
    8
    9 Thing.new.foo
    10 Thing.new.foo!
    Syntax

    View full-size slide

  23. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    1 class Thing
    2 def foo; end
    3 def foo!
    4 foo
    5 raise “More Contrived Examples”
    6 end
    7 end
    8
    9 Thing.new.foo
    10 Thing.new.foo!
    Morphology

    View full-size slide

  24. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Ack! Getting boring,
    sorry

    View full-size slide

  25. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  26. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Ok Ry, back on track

    View full-size slide

  27. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  28. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    That’s... not Ruby

    View full-size slide

  29. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    lu’

    View full-size slide

  30. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    1 class EcouterEtRepetez < Talks::Base
    2 def deliver
    3 Keynote.start CONTRIVED_SLIDE
    4 end
    5 end
    6
    7 EcouterEtRepetez.new.deliver

    View full-size slide

  31. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    More code!

    View full-size slide

  32. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    1 arry = [ ‘tI\’’, ‘S’, ‘ay’ ]
    2 arry.each do |value|
    3 puts value
    4 end

    View full-size slide

  33. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    1
    2 $arry = array(‘tI\’’, ‘S’, ‘ay’);
    3 foreach($arry as $value) {
    4 echo($value);
    5 }
    6 ?>

    View full-size slide

  34. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    1 arry = [ ‘tI\’’, ‘S’, ‘ay’ ]
    2 for value in arry:
    3 print value

    View full-size slide

  35. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Equivalent, right?

    View full-size slide

  36. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Porting is translation

    View full-size slide

  37. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Why?

    View full-size slide

  38. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Abstraction

    View full-size slide

  39. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    What about...

    View full-size slide

  40. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    1 class Ball
    2 def bounce; end
    3 end
    4 ball = Ball.new

    View full-size slide

  41. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    une balle

    View full-size slide

  42. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Ϙʔϧʔ

    View full-size slide

  43. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Equivalent, right?

    View full-size slide

  44. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Translation is porting

    View full-size slide

  45. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    nuqjatlh?

    View full-size slide

  46. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Abstraction

    View full-size slide

  47. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  48. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    So what’s the
    difference?

    View full-size slide

  49. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Feedback loop

    View full-size slide

  50. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  51. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Immersion

    View full-size slide

  52. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Fear

    View full-size slide

  53. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  54. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  55. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Real people aren’t
    Klingons

    View full-size slide

  56. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Close the loop

    View full-size slide

  57. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  58. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Make friends

    View full-size slide

  59. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    #pairwithme

    View full-size slide

  60. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    #polyglotpair

    View full-size slide

  61. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    @polyglotpairing

    View full-size slide

  62. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Travel

    View full-size slide

  63. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Help out

    View full-size slide

  64. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    And in closing

    View full-size slide

  65. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide

  66. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse
    Why not?

    View full-size slide

  67. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    Dank u wel

    View full-size slide

  68. ryanstenhouse.eu | thehappygeek.co.uk
    @ryanstenhouse

    View full-size slide