Zauważyłem jednak że na studiach praktycznie zawsze jest nauka C a dopiero potem C++, przez co nie wiem czy dobrze zacząłem
Studiami aż tak się nie przejmuj. Poradziłbyś sobie nawet jakbyś nic o programowaniu nie wiedział.
Systemy operacyjne pisze się głównie w C z jakimiś wskawkami ASM i C++. Ponoć Rust jest pretendentem do nowego języka systemów operacyjnych, gdyż C panuje w tej dzidzedzinie już od lat 70. Ale wyparcie C i zmiana tendencji zajmie dziesiątki lat.
programista cpp bez znajomości czystego C to zwykły klepacz kodu
Totalnie nie rozumiem skąd taki pomysł.
czy zabranie się za C przy jednoczesnej nauce lub pisaniu już praktycznych projektów w Cpp ro dobry pomysł
Tak to dobry pomysł. Te języki są tak podobne, że spokojnie możesz jechać równocześnie.
Czy takie cofnięcie się o stopień niżej nie będzie bardzo ciężkie
Nie. Wg mnie C++ jest trudniejszy, bo o wiele obszerniejszy od C.
Generalnie zawsze bardzo dobrym pomysłem jest kupienie grubej książki i solidne jej przerobienie jeśli chcesz dobrze poznać dany język, ale pytanie czy jest to efektywny sposób. Wg mnie nie. Na wielu rozdziałach będziesz się nudził, bo będą wałkować to co już wiesz. Ponadto takie podejście jest teoretyczne. Uczysz się wszystkiego co można w danym języku zrobić po kolei, ale przy omawianiu sporo części języka może Ci się wydać totalnie bez zastosowania przez co gorszy będzie poziom przyswojenia wiedzy. Podejście praktyczne to zmierzenie się z jakimś problemem i odkrycie, że dana część języka jest odpowiedzią na ten problem. Wtedy o wiele lepiej zapamiętasz. Większość takich problemów wyjdzie w trakcie pisania kodu. Dlatego doświadczenie w programowaniu jest tak cenione.I dlatego ja polecam o wiele efektywniejszy i ciekawszy sposób - poznanie podstaw języka a potem pisanie / eksperymentowanie / czytanie czyjegoś kodu (np na githubie czy ze źródeł jakiegoś popularnego otwartego oprogramowania napisanego w C).