Acho que deve estudar primeiro a lógica de programação e como solucionar os problemas, a partir disso você aprende todas as linguagens tendo em mente que você sabendo resolver um problema X em C você saberá resolver em Java porém só terá que aprender a sintaxe da outra linguagem.
você sabendo resolver um problema X em C você saberá resolver em Java porém só terá que aprender a sintaxe da outra linguagem.
Isso é, na minha opinião, uma das maiores falácias que o pessoal vive repetindo por aí.
A abordagem de se resolver um problema em C é bem diferente da abordagem de se resolver esse mesmo problema em Java, ou Ruby, ou Python, ou C# ....
Em coisas básicas como ler um arquivo texto é bem similar em quase todas, mas para algo mais complexo que isso não é apenas sintaxe que muda, a abordagem e forma de organizar as coisas também mudam.
Por isso que é tão comum quando alguém está mudando de linguagem crie um programa estruturalmente parecido com a linguagem que estava mais acostumado, alguém que tem familiaridade faria totalmente diferente. Exemplo real: Meu time era responsável por um projeto em Delphi, um novo programador chegou no time mas as habilidades dele eram em C#, resultado: o código Delphi dele era praticamente um projeto C# escrito com palavras-chave do Delphi.
Então essa de "aprendeu linguagem C aprende qualquer linguagem facilmente" para mim é balela pois não é assim no mundo real.