Z tego co wiem nowe C++ dąży do uproszczeń - std::function, lambdy, auto, to_string, "if constexpr"...
Oczywiście pozostaje kompatybilność wstecz, więc można się zaplątać w stare kodowanie, ale jak się chce to można robić całkiem zgrabny kod.
Prawdopodobnie ludzie zaczynający teraz naukę C++ nie będą nawet znali połowy problemów które kiedyś występowały, ponieważ sam język i jego biblioteka standardowa będą ich przed tymi problemami chroniły.
Z drugiej strony Python to inna liga. Prosty i przyjemny język. Przynajmniej na pierwszy rzut oka.
Rozwiązania w Python można przecież rozszerzać o moduły C/C++, można pisać w Cythonie. Python to zresztą język naukowców, obecnie jeśli ktoś pracuje na uczelni to ma do wyboru głównie Python, R, Julia, Fortran, Matlab. Każdy z tych języków ma jakieś zalety. Python - ogromną liczbę darmowych bibliotek, często udokumentowanych licznymi książkami.
Python używany jest na wielu polach gdzie nie ma C++:
- prototypowanie obliczeń naukowych i finansowych (REPL, Jupyter)
- aplikacje webowe
- interaktywny data science (głównie dzięki dostępnym wykresom)
Dla kogoś kto aktualnie jest na studiach informatycznych i nie musi się martwić o zarobek polecałbym się nauczyć obu języków, przynajmniej w podstawowym stopniu. Jeśli chodzi o C++ to polecam szukać materiałów opisujących min. C++11 a najlepiej C++17. Po co się uczyć staroci?