O que são competições de programação e como criar e participar de uma no Neps?

Programação Competitiva

Este guia vai te ajudar com tudo o que você precisa saber sobre como criar e participar de competições de programação no Neps Academy.

Além disso, ele também fornecerá links para websites que também hospedam competições de programação regularmente, portanto sempre haverá uma competição de programação a vista para você se divertir.

Esse guia é dividido em:

O que são competições de programação?

Competições de programação, também conhecidos como programming contests, geralmente têm um conjunto de exercícios de programação, também conhecidos como desafios ou problemas, e os participantes tem que escrever programas de computador capazes de resolver cada exercício.

Algumas competições são individuais como o Google Code Jam ou Facebook Hacker Cup enquanto outras exigem que os participantes concorram como uma equipe, como o International Collegiate Programming Contest (ICPC), por exemplo.

Como o Neps Academy é sediado no Brasil, temos um foco mais forte nas competições brasileiras. A maioria dos melhores estudantes brasileiros utiliza nosso website para encontrar sucesso em tais competições.

Abaixo você encontra a lista das mais importantes competições no Brasil e no mundo para estudantes de escolas e universidades.

  • Olimpíadas Brasileira de Informática (OBI): A OBI é a competição mais importante para estudantes do ensino fundamental e médio no Brasil. Aqueles que se saem bem nesta competição abrem muitas portas para as melhores universidades do país e do exterior. Alguns dos estudantes que nos ajudam a construir Neps tiveram sucesso nesta competição. Agora eles estudam em algumas das melhores universidades do mundo como MIT e UBC.
  • Seletiva da IOI: Os 10 melhores estudantes brasileiros competem em um processo seletivo que seleciona os 4 melhores representantes do Brasil para participar da IOI, a competição mais importante do mundo para estudantes na escola. Quando iniciamos nosso projeto, ficamos imensamente orgulhosos quando o primeiro aluno, sem acesso a aulas de programação em sua escola, conseguiu obter um desses lugares estudando pelo Neps. Hoje, é quase impossível qualificar-se para o processo seletivo sem estudar pelo Neps.
  • International Olympiad in Informatics (IOI): Esta é a competição mais importante do mundo para estudantes ainda na escola*. A IOI consiste em dois dias de programação/codificação e resolução de problemas. Na IOI os alunos competem individualmente. É a segunda maior Olímpiada Científica (baseado na quantidade de países participantes), atrás apenas da Olimpíada de Matemática.
  • Maratona de Programação: É a primeira fase da jornada para o International Collegiate Programming Contest (ICPC). É uma competição destinada aos estudantes que estão na universidade. Essa competição é composta por 8 - 15 problemas com duração de 5 horas.
  • Latin America Programming Contest: É a segunda fase da competição para os brasileiros. É também conhecida como Fase Nacional e é realizada simultaneamente em todos os países da América Latina. As 50 melhores equipes brasileiras da primeira fase participam desta competição, visando uma das vagas na final mundial.
  • International Collegiate Programming Contest (ICPC): Esta é a competição mais importante para os estudantes da universidade. Os participantes dessa competição vêm de mais de 2.000 universidades que estão espalhadas por 80 países e seis continentes. A cada ano, a competição é realizado em um país diferente.

Por que você deve participar das competições de programação?

A principal razão para participar das competições de programação é se divertir 😃. Você não deve participar ou se forçar a participar se você não gostar de desafios.

Você estará resolvendo problemas computacionais muito desafiadores, muitas vezes muito além do que seus colegas da universidade estão lidando. Se você resolver encarar, você será como um atleta. Você vai treinar diariamente e aperfeiçoar muito suas habilidades de programação ao custo de muito esforço.

O principal benefício de participar de competições é que suas habilidades em algorithms serão melhores do que a maioria dos outros programadores. É por isso que muitas empresas estão muito interessadas em contratar competidores. Os principais benefícios para estas empresas são que tais programadores podem aprender facilmente novas tecnologias e são capazes de se comunicar bem com a equipe ao resolver tarefas complexas.

Entretanto, devemos salientar que nem todos devem investir 100% de seus esforços para melhorar em competições. Como tudo na vida, é necessário equilíbrio. Como apontado por Peter Norvig ao oferecer apenas pequenos quebra-cabeças algorítmicos com soluções relativamente curtas, os concursos de programação como ICPC e IOI não ensinam necessariamente boas habilidades e práticas de engenharia de software, pois os projetos de software reais normalmente têm muitos milhares de linhas de código e são desenvolvidos por grandes equipes durante longos períodos de tempo. Portanto, nós definitivamente recomendamos que você participe de competições de programação mas mantenha-se aberto para aprender outras habilidades necessárias para um bom desempenho nas empresas.

Competições de Programação no Neps

