Parts that are harder (for me) than anything on the list:
- buying into a paradigm specific to the language at the beginning. Sure, everyone tells me that multiple dispatch is great in Julia, but that doesn't click until you write a decent amount of code.
- frustration of dealing with exceptions, special cases and unexpected behaviour (R is full of these, for example)
- teaching materials that pile all language features too early on which makes it realy hard to understand why you're doing things in a certain way (the Rust book stands out as an example of this)
- the mental block of comparing the ease of use of the new language to one you already know ("this can be done easier in Python" can be applied to a lot of cases when you're a beginner)
- more limited reasources than what you're used to. If you're used to a hugely popular language like JavaScript or Python, it's really noticeable when your new language doesn't have a StackOverflow answer for every question that you can possibly have.
- buying into a paradigm specific to the language at the beginning. Sure, everyone tells me that multiple dispatch is great in Julia, but that doesn't click until you write a decent amount of code.
- frustration of dealing with exceptions, special cases and unexpected behaviour (R is full of these, for example)
- teaching materials that pile all language features too early on which makes it realy hard to understand why you're doing things in a certain way (the Rust book stands out as an example of this)
- the mental block of comparing the ease of use of the new language to one you already know ("this can be done easier in Python" can be applied to a lot of cases when you're a beginner)
- more limited reasources than what you're used to. If you're used to a hugely popular language like JavaScript or Python, it's really noticeable when your new language doesn't have a StackOverflow answer for every question that you can possibly have.