Sejamos os primeiros a esclarecer a questão. Não há nenhuma maneira fácil de se tornar bom em nada, mas há uma maneira eficiente de fazer tudo.
Deixe-nos tentar entender a diferença entre fácil e eficiente aqui com a ajuda de uma questão de programação! Considere o problema de “Pesquisar um elemento em um array ordenado”.
- Pessoa A resolve o problema acima usando o algoritmo de busca linear.
- Pessoa B resolve o problema acima usando o algoritmo de busca binária.
Então, a pessoa A aqui resolveu o problema de uma maneira fácil e a pessoa B resolveu o problema de uma maneira eficiente.
Agora, a maneira eficiente de aprender Estruturas de Dados e Algoritmos depende de vários fatores:
- Seu conhecimento prévio de linguagens de programação e DS e Algos básicos.
- O propósito pelo qual você quer aprender.
- Os recursos disponíveis para você.
- Um guia perfeito!
Deixe-nos agora dar uma olhada mais profunda em cada um dos pontos destacados acima:
- Conhecimento prévio de DS e Algo: Se você já é bem versado com as estruturas de dados básicos como Arrays, Linked Lists, etc. e alguns dos algoritmos básicos como Sorting, Searching etc., então você levará comparativamente muito menos tempo do que um novato completo, pois você já conhece o básico. Por exemplo, se você não entende o exemplo de programação mencionado no início do artigo, então você tem um longo caminho a percorrer.
- Objetivo de aprender DS e Algo: Também depende do propósito para o qual você quer melhorar o seu conhecimento de Estruturas de Dados. Algumas pessoas aprendem-nas para entrevistas de emprego, outras para programação competitiva e outras para ganhar conhecimento. Se você está se preparando para entrevistas de emprego então você tem um conjunto limitado de Estruturas de Dados para aprender o que é mais comum nas entrevistas, se você quer se tornar um bom programador competitivo então você terá que focar em estruturas de dados complexas como Árvores de Segmento, Árvores Fenwik, Árvores Indexadas Binárias etc.
- Recursos Disponíveis: Os recursos têm um papel muito importante na aprendizagem de qualquer coisa. Você precisa de um conjunto de bons tutoriais que sejam descritivos o suficiente para limpar todos os conceitos, do básico ao avançado. Você também deve ter um conjunto de perguntas populares para praticar os conhecimentos adquiridos.
- Um Guia: Digamos que você descobriu todos os três pontos acima. Você sabe as coisas que quer aprender, sabe o propósito para o qual quer aprender e também tem todos os recursos e tutoriais para o fazer. Mas você ainda está confuso em muitas coisas como “Por onde começar?”, “Como começar?”, etc. Então, você precisa de alguém que o guie através do processo. Deve haver alguém que o ajude a usar os recursos disponíveis de uma forma eficiente.
Solução dos problemas acima: No GeeksforGeeks, já temos uma vasta colecção de tutoriais e problemas baseados em Estruturas de Dados e Algoritmos escritos por alguns bons programadores competitivos de todo o mundo. Temos também muitos cursos passados, em curso e futuros sobre Estruturas de Dados e Algoritmos que podem ser encontrados no GeeksforGeeks-Courses.
Se você está se preparando para entrevistas, nós recomendamos que você passe pelos seguintes links:
- Guia de Preparação de Colocação
- Guia Passo a Passo para Preparação de Colocação
- Algoritmos Top 10 em Perguntas de Entrevista
- Algoritmos Top 10 em Perguntas de Entrevista | Conjunto 2
- Como se preparar para os melhores MNCs?
- Sudo Colocação
-4347> Arquivos de Preparação de Entrevista
Se você é um aspirante a Programador Competitivo, visitar os links abaixo é um must:
- Como começar com Programação Competitiva?
- Como se tornar um mestre em programação competitiva?
- Uma forma melhor de abordar a Programação Competitiva
- Dicas e Truques para Programadores Competitivos
- Dicas e Truques para Programadores Competitivos | Conjunto 2
- Avançado Estruturas de Dados
- Top 10 Algoritmos e Estruturas de Dados para Programação Competitiva
-4347>Arquivos de Programação Competitiva
>