C# (C Sharp) é uma linguagem gerenciada que faz parte do framework .NET da Microsoft. Inicialmente só era possível usar no Windows, mas depois apareceu o "Mono" - uma implementação open-source do framework, com suporte ao Mac OS X, Linux e Windows, e que (obviamente) inclui um compilador de C#.
Já C/C++ são linguagens um pouco mais low-level, onde tu tens o poder e responsabilidade de gerenciar a memória (apesar de agora isso já não ser um problema tão grande com os smart pointers e todas essas utilidades que se tornaram standard no C++11).
C/C++ parecem ser as duas linguagens mais usadas no desenvolvimento de software. Por exemplo, a maior parte dos jogos 3D são escritos em uma dessas linguagens. Eu, na minha opinião, não acho que valha a pena aprender C se quiseres aprender C++ mais tarde, porque como já foi dito, são quase o mesmo, exceto a última tem mais funcionalidade (classes, new/delete, static_cast/dynamic_cast/reinterpret_cast/const_cast, void como único parâmetro para indicar que a função não recebe nada não é necessário, etc.). No entanto, não estou a dizer que C não é necessária. Por exemplo, em desenvolvimento de sistemas operativos, C é bastante usada (kernel, principalmente).