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.
Opa! Sei que o estudo de algorítimos e estruturas de dados é algo de longo prazo; como eu disse, quero realmente estudar tudo do jeito certo para ser um profissional qualificado; e certamente seu concelho vai me ajudar, muito obrigado pelo comentário tão completo!
Sei que o caminho é difícil, mas vou estudar e me dedicar pra alcançar meu objetivo, já vou procurar os livros recomendados. valeu!
Muito massa! Já vou salvar para acrescentar na lista de estudos!
Só pra saber, isso se aplica a Java?
Cara, dizer que vai levar "meses" pra fazer todos os exercícios do "The Art of Computer Programming" me fez rir.
Na empresa que eu trabalhava, tinha esta série de livros (que é caríssima) e sinceramente é impossível fazer todos os exercícios deste livro, ele é gigante.
Aliás, tem uma história até que o Bill Gates disse que se alguém já leu todo o livro pra mandar o curriculum diretamente pra ele.
O que eu vejo com estruturas de dados é a capacidade de entender as principais estruturas e principalmente experimentar usando elas para resolver desafios DIARIAMENTE.