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

Learning A New Language While Learning A New Language - AppDevCon, Amsterdam, March 2018

Learning A New Language While Learning A New Language - AppDevCon, Amsterdam, March 2018

[UPDATE: I've tried reuploading this four times and it's still not getting past processing the first slide. Working with SpeakerDeck to try to figure out what the hell is going on but until then, please enjoy this older version: https://speakerdeck.com/designatednerd/learning-a-new-language-while-learning-a-new-language-gdg-devfest-nl-november-2017]

An updated version of my talk about learning Kotlin and Dutch 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

March 16, 2018
Tweet

More Decks by Ellen Shapiro

Other Decks in Technology

Transcript

  1. Learning a new language while Learning a new language AppDevCon

    | Amsterdam | March 2018 @DesignatedNerd | bakkenbaeck.com | justhum.com
  2. !

  3. !

  4. !

  5. !

  6. vs.

  7. ->

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

    mijn...maaltijd met een creditcard? THEM: Nee, we accepteren alleen pinpas.
  9. 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...
  10. 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?
  11. 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!
  12. 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 }
  13. 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) }
  14. True Friends exactly the same computer -> computer student ->

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

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

    work -> werk student -> student orange -> oranje weekend -> weekend text -> tekst map -> map func -> fun filter -> filter enum -> enum class
  17. !

  18. fun main(args: Array<String>) = runBlocking<Unit> { val a = async(coroutineContext)

    { log("I'm computing a piece of the answer") 6 } val b = async(coroutineContext) { log("I'm computing another piece of the answer") 7 } log("The answer is ${a.await() * b.await()}") }
  19. 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
  20. 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.
  21. 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.
  22. 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.