Darei uma dica aos que estão começando a programar:
Se você vai começar, não comece com Java. Não digo que java seja ruim, é uma boa linguagem o problema é que ela é feita para produzir coisas, não para aprender como produzir, neste artigo: http://www.crosstalkonline.org/storage/issue-archives/2008/200801/200801-Dewar.pdf (em inglês), o autor basicamente diz que por experiência própria pessoas que começam a aprender com java acabam se tornando "encanadores", ou seja, ao invés de pensar sobre o problema e chegar a uma solução passam mais tempo procurando alguma classe pronta na API que faça mais ou menos o que elas precisam e ai elas escrevem um código gambiarra para fazer o que elas precisam, mesmo que isso leve muito mais tempo e acabe numa solução pior.
Não diga C/C++ pensando que é a mesma coisa, pois C é uma linguagem e C++ é outra. É comum ver pessoas que aprendem C e acham que C++ é um C com classes. Não é, embora seja muito fácil portar um programa em C para C++ com quase nenhuma modificação, se você se prender a esse pensamento você vai simplesmente programar C em C++.
Aprenda várias linguagens, mesmo que elas não sejam muito reconhecidas, empresas gostam disso, pois se você programa em várias linguagens quer dizer que você poderá aprender qualquer coisa que não saiba rapidamente. Fora que suas habilidades como programador também serão ampliadas.
E por último, mesmo que você decida não começar por C em algum momento tente aprender C, a maior vantagem do C é que ele não te dá quase nada pronto assim força você a sujar a mão com esse baixo nível e te ajuda a compreender melhor como a máquina funciona.