I'd say, if you're reading concurrent programming, you should also take a look into Haskell or Erlang. Erlang is more suited for concurrency, but haskell covers the same paradigm, and I prefer haskell over Erlang.
On the other matter, C is good to begin with if going into imperative programming, but any of the C-family languages should be ok, really.