ahoj, tak jsem se rozhodnul pro C++ [...] C++ je rozhodne vyzva a jak tu predemnou nekdo rekl: zivite se Linuxem? naucte se Win (zjednodusuji) a lehce chapu vyvoj v C++ jako nejaky protiklad k progrmovani v Jave, C#
Hm

Tak to ses rozhodl pro hodně nudnou sázku na jistotu. Jasně, C++ ti zajistí, že pro tebe bude vždycky místo v nějakým kjůbiklu, voda zdarma, stravenky a tři týdny dovolené.
C++ není
vůbec, ani trochu, protiklad k javě. Je to v podstatě úplně stejný jazyk, ve kterém se přemýšlí úplně stejně (když uvažuješ v rámci celého spektra všech jazyků), který ti nedá vůbec nic, než to zaručené místo v kjůbiklu. Kdyby sis aspoň vybral nějaký dynamičtější jazyk (Python, Ruby), ale C++ jako doplněk nebo dokonce "protiklad"? Ach jo...
Takže pro ostatní, kteří se chtejí opravdu naučit něco novýho, ne jenom novou syntaxi pro staré koncepty:
Erlang je
vynikající volba. Naučíte se spoustu nových konceptů, spoustu nových cest, jak řešit problémy. Nejvýraznější vlastností jsou levné procesy (takže úplně cokoli, i sebemenší blbost, může člověk řešit asynchronně, což ho zase donutí myslet v "paralelizovatelném kódu"), immutabilita vyvážená persistentními datovými strukturami a extrémně jednoduchý jazyk jako takový (naučíte se za jedno odpoledne).
Na Erlangu mi nejvíc vyhovuje, jak je nastavená míra čistoty - ne tak moc, aby se z toho člověk zbláznil (některé akademické pokusné jazyky), ale na druhé straně dost na to, aby člověk psal fakt funkcionálně a neměl cukání použít mutable struktury, což pak vede ke garancím, na které se může spolíhat i překladač (to mi třeba přijde jako nevýhoda Clojure - kvůli propojení na javu prostě garance z principu padají).
Nicméně kvůli fakt značné jednoduchosti jazyka a kvůli jeho stáří má Erlang některé nedostatky a kromě toho má pár fakt opruzoidních vlastností (např. že nemůžete znovupoužít název "proměnné", kvůli velice striktní syntaxi se strašně nepohodlně dělá i drobný refaktoring typu "přidám řádek na konec funkce" atd. atd.). Tohle
hodně dobře odstraňuje jazyk Elixir ( elixir-lang.org ), který je s Erlangem plně kompatibilní (oboje jsou to funkcionální jazyky, takže komptibilita je daleko větší než třeba Clojure-Java), takže cokoli se dá napsat v Erlangu, dá se úplně stejně napsat v Elixiru, včetně plné kompatibility na úrovni externích knihoven a standardní knihovny (plná podpora OTP!!!).
Elixir je mladý a doteď se hodně hýbal, takže byl docela opruz držet s vývojem krok (spousta zpětně nekompatibilních změn). Teď se ale ve velice krátké době plánuje vydání verze 1.0, která už bude garantovat stabilní API. Nebojte se, 1.0 je verze samotného Elixiru, nemá to žádný vliv na stabilitu programů jako takových, protože tu zajišťuje rock-solid Erlang VM, OTP atd.
Takže kdokoli si chce rozšířit obzory, Elixir fakt hodně doporučuju. Není to žádná akademická hračka, je to fakt rock-solid záležitost. Sám v tom programuju (pro mě) nejkritičtější věci. Zároveň s Elixirem se člověk naučí Erlang, protože ty dva jazyky jsou hodně provázané. Proto bych taky jako studijní materiál doporučil:
http://learnyousomeerlang.com/ - tam se člověk naučí základní erlangovské koncepty a standardní knihovnu, což pak jenom přepíše do jiné (elixirovské) syntaxe.
Funkcionální programování nepodceňujte, je to fakt parádní záležitost - osvěžující, osvobozující, nádherná

Naučit se nějaký funkcionální jazyk bych doporučil i jenom proto, že člověk získá znalosti, které pak může použít i v konvenčnějších jazycích (např. takový Actor Model by měl znát fakt každý programátor, jenže C++ ani Java ho k tomu moc nepřivede...)
No a pokud by Erlang/Elixir byl na někoho moc, tak ať zkusí aspoň
http://akka.io/ (tam je kvůli JVM možná i větší šance komerční využitelnosti, nevím).