Mir lässt das keine Ruhe, dass du zwei Sprachen gleichzeitig lernen willst, die eigentlich fast den gleichen Einsatzbereich (universelle, objektorientierte Programmiersprache) haben. Deshalb nochmal etwas mehr Meinung dazu:
Wenn man in einer Firma als Entwickler arbeitet, wird man nur sehr selten beide Sprachen benutzen. Es hängt vielmehr von der Branche der Firma ab, welche der beiden Sprachen zum Einsatz kommt - Java findet man in "wirtschaftlichen" Firmen und C++ eher in "technischen" Firmen. Spiele, Systemprogramme, hardware-nahe Sachen - das alles wird bis auf wenige Ausnahmen in C und C++ gemacht. Programme in Unternehmensberatungen, Banken, Versicherungen usw. sind meistens eher in Java geschrieben. Falls du also ungefähr weißt, was du mit deinen Kenntnissen später mal anfangen möchtest, könntest du dich jetzt schon ein bisschen auf eine der beiden Sprachen vertiefen. Da die Prinzipien und die grundlegende Syntax ähnlich sind, lässt sich die andere später schneller dazulernen, falls sie doch gebraucht wird.
Viel sinnvoller fände ich es, Sprachen mit anderen Einsatzgebieten zusätzlich zu Java oder C++ zu lernen. Was ich z.B. in der Praxis häufig benutze:
* eine Skriptsprache: damit lassen sich Operationen auf Textdateien oder allgemein Abläufe automatisieren. Man kann das zwar auch in Java oder C++ machen, aber dann schreibt man mindestens 15x mal so viel Code. Beispiel für solche Aufgaben: Dateien nach einem bestimmten Muster umbenennen, Release der Software erstellen (Prüfen, dass alle Debug-Kommentare weg sind, Versionsnummer erhöhen, ZIP-Datei oder ähnliches erstellen).. Da bieten sich momentan Ruby oder Python als Sprache an. Haben beide den Vorteil, dass man auch Web-Anwendungen damit programmieren kann (Ruby: Rails, Python: Django)
* eine funktionale Sprache: damit teste ich einige Algorithmen, bevor ich sie in Java oder C++ umsetze. In solchen Sprachen muss man völlig anders denken, es gibt nicht einmal Schleifen oder gar if-Abfragen. Dafür sind sie extrem ausdrucksstark - wenn man z.B. QuickSort in einer funktionalen Sprache umsetzt, hat die Umsetzung üblicherweise 2-4 Zeilen, während es in C++ oder Java eher 30 sind. Deshalb sehr beliebit zum schnellen Testen von Ideen. Als Sprache zum Lernen würde ich Haskell empfehlen, da dort wirklich alles "pur" ist - Sprachen wie Scala geben beim Lernen zu viel Freiheit, darauf kann man später immernoch umsteigen, falls man den funktionalen Denkstil mag.
* eine Programmierumgebung: Ganz wichtig finde ich, dass man den Umgang mit der Programmierumgebung beherrscht. Damit meine ich nicht nur die IDE (z.B. Eclipse), sondern die Bordmittel des Betriebssystems. Vorhin wurde ich gefragt, wie viele Code-Zeilen ein Projekt mittlerweile ungefähr hat - sowas kann ich unter Unix-System mit einem einfachen [c]find . -name "*.java" | xargs wc -l[/c] erledigen. Es gibt bestimmt auch Eclipse-Plugins dafür, aber die Suche hätte länger gedauert, als dieses kleine Kommando. Und das ist nur ein Beispiel von vielen, im Alltag benutze ich täglich irgendwelche Unix-Kommandos, um produktiver zu sein. Wie man sowas unter Windows macht, weiß ich nicht, ich benutze da immer Cygwin, wenn ich gezwungen werde, Windows zu benutzen.
* spezielle Sprachen für spezielle Zwecke: In seltenen Fällen, vermutlich fast nur in der Forschung, wird man mit Prolemen konfrontiert, die man mit klassischen Sprachen zwar gut lösen kann, bei denen dann aber das Testen schwierig ist - besonders, wenn es um nebenläufige Sachen wie Threads geht. Dafür gibt es Logiksprachen wie Prolog, mit denen man aus gegebenen Aussagen andere herleiten kann, die logisch korrekt sind - und zur Umsetzung von nebenläufigen Algorithmen beispielsweise Erlang. Aber dieser Punkt wird frühestens in vielen Jahren relevant für dich, falls du mal in die Informatik und nicht in die Software-Entwicklung möchtest.