Vision personnelle C/C++/Java
A mon avis, le C & le C++ sont similaire DANS LEUR SYNTAXE seulement. Donc les bases du C sont indispensables pour approcher C++... à toi de voir si tu grilles les étapes...
Cependant, il y a encore trop de personne qui codent en C++ comme si c'était du C (i.e. les classes, on s'en sert pour faire des librairie de fonctions (en remplacer le bon vieux INCLUDE, ...) sans se soucier de l'approche Objet du C++, hériatges et autres...
Donc la première chose à faire est de comprendre ce qu'est un langage objet! si l'on ne prend pas le temps de faire celà, autant coder en C ou en VB...
Ensuite, concernant Java, un bon programmeur C++ en aura tellement bavé qu'apprendre Java ne devrait pas prendre plus de 5mn... la syntaxe est quasiement la même, seule le philosophie change un peu et exit les débordement de pointeur et les allocations mémoire non libérées...
En fait, un bon programmeur maîtrise C/C++ et, de ce fait, est un tueur dans tous les autres langages. Ce n'est pas pour rien si dans toute formation informatique digne de ce nom on apprend D'ABORD C/C++...
Enfin, le choix du langage dépend profondément de ce que tu veux programmer:
- un drivers système ? un module noyaux sous Linux ? Alors là, c'est du C AINSI de base.
- un logiciel "haut niveau" demandant d'être rapide (type calcul scientifiques, appli de compta, ...), la tu prend du C++
- une appli devant fonctionner sur des systèmes hétérogène ? avec interconnexion base de données à n'en plus finir ? avec appel de fonction à distance ? là, on est d'accord, Java + JDBC + RMI + ... semble être la solution la moins "prise de tête"...
Dans ton cas, tu dis vouloir faire de la prog. réseau sous Linux! Tout dépend du niveau auquel tu veux agir : niveaux socket ? niveau RPC ? ... c'est vrai que Java t'offre une immense quantité de méthodes pour arriver à tes fins sans forcément chercher des heures dans les documentations... Ensuite tout dépend si tu veux devenir "pro" ou simplement t'amuser!
Voilà...