É muito difícil conter a empolgação quando estamos falando de JavaScript. São tantas possibilidades na própria linguagem para se resolver um mesmo problema: uma infinidade de frameworks e bibliotecas geniais, e uma vasta opções de plataformas que hoje se adequaram para conversar com o JavaScript.
Não há dúvidas de que tudo isso é muito bom, afinal, conseguimos utilizar um mesmo conhecimento para resolver mil e um problemas distintos. Entretanto, existe também um grande problema que muita gente acaba se envolvendo: aprender a base do JavaScript de forma parcial e ir diretamente para as bibliotecas e frameworks.
E é exatamente para tentar amenizar essa situação (que acaba se tornando bastante problemática quando o programador começa a subir de nível nas empresas), que o engenheiro de software Oleksii Trekhleb desenvolveu o repositório javascript-algorithms. Vamos dar uma olhada nele.
Algoritmos em JavaScript
Em termos bem simples, este repositório é uma vasta coleção de algoritmos e estruturas de dados implementadas em JavaScript. Além do código propriamente dito, cada uma das implementações acompanha explicações e links para leituras adicionais, o que torna o aprendizado muito mais completo.
O repositório, criado já há algum tempo, possui mais de quarenta mil estrelas e está dividido de forma muito simples em algumas categorias:
- Estrutura de dados
- Algoritmos
Algoritmos por tópico
- Matemática
- Sets
- String
- Busca
- Ordenação
- Listas Ligadas
- Árvores
- Grafos
- Outros
Algoritmos por paradigma
- Força Bruta
- Dividir para conquistar
- Programação dinâmica
- Outros
Muito bem organizado, não é mesmo? Para cada um dos tópicos há uma lista de algoritmos classificados em B (basic) ou A (advanced). Essas duas letras indicam o nível de complexidade deles.

Para cada algoritmo há um link para uma página específica. Nesta página encontramos as explicações em um arquivo README.md, os testes correspondentes no diretório _tests_ e as implementações propriamente ditas em JavaScript na raiz.

Além de tudo isso, ao final, há o cálculo do esforço computacional da máquina para resolver um problema proposto pelo estudante. Essa métrica é feita usando a notação de Big O.

Isso tudo ajuda não somente a entender o código feito, mas principalmente todo o conceito por trás daquela estratégia de implementação.
Conclusão
Seja você iniciante ou usuário avançado do JavaScript, é fundamental entender como funcionam as estruturas de dados básicas e como implementar (e quando usar) algoritmos clássicos de ordenação, busca, calcular menor caminho, e por aí em diante. No final das contas, este conhecimento pode ser a ponte direta para o seu grande próximo emprego.
PS: caso tenha se desanimado pelo fato do repositório estar em inglês, não desanime! Há uma versão em pt-br disponível neste link.