Ahoj,
toto téma se řeší celkem pravidelně asi na všech možných fórech a výsledkem není nikdy jednoznačné řešení, tím mám na mysli, uč se C++.
První věc je, že ti ten jazyk musí sedět jako takový i když to není úplně podmínkou, protože to se taky nechá časem zvládnout. Programátora nedělá programátorem to, že zná syntaxi toho, či onoho problému, ale spíše schopnost zanalyzovat daný problém, nastínit možné cesty řešení, přesně vytyčit klady a zápory, aby se lidé, kteří programování vesměs nerozumí mohli rozhodnout.
To máš jako když si jdeš koupit auto, taky se rozhoduješ dle určitých aspektů, cena, značka (renomé), motor, výbava, reference od známých. Prakticky i tohle vyžaduje zákazník a nejen ten, i tvůj přímý nadřízený bude často stavěn do pozice rozhodnout, kterou se půjde cestou.
Opačný případ je samozřejmě pro čistého kodéra, který "jen" datluje do klávesnice.
Poslední dobou je to spíše tak, že čistý kodér jsi z počátku a postupně tě začnou zapojovat do odhadů, architektury a analýz.
Co se týče C#, tak syntaxe jazyka je jedna věc a zvládnutí technologií okolo je věc druhá. Víceméně, co jsem pochopil, tak si zkoušel jednotlivé jazyky jako takové a hodnotíš, ve kterém jazyce se ti píše lépe.
C# je jazyk velice podobný Javě, takže přechod mezi základem (podmínky, cykly, aj.) je otázkou měsíce (dvou). Tyto jazyky jsou dnes hojně využívány, ale zejména pro webové řešení. Dnes, v době obláčků, telefonů atd. se moc desktopové aplikace nevyvíjejí. To je určité nutné si uvědomit.
S jazykem C# (resp. .NET technologií) jsou pak spojeny technologie WPF/WinForms, ASP.NET/ASP.NET MVC, WebServices, Linq, Entity Framework, ADO, Html, JavaScript, CSS a v neposlední řadě znalost databází, pro .NET technologii asi nejvíce MS SQL.
Tím chci naznačit, že od znalosti syntaxe jazyka je ještě dlouhá cesta poznání k tomu, abys mohl reálně vyvíjet. Nemusíš se bát tou změtí písmenek a všelijakých zkratek, výsledkem je to, že umíš udělat aplikaci běžící lokálně na PC, webovou aplikaci, umíš se nějak připojit do DB, víš jak navrhnout slušnou aplikaci, databázi, máš ponětí, jak se tvoří design aplikací (jak web, tak desktop) a ten zbytek přijde sám.
Co se týče C++, tak to je jazyk, který dle mého názoru nikdy nezapadne, protože vždy bude typ sw, kde se klade důraz na rychlost, odezvu jako je třeba automobilový průmysl atd. I zde samozřejmě platí, že syntaxe není vše, protože nikdo si dneska nepíše vše od základu.
Nevýhodou pak je, že C++ je o řád výš, protože tady neexistuje něco jako Garbage Collector, vše si budeš muset naalokovat a uklidit sám.
Závěrem ti řeknu už jen jednu věc, ve výsledku budeš programovat v tom, za co tě budou platit v práci. Já začínal na Javě, pak se uvolnilo místo v .NET týmu a od ty době nedělám nic jiného :)
Evžen