Projects

Advent of Code

Dev
Problem solving
Algorithms

Uma alternativa bem mais natalina ao leetcode e codewars

A ascii art tree with a the 'C' as its star

O que é Advent of Code?

A comunidade de programadores é única, mas as vezes ela me surpreende

A não muito tempo, logo após começar a trabalhar com desenvolvimento web, comecei a começar a sentir falta de um certo grau de desafio (provavelmente isso é masoquismo); não me leve a mal, eu gosto muito de desenvolver sistemas web, tanto que eu trabalho e estou graduando no curso de sistema de informação. Porém, muitos dos problemas com esse tipo de arquitetura de software podem ser resolvidos com pura pesquisa e dedicação.

Sempre vai existir uma biblioteca, um código no stackoverflow ou uma pequena gambiarra usando javscript que será capaz de resolver seus problemas

Para não perder meu interesse pela programação, eu comecei a explorar o tal “generative art”, muito provavelmente se você chegou até aqui provavelmente viu alguns dos meus projetos (se não, é só acessar esse link). Eu amo esse tipo de projeto: é criativo, desafiador e super recompensador de ver funcionando, mas as vezes eu não estou muito no clima de usar javascript. Depois de certo convívio com essa… coisa, você cria uma relação de amor e ódio.

Bem. Em uma das minhas pesquisas, me deparei com o Advent of Code, uma série de desafios de programação com tema de… Natal! Eu fique sem palavras, é uma ideia muito louca, mas o “astetic” do site e dos desafios são maravilhosos.

Leetcode e Codewars

De inicio, eu usei o Leetcode para reaprender a sintaxe do C. Eu não tenho muito oque falar sobre, é uma plataforma muito boa; um grande números de desafios são somente para assinantes mas é bem interessante para praticar algoritmos. O mesmo vale para o Codewars, mas essa é uma plataforma que usei por pouco tempo.

Então, qual é o diferencial do Advent of Code? Além do tema natalino, você pode realizar os desafios em qualquer linguagem de programação, ou nem mesmo usando uma linguagem de programação. Como o desafio é obter o resultado correto, não importa como você obteu ele, o importante é chegar na resposta correta!

Como eu uso

Admito que não progredi muito ainda…

Eu comecei pelos desafios de 2015, com o objetivo de completar todos os anos. Porém, comecei a faculdade e a trabalhar e não estou tento muito tempo para continuar, mas eventualmente vou pegar o ritmo novamente.

Todas as minhas soluções até o momento foram feitas usando Python e Javascript, mas pretendo usar algumas linguagens low level para eu praticar, como Rust e C++.