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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View 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 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 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 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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View 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 Slide

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

    View Slide

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

    View 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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    Dank u wel

    View Slide

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

    View Slide