$30 off During Our Annual Pro Sale. View Details »

Learning A New Language While Learning A New Language - GDG DevFest NL, November 2017

Learning A New Language While Learning A New Language - GDG DevFest NL, November 2017

My talk from the GDG DevFest Netherlands about learning Dutch and Kotlin at the same time.

Description:
It turns out there are a lot of things that are similar about learning a human language similar to one you already know and a computer language similar to one you already know. Some things being super-similar provides a huge leg up, but there are plenty of false friends in both types of language, and there are plenty of differences which make you wonder why you ever thought these things were similar in the first place. This is a tale of the triumphs and perils (and eerie similarities) of learning Dutch as a native English speaker and Kotlin as a developer with a good grip on Swift.

Ellen Shapiro
PRO

November 18, 2017
Tweet

More Decks by Ellen Shapiro

Other Decks in Technology

Transcript

  1. Learning a new language while Learning a new language GDG

    DevFest NL | Amsterdam | November 2017 Ellen Shapiro | @DesignatedNerd | justhum.com
  2. None
  3. None
  4. None
  5. None
  6. !

  7. ✌

  8. !

  9. !!!!!

  10. None
  11. None
  12. !

  13. None
  14. None
  15. None
  16. vs.

  17. ANYWAY

  18. None
  19. None
  20. None
  21. None
  22. None
  23. ->

  24. None
  25. Fail hard. Fail often.

  26. Fail hard. Fail often. Learn. Improve.

  27. Spreekt je Engels?

  28. (iedereen spreekt Engels)

  29. Amsterdam ME: Kan...ik...uh, betaal...voor...

  30. Amsterdam ME: Kan...ik...uh, betaal...voor... THEM: Oh don't worry, I speak

    English!
  31. Amsterdam ME: Kan...ik...uh, betaal...voor... THEM: Oh don't worry, I speak

    English! [rest of conversation in English]
  32. Nijmegen ME: Kan...ik...uh, betaal...voor...

  33. Nijmegen ME: Kan...ik...uh, betaal...voor... THEM: [smiling and waiting]

  34. Nijmegen ME: Kan...ik...uh, betaal...voor... THEM: [smiling and waiting] ME: Uh,

    mijn...maaltijd met een creditcard?
  35. Nijmegen ME: Kan...ik...uh, betaal...voor... THEM: [smiling and waiting] ME: Uh,

    mijn...maaltijd met een creditcard? THEM: Nee, we accepteren alleen pinpas.
  36. Nijmegen ME: Kan...ik...uh, betaal...voor... THEM: [smiling and waiting] ME: Uh,

    mijn...maaltijd met een creditcard? THEM: Nee, we accepteren alleen pinpas. ME: Uhhh...ik heb niet...
  37. Nijmegen ME: Kan...ik...uh, betaal...voor... THEM: [smiling and waiting] ME: Uh,

    mijn...maaltijd met een creditcard? THEM: Nee, we accepteren alleen pinpas. ME: Uhhh...ik heb niet...spreekt je Engels?
  38. Nijmegen ME: Kan...ik...uh, betaal...voor... THEM: [smiling and waiting] ME: Uh,

    mijn...maaltijd met een creditcard? THEM: Nee, we accepteren alleen pinpas. ME: Uhhh...ik heb niet...spreekt je Engels? THEM: Of course, I lived in New York for three years!
  39. None
  40. None
  41. You will try to make a new language bend to

    fit the language you know
  42. Naar vs. Near

  43. Ik woon naar het station != I live near the

    station
  44. Java-style Singleton private var instance: SomeService? = null fun getServiceInstance():

    SomeService { if (instance == null) { val retrofit = Retrofit.Builder() .baseUrl("https://example.com") .addConverterFactory(GsonConverterFactory.create()) .build() instance = retrofit.create<SomeService>(SomeService::class.java) } return instance as SomeService }
  45. Moar Kotlin-ier Singleton val instance: SomeService by lazy { val

    retrofit = Retrofit.Builder() .baseUrl("https://example.com") .addConverterFactory(GsonConverterFactory.create()) .build() retrofit.create<SomeService>(SomeService::class.java) }
  46. None
  47. Especially early on, examples seem contrived

  48. None
  49. None
  50. None
  51. None
  52. ANYWAY

  53. None
  54. None
  55. None
  56. Keep going

  57. Keep going (it will eventually make sense)

  58. Friends

  59. True Friends exactly the same computer -> computer student ->

    student weekend -> weekend
  60. True Friends exactly the same computer -> computer student ->

    student weekend -> weekend map -> map filter -> filter
  61. True Friends exactly the same close enough! computer -> computer

    werk -> work student -> student oranje -> orange weekend -> weekend tekst -> text map -> map filter -> filter
  62. True Friends exactly the same close enough! computer -> computer

    werk -> work student -> student oranje -> orange weekend -> weekend tekst -> text map -> map struct -> data class filter -> filter enum -> enum class
  63. False Friends

  64. None
  65. !

  66. None
  67. Slim

  68. None
  69. None
  70. reduce

  71. None
  72. None
  73. None
  74. False friends are easier to remember

  75. Words or concepts with no equivalent

  76. Gezellig

  77. via StuffDutchPeopleLike.com

  78. None
  79. None
  80. None
  81. None
  82. Lekker

  83. Lekker!

  84. None
  85. None
  86. None
  87. None
  88. None
  89. async / await

  90. None
  91. Obligatory Summary Slide

  92. Verplichte Samenvetting Dia

  93. Verplichte Samenvetting Dia → Fail often and hard. Learn from

    your failures.
  94. Verplichte Samenvetting Dia → Fail often and hard. Learn from

    your failures. → Resist the urge to bend a new language to fit one you already know
  95. Verplichte Samenvetting Dia → Fail often and hard. Learn from

    your failures. → Resist the urge to bend a new language to fit one you already know → Don't worry if the initial examples seem contrived.
  96. Verplichte Samenvetting Dia → Fail often and hard. Learn from

    your failures. → Resist the urge to bend a new language to fit one you already know → Don't worry if the initial examples seem contrived. → Find your friends, true and false.
  97. Verplichte Samenvetting Dia → Fail often and hard. Learn from

    your failures. → Resist the urge to bend a new language to fit one you already know → Don't worry if the initial examples seem contrived. → Find your friends, true and false. → Keep trying. You'll figure it out eventually.
  98. ! Bedankt! !