Não sou programador c++ fulltime mas tenho algumas dicas:

  1. Não se apegue ao estilo C de escrever código.
  2. Use a STL o máximo que puder.
  3. Smart Pointers são vida, não se esqueça deles.
  4. Sempre mantenha um valgrind e um cppcheck por perto.

Me parece a voz da experiência ein. Meu foco é no C++ mesmo, apesar de que C e C++ são quase a mesma coisa, sei que usam paradigmas diferentes.

Alguns conceitos eu ainda não entendo, como o STL, mas certamente é um norte para eu eventualmente estudar.

Agradecido pela a contribuição!

Na realidade C e C++ estão anos-luz de distância entre si, com apenas algumas coisas sendo comuns. Quanto ao termo STL, significa Standard Template Library, que é basicamente o conjunto de funções e estrutura de dados que já vêm prontos para serem usados, como Vector, Map e Set, diferentemente de C, que tudo tem que ser implementado à mão.
Entendo o ponto. Talvez onde eu estudei tenha ensinado de forma supercial para evitar confusões. Lembro de ter visto algo como "C++ é uma extensão do C". Ao mesmo tempo, agora que você falou, em outras fontes de fato é dito que C++ tem infinitas coisas a mais que o C, e apesar de ter relações, há muitas nuances. Esquisito isso, parece que veio um flash de luz quando tu falou em minha mente :smile:
Se fosse só coisas a mais, poderia ser realmente algo como uma extensão, porém existem coisas que estão presentes nas duas linguagens, só que tratadas de formas diferentes. Por exemplo, em C uma função escrita como ```c void foo() { // snip } ``` é diferente de ```c void foo(void) { // snip } ``` enquanto que em C++, a primeira definição (sem `void`) é tratada como a segunda (com `void`). [C function with no parameters behavior](https://stackoverflow.com/a/5929736) PS: Eu não vejo muita gente nova se interessando por low level, e é o que eu mais gosto, então se quiser me adicionar no discord pra trocar um papo depois, aqui está meu user: frangomolhado.