1 pontos por GN⁺ 2024-12-02 | 1 comentários | Compartilhar no WhatsApp
  • Advent of Code, criado por Eric Wastl, é um evento online que oferece diversos quebra-cabeças de programação, que podem ser resolvidos em várias linguagens de programação.

  • É usado para diversos propósitos, como preparação para entrevistas, treinamento em empresas, tarefas universitárias, exercícios práticos e competições de velocidade.

  • Mesmo sem formação em ciência da computação, é possível participar com apenas um pouco de conhecimento de programação e habilidade de resolução de problemas.

  • Dicas gerais

    • Se você travar ao resolver um problema, pode usar os exemplos fornecidos no quebra-cabeça para validar sua solução.
    • Se os exemplos não funcionarem, releia a descrição e verifique se o programa está funcionando como esperado.
    • Se ainda não conseguir resolver, você pode pedir ajuda a um amigo ou tentar novamente mais tarde.
  • Perguntas frequentes

    • Para selecionar um bloco de código, basta clicar três vezes nele com o JavaScript ativado.
    • O Advent of Code usa OAuth para autenticação, e as informações pessoais do usuário não são expostas além das informações públicas.
    • Participar ou não do placar global é uma decisão que pode ser tomada de acordo com o objetivo de cada pessoa.
    • A dificuldade dos quebra-cabeças varia durante o período do evento e pode ser percebida de forma diferente conforme o nível de habilidade de cada um.
    • Os quebra-cabeças são liberados à meia-noite (EST/UTC-5), um horário em que o mantenedor consegue administrá-los com estabilidade.
    • Se o texto do site estiver difícil de ler, é possível usar o modo de alto contraste.
    • Ideias de quebra-cabeças não são aceitas por motivos legais.
    • Se você achar que há um bug em um quebra-cabeça, pode perguntar primeiro no subreddit.
    • Ao fazer streaming de soluções, é melhor evitar isso enquanto outras pessoas ainda estiverem competindo.
    • Não é recomendado usar IA para entrar no placar global.
  • Créditos

    • Quebra-cabeças, código, design: Eric Wastl
    • Testes beta: Tim Giannetti, Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
    • Gerentes de comunidade: Danielle Lucek, Aneurysm9
  • Aviso legal

    • Advent of Code é uma marca registrada nos Estados Unidos, e os elementos de design, linguagem, estilo e conceito são propriedade do Advent of Code.
    • É permitido criar links ou fazer referência aos quebra-cabeças, mas é proibido copiar ou redistribuir qualquer parte do Advent of Code.

1 comentários

 
GN⁺ 2024-12-02
Comentários do Hacker News
  • Estou no meu quarto ano usando a linguagem Go e sinto que ela não é adequada para resolver problemas. Faltam estruturas de dados básicas na biblioteca padrão e, para uma linguagem compilada, ela é lenta
  • Adoro o AoC e, nos últimos 2-3 anos, encarei o desafio com Rust. No Discord, aprendi várias otimizações de desempenho, algoritmos avançados e SIMD para encontrar as soluções mais rápidas
    • Desta vez vou encarar com Rust e Golang, para acabar gostando de Golang ou pelo menos tolerá-la, ou então provar a hipótese de que Golang não é grande coisa
  • Começou de novo o desafio de escrever parsers de entrada cada vez mais complexos por 25 dias
  • Este ano vou encarar no NES (Nintendo Entertainment System)
    • Por causa da RAM limitada (2 KiB, com mais 8 KiB possíveis no cartucho), alguns problemas podem ser impossíveis, mas pretendo resolver o máximo que der
    • O problema de hoje foi resolvido em menos de 4 segundos usando 4 KiB extras de RAM no cartucho
  • O desafio deste ano é escrever em C sem biblioteca padrão nem alocador, para conseguir rodar em um STM32
    • Dois anos atrás tentei em assembly, mas desisti depois de gastar muito tempo escrevendo uma biblioteca padrão em assembly e migrei para Rust
  • Normalmente faço AoC em Common Lisp, mas este ano estou tentando Swift
    • Para uma linguagem mainstream estaticamente tipada, ela não é nada ruim para esse tipo de tarefa
    • Código AoC em Swift
  • Este ano eu estava organizando um evento no meu novo emprego, mas percebi que não dava para trabalhar com meu novo chefe e tive que sair
    • Acho muito útil que desenvolvedores aprendam a resolver problemas de verdade em vez de apenas combinar frameworks
    • No fim, parece que vou acabar com o bom e velho Emacs de sempre
  • Resolvi o problema inteiro, e isso é um problema de negócios. Basta substituir o historiador-chefe
  • Enquanto há gente enfrentando o desafio com Common Lisp e a biblioteca padrão de C, eu estou tentando fazer uma chamada com curl para baixar os arquivos de dados
  • No ano passado, fiquei travado no dia 12 por uma semana e gastei todo o meu tempo pensando em como resolver. Este ano, vou ser gentil comigo mesmo, não participar e aproveitar o descanso de inverno
  • Este ano pretendo encarar com F# e Gleam, mas, como todo ano, provavelmente não vou ter tempo nem energia mental para ir além do dia 10-12
    • Recomendo aos usuários de Python que experimentem F#: pode parecer muito com scripting e também oferece um REPL excelente