Aqui no Neps, nós promovemos algumas competiçõe de programação. No ano passado iniciamos um projeto chamado Liga de Programação composto de 4 rounds distribuídos ao longo do ano. Entretanto, este ano planejamos uma abordagem diferente.

Vamos oferecer Replays de competições oficiais anteriores como a Maratona de Programação, o German Collegiate Programming Contest(GCPC) e muitos outros ao longo do ano. Além disso, também teremos rodadas chamadas de Neps Programming Contest (NPC), onde teremos uma equipe de competidores experientes que criarão exercícios de programação originais. Mais informações sobre o NPC serão reveladas em breve 😉.

Além dessas competições, você pode criar e hospedar suas próprias competições de programação no Neps. Qualquer pessoa pode criar seus próprios exercícios de programação em nossa plataforma e com uma assinatura PRO, é possível organizar uma competição composta por todos os exercícios públicos disponíveis no Neps e os exercícios criados por você.

As competições que você cria têm um limite de 25 pessoas (este limite pode aumentar no futuro). Nós temos um limite pois tais competições tem o intutito de possibilitar pessoas organizem treinamentos em seus próprios grupos de estudo. Se você planeja organizar uma competição aberta (da qual todos podem participar) ou precisa de um limite maior, envie-nos um e-mail e descreva seu caso.

Como criar uma competição de programação no Neps?

Para criar uma competição de programação, vá para na página de Competições e clique em Nova Competição.

Figura 1 : Clique no botão Nova Competição

Em seguida, preencha as informações sobre a competição como mostrado na Figura 2.

Figura 2 : Preencha todas as informações sobre sua competição

Abaixo você encontra uma descrição detalhada de cada campo.

  • Título: Escolha um título bacana para sua competição;
  • Estilo: Selecione o estilo entre:
    • OLYMPIAD onde apenas a última submissão conta. Todas as submissões são julgadas somente no final da competição e aceita pontuações parciais.
    • ICPC segue as regras padrão para o ICPC, como mostrado na secção Formato do Concurso.
    • O NEPS segue as regras do ICPC, mas aceita pontuações parciais para as submissões.
  • Participantes permitidos: Selecione se Equipes têm permissão para participar;
  • Senha: Você compartilhará esta senha com quem você deseja convidar para sua competição. Não é possível criar uma competição sem uma senha sem nossa autorização. Quando a competição não tem uma senha, ela é considerada aberta, e qualquer pessoa pode participar;
  • Exercícios de programação: Selecione os exercícios de programação que você deseja adicionar na sua competição. Pode ser qualquer exercício disponível publicamente no Neps ou qualquer exercício criado por você. Recomendamos colocar a visibilidade dos exercícios que você criar como PRIVATE se você planeja usá-los em competições. Após a competição ser realizada, você pode mudá-la para PUBLIC.
  • Data e Hora: Escolha quando vai acontecer a competição;
  • Descrição: Ajude os participantes a identificar sua competição, além de dar algumas informações importantes a eles. A descrição tem suporte a Markdown.

Se você não tiver certeza de qual exercício adicionar e quiser algumas sugestões, você pode usar a opção na barra lateral. Ele automaticamente adicionará um exercício a sua competição. Esta opção é ótima quando você deseja criar rapidamente uma competição para fins de treinamento.

Figura 3 : Adicione automaticamente um exercício à sua competição

Depois de preencher todas as informações, basta clicar em Salvar. Pronto! Você criou sua competição de programação. Agora convide seus amigos para participar.

Vá para a página de sua competição clicando em Ir para o Dashboard como mostrado na Figura 4.

Figura 4 :Vá para o painel da competição

Lá você encontrará o botão Mostrar Senha que exibirá o ID e senha da competição. Estas são as informações que você precisa compartilhar com seus amigos para que eles possam participar da sua competição.

Figura 5 :ID e senha necessários para participar da competição

Como participar de uma competição?

Participar de uma competição é super fácil. Se for uma competição oficial, você a encontrará facilmente no calendário. Entretanto, se for uma competição fechada, destinada a treinar e se divertir somente com amigos, você precisará do ID e senha da competição.

Em ambos os casos, quando na página da competição, clique em Participar da Competição, então você precisa selecionar se quer participar como indivíduo ou como equipe. Depois de escolher, clique em Participar.

Para saber mais sobre como as Equipes funcionam no Neps, dê uma olhada aqui.

Figura 6

Se você não conhece o link da página da competição, você pode inserir todas as informações diretamente no Página do Calendário de Competições.

Figura 7 : Entrando numa competição usando ID e senha

Outras Fontes

Muitos sites hospedam competições de programação regularmente. Abaixo você pode encontrar nossas principais sugestões.

Há também dois calendários que agregam dados de muitos websites, infelizmente ainda não tem competições do Neps. Lá você pode encontrar competições que estão acontecendo ou começarão em breve.

Divirta-se participando de competições de programação! 😄

Comentários