A nawet jak mam jakiś problem z tym C++ to zawsze mogę później do niego wrócić jak lepiej poznam język C podchodny, prawda?
Generalnie nie. Widziałem tu już na forum wzmianki o jakiejś rodzinie języków C-pochodnych. Nawet na Wiki jest lista: https://en.wikipedia.org/wiki/List_of_C-family_programming_languages Niespecjalnie jednak widzę jak np nauka języka R (wymienionego w liście) miałaby mi pomóc w nauce języka OpenCL (też wymienionego w liście).
To co jest ważne to nie podobieństwo niewielkiego wspólnego wycinku gramatyki języka, ale sposób użycia języków. Powszechnie wykorzystywanej części gramatyki języka można się stosunkowo szybko nauczyć. Dla przykładu po przerobieniu http://learnyouahaskell.com/ mogę czytać wiele programów w Haskellu mimo iż kodzenie szło by mi bardzo słabo. Kiedyś uczyłem się Pascala i C z książek które opisywały tylko podstawowe rzeczy, pozwalające głównie na pisanie programów konsolowych (czyli wiedza pozwalająca na implementację algorytmów na zaliczenie z przedmiotu Algorytmy i Struktury Danych). Mimo iż te języki mają różną składnię i Pascal nie należy do grupy języków C-podobnych to nauka C po Pascalu poszła jak z płatka. Od razu zauważyłem podobieństwa. Z drugiej strony mimo iż taki JavaScript należy do języków z rodziny C, a ja sam znam pewnie z paręnaście innych języków z rodziny C to i tak pisanie w JavaScripcie jest dla mnie dalej trudne. Semantyka języka jest znacznie inna niż np takiej Javy mimo iż kod w wielu miejscach wygląda podobnie.
Reasumując: należenie dwóch języków do rodziny C opisanej na Wikipedii moim zdaniem ma niewielkie znaczenie. Dużo większe znaczenie mają inne cechy, jak np typowanie (statyczne vs kacze), tryb kompilacji (AOT, czyli u producenta programu, czy JIT czyli na maszynie klienta), zarządzanie pamięcią (bezpośrednie jak w C/ C++ czy zarządzane jak w Javie/ JavaScripcie/ etc) czy nawet wielowątkowość (JavaScript, Python, Ruby, itd mogą wykonywać tylko jeden wątek jednocześnie, stąd nie ma w tych językach nawet modyfikatora synchronized
, volatile
, etc).
Im mniejsza jest twoja wiedza o C++ tym większą część tej wiedzy będziesz w stanie użyć ucząc się Javy lub JavaScriptu. Te 3 języki są podobne tylko na samym początku nauki. Im bardziej się w nie zagłębiasz tym więcej poznajesz między nimi różnic, które sprawiają, że doświadczenia nie da się specjalnie przenieść między tymi językami.
PS:
Weź też pod uwagę to, że w C++ praktycznie nie robi się komercyjnych aplikacji webowych (a w zasadzie to backendu do nich). Roboty dla takiej kombinacji (webowe C++) raczej byś nie znalazł.