As pessoas costumam falar que C iria ajudar a entender as bases porque o mundo é feito em C.
Zoeiras a parte, C é uma linguagem que é basicamente um assembly portável contanto que recompile o código e dependencias vai funcionar tudo de forma similar.
Ele também é uma linguagem bem específica para baixo nível: código fonte de sistemas operacionais, drivers, ... onde o gerenciamento de memória é feito na mão com malloc e free.
Quanto começamos a entender essas bases conseguimos entender porque bancos de dados como sqlite, mysql, postgres são feitos em C.
Ou porque python, ruby, javascript são feitos em C ..., além disso a portabilidade entre diversos códigos conhecido como FFI costuma usar a abi de C para compatibilizar as coisas.
Agora uma sugestão que posso dar é usar essa série de vídeos do Akita que explicam C:
- https://youtu.be/Gp2m8ZuXoPg?si=Dq0SCnqAIf46NZrV
- https://youtu.be/YyWMN_0g3BQ?si=sTvM44cyTFM_vTTd
- https://youtu.be/9GdesxWtOgs?si=MjoxkXt1yFn3zVLT
Mesmo meu post sobre "explicando árvores para quem nunca estudou algoritmos e estrutura de dados" eu uso um superset de C conhecido como C++ para exemplificar o código: