wenn du Plattformunabhängig programmieren willst, dann würde ich dir am ehesten zu Java raten. Es ist einfacher, als wenn du dich mit den C++ Bibliotheken rumschlagen musst, die plattformunabhängig sind. Zu Beginn wäre Java oder C# dann schon etwas einfacher zu erlernen. Vor allem Java bietet dir eine große, gut dokumentierte Standard-Bibliothek an, mit der du schon sehr weit kommst und für den Anfang sowieso komplett ausreicht.
Das schwirigste beim erlernen vom Programmieren ist es meiner Meinung nach, überhaupt in diese Denkweise reinzukommen. Es ist wie mit dem Fahrrad fahren: Man muss es üben und irgendwann kann mans. Es ist wie eine Fähigkeit. Wenn dus einmal geschnallt hast, verlernst du es eigentlich auch nicht mehr. Und dann fällt es dir auch relativ leicht, dir neue Programmiersprachen anzueignen. Z.B. sind Java und auch C# für das .Net-Framework relativ langsam. Wenn du ein komplexes Programm hast, dass viel Rechenleistung braucht, müsstest du auf eine systemnahe Sprache umsteigen. Und dieser Schritt ist eben nicht mehr so schwer, wenn du das Prinzip an sich verstanden hast.
Am meisten bringen dir dabei Bücher. Im Internet findest du meiner Meinung nach wenig wirklich brauchbare Internetseiten, die einen dann auch wirklich bishin zur Oberflächenprogrammierung begleiten. Allerdings kosten gute Bücher ungefähr 50 Euro.
Zum Einstieg würde ich dir von C++ eher abraten. Es ist sowas von verdammt komplex, was Anfänger mehr als frustieren kann. Lerne lieber zuerst mal Java oder C#. Da kannst du auch dann relativ schnell und leicht zur Oberflächenprogrammierung kommen (aber erstmal wirst du nicht da herumkommen, Konsolenprogramme zu erstellen). Und erst danach würde ich dann evtl. auf systemnähere Sprachen übergehen. Vor allem, weil du dich bei Java und C# erstmal nicht um die Speicherbereinigung kümmern musst und dich auf das eigentliche Programmieren konzentrieren kannst.