Seu valor para o mercado vem da sua capacidade de resolver problemas complexos, para isso, conhecimento em algoritmos e estruturas de dados é indispensável.
Desenvolvo “gente que desenvolve software” há mais de 30 anos, ensinando, inclusive, algoritmos e estruturas de dados. Formei um grupo de estudos, baseado em um método que criei, desenvolvi e validei com gente que quer ir “além do básico“
Formei um grupo de estudos, baseado em um método que criei, desenvolvi e validei com gente que quer ir “além do básico“.
Você já sabe, mas não custa lembrar…
Algoritmos e Estruturas de Dados são essenciais para criar software que escala de verdade. Por isso, é conhecimento obrigatório nas big techs.
Sessões quinzenais ao vivo com 2 horas gravadas (um tema importante para a indústria) + 2 horas não gravadas (tema livre, carreira)
Cursos gravados, com lições curtas, detalhando um tema relevante.
Lição gravada, com 30+ minutos, explicando um tema importante.
Sessões, ao vivo, com membros do grupo, tratando de um tema importante, só com código!
No início de cada masterclass, serão relembrados conceitos essenciais para o encontro
Este grupo opera de forma contínua, como um programa perpétuo que você pode acompanhar em seu próprio ritmo.
O registro das sessões anteriores também estará disponível para você, oferecendo uma oportunidade para aprofundar ainda mais o seu entendimento sobre algoritmos e estruturas de dados.
Centenas de desenvolvedores participam ativamente, aprovam a metodologia e já obtém resultados “além do básico“
Ao longo do tempo, exploraremos a teoria e a prática de algoritmos e estruturas de dados. Confira a seguir alguns dos temas abordados:
Ao longo do tempo, exploraremos a teoria e a prática de algoritmos e estruturas de dados. Confira ao lado alguns dos temas abordados.
É importante ressaltar que esta é apenas uma lista não exaustiva, e que outros tópicos relevantes serão abordados, sempre dando ênfase para aqueles que irão te ajudar mais na carreira. Além disso, abordaremos também como se preparar para processos seletivos em big techs.
Você sabe que esse conhecimento não é restrito a uma linguagem ou framework de desenvolvimento específico. Os exemplos de código são sempre fornecidos para que você consiga entender, independente da linguagem de programação que utiliza.
Análise de algoritmos e notação assintótica
Algoritmos de busca e classificação
Estruturas de dados básicas: pilhas, filas, listas ligadas,
vetores e matrizes
Árvores binárias de busca e suas variações (AVL, rubro-negras, B)
Grafos: representação, busca em largura e profundidade, algoritmos de caminho mínimo (Dijkstra, Bellman-Ford, Floyd-Warshall), árvores geradoras mínimas (Kruskal, Prim)
Programação dinâmica e memorização
Algoritmos e estruturas modernas: Bloom Filter, HyperLogLog, Trie
Estruturas de dados mais complexas: árvores B, árvores de Fenwick, segment trees
Heurísticas e meta-heurísticas: simulated annealing, algoritmos genéticos, otimização por enxame de partículas
É importante ressaltar que esta é apenas uma lista não exaustiva, e que outros tópicos relevantes serão abordados, sempre dando ênfase para aqueles que irão te ajudar mais na carreira. Além disso, abordaremos também como se preparar para processos seletivos em big techs.
Você sabe que esse conhecimento não é restrito a uma linguagem ou framework de desenvolvimento específico. Os exemplos de código são sempre fornecidos para que você consiga entender, independente da linguagem de programação que utiliza.
Confira quais são as próximas sessões de masterclass que já estão agendadas para este grupo:
Você já se deparou com a necessidade de buscar palavras em um grande conjunto de strings? Já pensou em uma estrutura de dados que permita uma busca rápida e eficiente de prefixos em um grande conjunto de strings? Então você precisa conhecer a Trie, uma árvore de busca digital que permite uma busca eficiente de palavras e prefixos em um grande conjunto de strings. Com a Trie, é possível realizar buscas com tempo de execução linear em relação ao tamanho da string de entrada.
Você já se deparou com a necessidade de buscar palavras em um grande conjunto de strings? Já pensou em uma estrutura de dados que permita uma busca rápida e eficiente de prefixos em um grande conjunto de strings? Então você precisa conhecer a Trie, uma árvore de busca digital que permite uma busca eficiente de palavras e prefixos em um grande conjunto de strings. Com a Trie, é possível realizar buscas com tempo de execução linear em relação ao tamanho da string de entrada.
Você está procurando uma estrutura de dados que seja eficiente, escalável e fácil de manter para lidar com listas ordenadas? Então você precisa conhecer a SkipList! Com um tempo de execução médio de O(log n), a SkipList permite a busca rápida de elementos em uma lista ordenada, além de ser fácil de implementar e manter. A SkipList também é dinâmica, permitindo a inserção e remoção de elementos, o que a torna ideal para projetos em que os dados precisam ser atualizados frequentemente. Com a SkipList, você pode garantir que seus dados sejam armazenados e mantidos de forma eficiente, tornando-se uma opção ideal para aplicações que necessitam de alta performance e baixa latência.
Você está procurando uma estrutura de dados que seja eficiente, escalável e fácil de manter para lidar com listas ordenadas? Então você precisa conhecer a SkipList! Com um tempo de execução médio de O(log n), a SkipList permite a busca rápida de elementos em uma lista ordenada, além de ser fácil de implementar e manter. A SkipList também é dinâmica, permitindo a inserção e remoção de elementos, o que a torna ideal para projetos em que os dados precisam ser atualizados frequentemente. Com a SkipList, você pode garantir que seus dados sejam armazenados e mantidos de forma eficiente, tornando-se uma opção ideal para aplicações que necessitam de alta performance e baixa latência.
Você está procurando uma maneira rápida e eficiente de realizar operações em um intervalo específico do array? A Segment Tree é a solução! Com sua eficiência, flexibilidade e facilidade de implementação, a Segment Tree é uma estrutura de dados essencial para qualquer programador preocupado com desempenho. Além disso, a Segment Tree ocupa menos espaço na memória em comparação com outras estruturas de dados, o que a torna uma escolha ideal para projetos que lidam com grandes conjuntos de dados. Com a Segment Tree, você pode facilmente realizar operações como soma, mínimo, máximo, entre outras, em um intervalo específico do array, permitindo que seu projeto tenha um desempenho otimizado e escalável.
Você está procurando uma maneira rápida e eficiente de realizar operações em um intervalo específico do array? A Segment Tree é a solução! Com sua eficiência, flexibilidade e facilidade de implementação, a Segment Tree é uma estrutura de dados essencial para qualquer programador preocupado com desempenho. Além disso, a Segment Tree ocupa menos espaço na memória em comparação com outras estruturas de dados, o que a torna uma escolha ideal para projetos que lidam com grandes conjuntos de dados. Com a Segment Tree, você pode facilmente realizar operações como soma, mínimo, máximo, entre outras, em um intervalo específico do array, permitindo que seu projeto tenha um desempenho otimizado e escalável.
Você está procurando uma técnica escalável e eficiente para distribuir carga em sistemas distribuídos? A Consistent Hashing é a resposta! Com sua distribuição uniforme de carga, tolerância a falhas e facilidade de implementação, a Consistent Hashing é uma técnica muito popular entre os desenvolvedores de sistemas distribuídos. Além disso, a Consistent Hashing é muito eficiente em termos de tempo e espaço, tornando-a uma excelente opção para sistemas com grandes conjuntos de dados. Com a Consistent Hashing, você pode construir sistemas distribuídos escaláveis e tolerantes a falhas, distribuindo a carga de forma uniforme em todos os servidores.
Você está procurando uma técnica escalável e eficiente para distribuir carga em sistemas distribuídos? A Consistent Hashing é a resposta! Com sua distribuição uniforme de carga, tolerância a falhas e facilidade de implementação, a Consistent Hashing é uma técnica muito popular entre os desenvolvedores de sistemas distribuídos. Além disso, a Consistent Hashing é muito eficiente em termos de tempo e espaço, tornando-a uma excelente opção para sistemas com grandes conjuntos de dados. Com a Consistent Hashing, você pode construir sistemas distribuídos escaláveis e tolerantes a falhas, distribuindo a carga de forma uniforme em todos os servidores.
Você está interessado em aprender sobre um dos algoritmos mais utilizados em otimização linear? Então você não pode perder a aula sobre Simplex! Este algoritmo foi desenvolvido por George Dantzig em 1947 e é usado em diversos campos, como engenharia, economia e ciência da computação, para otimização de processos e tomada de decisões.
Você está interessado em aprender sobre um dos algoritmos mais utilizados em otimização linear? Então você não pode perder a aula sobre Simplex! Este algoritmo foi desenvolvido por George Dantzig em 1947 e é usado em diversos campos, como engenharia, economia e ciência da computação, para otimização de processos e tomada de decisões.
Eu, Elemar Júnior, tenho três décadas de experiência e construí uma carreira internacional bem-sucedida. Entretanto, minha trajetória não foi fácil. Quero te ajudar a aproveitar oportunidades que aprendi a reconhecer e a desviar dos desafios que nem sempre identifiquei em tempo.
Durante anos, desperdicei muita energia dando atenção exagerada para tecnologias que ganhavam e perdiam relevância rapidamente. Felizmente, acabei percebendo que conhecer fundamentos – como algoritmos e estruturas de dados – tem impacto muito maior na capacidade de um desenvolvedor resolver problemas do que conhecer bibliotecas e frameworks da moda. Quando entendi isso, comecei a produzir mais resultados, maiores e em menos tempo – isso acabou influenciando outras pessoas a buscar o mesmo.
Há anos, venho ajudando desenvolvedores a fazer software de maneira mais efetiva, indicando e influenciando ao estudo dos fundamentos. Essas pessoas também têm alcançado o sucesso. De muitas formas, hoje me considero, mais do que desenvolvedor de software, um profissional que aprendeu a “desenvolver gente que desenvolve software”.
Quero te ajudar a ter mais sucesso. Vou te mostrar o que aprendi na teoria e, principalmente, na prática, sobre algoritmos e estruturas de dados.
Conheça a metodologia que desenvolvi e que é aplicada no meu grupo de estudos, para você avançar de forma consistente em sua carreira:
Assinatura anual
R$ 79,54/mês
ou R$ 797,00 à vista
A partir de 21 abril, o valor de adesão ao grupo
passa a ser R$ 1.248,00
Um ano de participação no grupo intensivo de estudos
Sessões de masterclass ao vivo, interativas, com lições do mundo real
Participação em live codings periódicas, para aprofundar cada tema
Acesso a todos os cursos gravados que detalham lições importantes de estudo
Lições complementares com deep-dive em tópicos complexos
Acesso às gravações de todas as masterclasses e lições já realizadas
Orientação exclusiva de especialistas em temas complementares
Grupo exclusivo no Telegram, com participação e moderação de ElemarJR
Acesso às apresentações utilizadas nas aulas e referências de livros
10% de desconto na adesão de qualquer outro grupo intensivo com Elemar JR
Você tem 7 dias de garantia
Encontre aqui algumas respostas para algumas perguntas frequentes.
O principal diferencial está na dinâmica das aulas. Ao invés de você assistir lições gravadas e tirar dúvidas via comentários, ao se inscrever em qualquer grupo intensivo, você tem direito a um ano de sessões ao vivo de masterclass com Elemar Júnior. Nessas sessões é compartilhado um pouco de teoria, mas sobretudo a experiência prática de Elemar sobre o que funciona e principalmente o que não funciona. Além disso tudo, você ainda tem a contribuição dos colegas do grupo, que é sempre muito enriquecedora.
Como as sessões de masterclass são gravadas, você pode assistir quantas vezes quiser (inclusive aquelas que foram realizadas antes da sua inscrição) e se você ficar com dúvida em algum tema ou precisar de mais explicações, Elemar pode produzir lições adicionais que ficam disponíveis em nossa plataforma para você consultar sempre que precisar. Cada grupo também possui um grupo exclusivo no Telegram a partir de onde trocamos muitos conhecimentos e experiências entre todos os participantes.
Oficialmente, pouco mais de duas horas, mas para além do período da gravação, Elemar costuma continuar mais um tempo com a turma, trocando ideias e respondendo até questões “mais abertas” não relacionadas ao tema da masterclass. A interação com os alunos após as aulas sempre rendem excelentes discussões e se tornam um bônus para aqueles que conseguem participar dos encontros ao vivo. Na prática, são duas horas adicionais de bate-papo com muita troca e vivências de cada um dos participantes.
Caso você tenha dúvidas após assistir a uma masterclass ou gostaria de mais explicações sobre o assunto, Elemar pode produzir lições adicionais, sob demanda, que depois ficam gravadas em nossa plataforma para você consultar sempre que precisar. O principal objetivo de nossa metodologia de ensino é capacitar os participantes a lidarem com situações reais do dia a dia, por isso que, além das sessões de masterclass que já são interativas e dinâmicas, agregamos conteúdo adicional, em formato de lições, para atender às necessidades dos nossos alunos.
Não se preocupe! Ao assinar o grupo intensivo você terá o prazo de 7 dias para solicitar reembolso, caso desista de dar continuidade no aprendizado. Esse período será suficiente para você conhecer a metodologia de ensino e consultar as aulas já disponíveis para avaliar se elas atendem às suas necessidades e expectativas.
O grupo intensivo tem duração de um ano após a inscrição, mas como novas sessões de masterclass serão realizadas de forma contínua, após encerrar o seu período de assinatura, você pode renovar para continuar participando de novas aulas ao vivo.
Lembrando que todas as aulas realizadas antes do momento da inscrição estão disponíveis para consulta na plataforma da Hotmart, ou seja, ao se inscrever, você terá um ano de acesso a novas aulas ao vivo e à gravação de todas as aulas realizadas desde o início do grupo.
Claro! Além de poder falar com Elemar, a sua interação é muito bem-vinda! Além de você poder interagir com ele nas aulas ao vivo, para cada grupo intensivo temos um grupo exclusivo no Telegram, onde o Elemar tem participação ativa.
Não encontrou a resposta que procurava? Fale conosco pelo WhastApp ou por e-mail.
Você quer ser reconhecido como um desenvolvedor de software habilidoso e capacitado em algoritmos e estruturas de dados? Não quer ter medo de layoffs e ter a liberdade de trabalhar onde quiser? Eu, Elemar Júnior, posso ajudá-lo a alcançar esse objetivo.
Algoritmos e estruturas de dados são conhecimentos fundamentais para o repertório de qualquer desenvolvedor que deseja ir “além do básico“. Esse grupo de estudos é dedicado a profissionais que desejam isso.
Tenho quase 30 anos de experiência desenvolvendo software de classe mundial e, principalmente, “desenvolvendo gente“. Sei o que funciona e o que não funciona para aprender algoritmos e estruturas de dados do jeito certo e avançar na carreira.
Não perca a oportunidade de se destacar e ser reconhecido como um dos melhores desenvolvedores de software. Participe do nosso grupo intensivo de estudos e veja o quanto você pode crescer profissionalmente. Transforme sua carreira e alcance o sucesso e a liberdade que você merece. Participe!
Aprenda os fundamentos para analisar algoritmos, em um curso aprofundado sobre o tema (incluso para membros grupo, que pode ser adquirido a parte)
Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Reputação e Marketing Pessoal:
Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de DDD do Jeito Certo:
Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de GoF Design Patterns:
Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Algoritmos e Estruturas de Dados: