Executando verificação de segurança...
2

Atrelado a isso que o KitsuneSemCalda falou, também recomendo ao final do estudo das estruturas de dados que ele colocou, você fazer um estudo sobre complexidade assintótica e analisar os tempos de execução de cada estrutura, isso é bom para desenvolver um raciocínio crítico em relação a sua forma de escrever código e consequentemente irá melhorar sua escrita de código.

Suponha que você tem uma matriz de tamanho n para linhas e colunas e você deseja percorrer ela para fazer alguma operação, para isso terá que ser usado um for aninhando e isso tem uma complexidade assintótica, no pior caso, de O(n^2), nesse caso eu estou analisando o pior caso e pra isso uso a notação Big O (Limite Superior), mas existem outras notações como a Theta (Limite Restrito) e a Omega (Limite Inferior).

É algo um pouco difícil de entender, mas depois que entender vai te ajudar bastante principalmente em entrevistas de emprego no exterior, nunca participei de uma, mas já vi alguns vídeos no YouTube e vi que é algo que eles cobram muito isso de saber o tempo de execução de um algoritmo e como otimizá-lo pra que ele tenha uma complexidade assintótica melhor.

Carregando publicação patrocinada...
2

Um dos que eu recomendo dos vídeos de algoritmos e estrutura de dados que o @messiasolimpio citou são em ordem:

- https://www.youtube.com/watch?v=Gp2m8ZuXoPg&list=PLdsnXVqbHDUcQIuiH9b-i9A85H3A2ZW5W&index=6 : Hello World, Como você nunca viu. Entendendo C
- https://www.youtube.com/watch?v=YyWMN_0g3BQ&list=PLdsnXVqbHDUcQIuiH9b-i9A85H3A2ZW5W&index=7 : O que vem depois do Hello World! Consertando meu C
- https://www.youtube.com/watch?v=9GdesxWtOgs&list=PLdsnXVqbHDUcQIuiH9b-i9A85H3A2ZW5W&index=8 : Árvorés e estruturas de dados. O começo de tudo 

Essa sequencia de vídeos pertencem ao Fabio Akita mas ele é bem completinho nas noções básicas