Executando verificação de segurança...
5

Advent of Code: desafie-se de forma criativa!

1 de dezembro, agorinha mesmo, vai começar o Advent of Code 2022. Esse é um "evento" que ocorre anualmente desde 2015 envolvendo diversos desafios de programação. É de graça e muito fácil de participar.

O que é o AoC?

AoC (Advent of Code) consiste em vários desafios de programação seguindo o calendário de contagem regressiva ao natal - 25 de dezembro - a partir do dia primeiro do mês. Esses problemas podem ser resolvidos em qualquer linguagem de programação de qualquer maneira que preferir. Pessoas usam como preparatório para entrevistas de emprego, treinamento em empresas, trabalhos de faculdade, treinar problemas, programação competitiva etc. Mas principalmente para se divertir!

Descricao retirada, traduzida e levemente modificada da pagina do evento.

Como funciona?

Os problemas são liberados pouco a pouco - 2 por dia especificamente - totalizando 50 desafios até o natal. Então a partir do momento que liberar o desafio, mão na massa! Que problemas são esses? Se você já teve alguma experiência com Competitive Programming (codewars, por exemplo), são parecidos. Caso contrario, se liga nesse exemplo (resumido) do ano passado:

Exemplo

Você está num submarino para realizar diversas tarefas com os sistemas tecnológicos dele. Assim que ele começa a descer, seu sonar faz a leitura da profundidade do chão do oceano da onde ele está e para frente, até o alcance dele. Abaixo estão as leituras das profundidades:

100
120
120
130
135
110
120

Quantas vezes a profundidade aumentou (ou seja, o chão do oceano desceu)?

Nesse exemplo (com os dados originais modificados) a resposta é 4

Depois, só colocar a resposta no site e validar caso acertou ou não.

Bom, como existem diversos motivos, uma lista fica mais fácil:

  • Treinar suas habilidades como programador
  • Aprender novos algorítimos e estrutura de dados (não tem problema pesquisar se ficar preso em um problema!)
  • Distrair um pouco do seu projeto/empresa atual (sim, às vezes é bom espairar programando algo diferente)
  • Se desafiar (e seus conhecidos também)
  • Testas coisas novas
  • MELHORAR e se DIVERTIR

E agora vou desenvolver sobre "testar novas coisas" e explicar o título "desafie-se de forma criativa". Para mim, a melhor qualidade do AoC é sua flexibilidade, o que significa que você não está preso a plataforma de desenvolvimento deles ou até mesmo precisar enviar o código para testar. Tá, mas e aí? Isso quer dizer que você pode definir suas próprias regras: usar linguagem de programação x, desenvolver em x sistema operacional, etc. Então, enquanto um iniciante pode testar e aprender seguindo o AoC com o que se sente mais confortável, você, avançado, pode explorar jeitos de sair de sua zona de conforto para prosseguir com esse evento.

Ideias de desafios

Linguagens de programação

Aqui já começa a bagunça. Você pode escolher a que tem mais afinidade, a que quer aprender/praticar mais, escolher assembly pois quer sofrer, ou também, fazer cada dia uma linguagem diferente. Já vi todas essas e mais variações durante esse evento. Minha recomendação: se você e um iniciante, escolha a que mais te deixa confortável; se você quer aprender uma nova linguagem, foca nela e vai até o final; se você não faz ideia, tira no dado e tenta a sorte.

IDE/Editor de texto

Isso pode parecer meio sem sentido, mas vai por mim, se você quiser aprender e começar a usar um editor de text/IDE diferente da sua atual, nada como se forcar a usar essa nova opção por um mês. Seja migrando para JetBrains, Visual Studio (Code), notepad.exe, (neo)vim, emacs, a pertinência levara ao hábito.

Sistema operacional

Na mesma pegada do item anterior, usar e usar o novo e estranho até virar o seu normal e natural. Neste caso não tem muitas opções, você tem Windows, MacOS e Linux basicamente. Não estou falando para formatar sua maquina antes do natal e ficar aterrorizado se algo der errado, mas usar uma maquina virtual, um WSL, algo do tipo para ter um contato. Uma opção também é usar o TempleOS. Para quem conhece deve achar que é zoeira, mas ano passado o Tsoding fez todo o Advent of Code dentro do TempleOS usando HolyC! Loucura, eu sei! Novamente, seja criativo.

Resumo da obra

O objetivo é completar os desafios, mas se pudermos mudar algumas variáveis para tornar tudo mais interessante, temos todo o direito. Comentem se tiverem alguma outra ideia de "complicar" o AoC de maneira legal!

No meu objetivo eu planejo completar o AoC usando a linguagem C (já domino, mas nunca usei extensivamente), programar no neovim (quero aprender) usando (arch) Linux (meu atual sistema operacional a anos já, nada de novo aqui). Comente como planeja fazer a sua edição esse ano também.

Placares

Uma funcionalidade legal também do AoC são as leaderboards. Tem uma geral, mas também qualquer um pode criar uma privada e convidar as pessoas a se juntarem. Caso muitos daqui se interessem, podemos criar um placar privado do TabNews!. Mas também podem se organizar com os amigos e colegas de trabalho para competirem entre si.

Compartilhe

Algo também muito fundamental para esse evento, na minha opinião, é a comunidade e o compartilhamento. Chame pessoas para participar, compartilhe ideias e resoluções, poste todo o seu desenvolvimento em um repositório git depois, engaje com a comunidade!

Feedback

Muito obrigado por lerem até aqui. Tentei falar tudo que sabia, mesmo que resumidamente, sobre esse evento que estou muito ansioso para começar. Agora quero saber de vocês! O que acharam? Vão participar? Com que linguagens? Fazer o desafio normal ou vão tentar algo novo esta edição? Sera que rola um placar do TabNews?

Até a próxima,
GRFreire

Carregando publicação patrocinada...
1