コンパイラの気持ちになるには訓練が必要なので、最初は高階の型や関数のない C から入って、習得できたら C++ なりジャッヴァなり Rust なり使ってみれば良いでしょうと思っている
C は初学者に向かないなどと言う人は沢山いるけど、 C さえ書けない状態で他の言語を学んだとして、どこまで本質的な理解や正しいメンタルモデルを作れるのかは甚だ疑問
Haskell はじめ関数型言語を最初に学んだ超人がどういったメンタルモデルを持つのかは知らないし、そういう人はもしかすると一生 C を知らずによろしいコードを書けるかもしれないけど(私はそっちのルートでやってないのでわからん)