Sobre aprendizado, o que aprender, muitos tem respostas melhores que a minha, mas gostaria de falar um pouco mais sobre C, ja que eu a alguns meses tive a mesma confusão.
Sim, ponteiros e alocamento de memoria é importante para não desperdiçar memoria, exemplo besta: Ao inves de passar uma variavel como argumento em uma funçao você pode passar apenas a referencia.
Alocação de memoria, trabalhando com strings ou arrays dinamicos(arrays que aumentam de tamanho conforme a execução), voce VAI usar alocação de memoria, realocar quando precisar mais.
Estive muito confuso igual a você sobre o que fazer com C, ja que todos os tutoriais online praticamente so apresentam a sintax, para procurar coisas mais afundas em C você precisa procurar topicos especificos, por exemplo, faça seu mini shell usando esse tutorial.
Você pode ter interesse por compiladores por causa do video Linguagem Compilada vs Interpretada | Qual é melhor? então procure tutoriais sobre como fazer um analisador lexico em C como por exemplo Lexical Analyser in C
Ou você leu o livro So por prazer, Linux(meu deus isso esta 150 reais a mais do que eu paguei 4 meses atras) e então resolveu procurar sobre e encontrou o OSDev Wiki e o subreddit r/osdev e encontrou conteudo sobre como fazer "hello world" em sistemas operacionais usando C e um pouco de assembly.
Caso não tenha ficado claro, isso foi basicamente minha historia com C nos ultimos meses, se bem que o livro eu tinha lido a mais tempo, mas só consegui encontrar bom conteudo agora.
Emfim, pense no C como uma ferramenta para desenvolver esse tipo de coisa, com uma otima performance, se estiver interessado em falar mais comigo sobre, pode responder esse comentario ou vir falar comigo no privado do discord, meu nome de usuario é "kalanguin", me mande uma mensagem no privado, eu tive duvidas muito parecidas que as suas e eu adoraria responde-las se tiver mais.