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.