Io nella mia carriera scolastica ed accademica ho utilizzato Pascal, C, Java e un paio di Assembler
A parte l'assembler, che è un caso particolare, in realtà non cambia molto tra un linguaggio e l'altro, come modo di ragionare
C e pascal sono due linguaggi procedurali, e programmando in quei linguaggi si ragiona in maniera molto simile, cambia solo la sintassi
Java e C# (Che però personalmente non ho mai usato) sono linguaggi a oggetti, e per quel poco che conosco di C# sono anche molto simili come sintassi; anche il C++ è un linguaggio a oggetti e si "ragiona" in maniera simile al Java
Tra le due famiglie c'è una certa differenza, ma comunque superabile; passare da un linguaggio a oggetti a un altro (O da un linguaggio procedurale a un altro) è invece abbastanza semplice
Se vuoi un parere, fossi in te comincerei con il Java, per diversi motivi:
1) E' un linguaggio evoluto, ma di semplice gestione, con librerie di base molto ricche, e la Macchina Virtuale ti permette di disinteressarti di alcune problematiche per concentrarti sulla programmazione (Ad esempio, gestire i thread su Java è relativamente semplice, con C è un bagno di sangue...)
2) E' un linguaggio a oggetti, la famiglia che oggi ha più futuro
3) Ci sono un compilatore (Il JDK ufficiale della Sun) e molti ambienti di sviluppo gratuiti
4) E' multipiattaforma