新しいことを学ぶ際に、頭の中で今まで得た知識が邪魔してなかなか身につかないことがあります。たとえば「オブジェクト指向の考えが染み付いていて、関数型の概念が理解しづらい」などです。単純に邪魔しているのもあるかもしれませんが、そのほかに「学んだ自分を正当化したい」気持ちが出て「おごり」が無意識に出てしまっていることも要因の一つではないかと思っています。
Javaを学んできた人がRubyを学ぶ際に「型がないのは不安だ」と感じたり、Haskellに対して「副作用を許さないなんて現実的でない」と思うのは、Javaを学んできた自分を「正」と位置づけ、まるで評論家になったかのように「上から目線」で見てしまっているからなのではないでしょうか。おそらくそれらが初めて学ぶ言語である場合、そのような懸念は持たないでしょう。Javaの「static void main」やC言語のポインタについて、最初に学んだときは「そういうものだ」とそのまま覚えたことと思います。
常に疑問を持ちながら少しずつ納得・解消させていって学ぶ方法もありますが、「初心」を忘れず「まずは受け入れて染み付かせる」姿勢を持つことも大事なのではないかと思います。