Olá!
Sua jornada no estudo de estruturas de dados é essencial para se tornar um desenvolvedor eficiente. Antes de mais nada, para responder à sua dúvida "se há algo mais a ser estudado", comece consultando "Introduction to Algorithms" (CLRS) e "The Art of Computer Programming" de Knuth. Até que você tenha resolvido todos os exercícios desses livros, há mais para estudar!
Ao embarcar no estudo de estruturas de dados e algoritmos, é crucial não encarar esse processo como um estudo de curto prazo, que se conclui em apenas alguns meses, e depois você segue em frente. Pelo contrário, trata-se de um compromisso de longo prazo. Se você deseja realmente aprender e dominar esses conceitos, prepare-se para dedicar-se consistentemente pelos próximos anos.
Vamos abordar dois aspectos fundamentais para avaliar seus conhecimentos estruturas de dados e como elas funcionam.
Como Usar Estruturas de Dados e Algoritmos
Após conhecer estruturas de dados básicas em Python como listas, dicionários, conjuntos, filas. Aprenda a aplicá-las em problemas comuns. Sites como CodeRank e HackerElite oferecem exercícios práticos. Tente resolver problemas variados para entender melhor quando e como usar cada estrutura. Resolver consistentemente problemas de nível avançado é um indicativo que você tem um domínio considerável sobre o assunto.
Considere estudar livros como "Elements of Programming Interviews" ou "Cracking the Coding Interview". Esses livros focam em problemas comuns em entrevistas técnicas, que são solucionados com uso correto de estruturas de dados e algoritmos.
Como as Estruturas de Dados e Algoritmos Funcionam
Uma excelente maneira de entender profundamente as tabelas hash é analisar o código-fonte em C do dicionário do Python. Pode parecer complexo no início, mas persista no aprendizado. Antes de desistir, implemente sua própria tabela hash em C do zero. Isso é o básico para qualquer aspirante a engenheiro de software.
Depois implmente uma Árvore B, esse desafio é muito maior. Pode usar Python para essa tarefa. Para tirar 10 precisa implmentar a operação de remoção. Pontos extras se lidar com acessos concorrentes.
Isso não apenas é um ótimo treino para suas habilidades de codificação, fornece insights valiosos sobre o funcionamento destas estruturas, mas o mais importante, é que tudo se resume a aprender a resolver problemas, a essência do trabalho de um engenheiro.