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

C4861b1dfdf3bbb21faec4a1acdf183d?s=47 Ellen Shapiro
November 18, 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.

C4861b1dfdf3bbb21faec4a1acdf183d?s=128

Ellen Shapiro

November 18, 2017
Tweet

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. None
  10. None
  11. !

  12. None
  13. None
  14. None
  15. vs.

  16. ANYWAY

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

  23. None
  24. Fail hard. Fail often.

  25. Fail hard. Fail often. Learn. Improve.

  26. Spreekt je Engels?

  27. (iedereen spreekt Engels)

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

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

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

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

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

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

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

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

    fit the language you know
  41. Naar vs. Near

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

    station
  43. 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 }
  44. 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) }
  45. None
  46. Especially early on, examples seem contrived

  47. None
  48. None
  49. None
  50. None
  51. ANYWAY

  52. None
  53. None
  54. None
  55. Keep going

  56. Keep going (it will eventually make sense)

  57. Friends

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

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

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

    werk -> work student -> student oranje -> orange weekend -> weekend tekst -> text 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 struct -> data class filter -> filter enum -> enum class
  62. False Friends

  63. None
  64. !

  65. None
  66. Slim

  67. None
  68. None
  69. reduce

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

  74. Words or concepts with no equivalent

  75. Gezellig

  76. via StuffDutchPeopleLike.com

  77. None
  78. None
  79. None
  80. None
  81. Lekker

  82. Lekker!

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

  89. None
  90. Obligatory Summary Slide

  91. Verplichte Samenvetting Dia

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

    your failures.
  93. 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
  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 → Don't worry if the initial examples seem contrived.
  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. → Find your friends, true and false.
  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. → Keep trying. You'll figure it out eventually.
  97. ! Bedankt! !