Praticando algoritmos de forma divertida com CodeFights!
Aprenda o que é o CodeFights e como ele torna divertida a prática de algoritmos JOGANDO!
Aqui na TriadWorks nós já falamos sobre a importância de saber programar e para exercitar nossas noções de lógica de programação nós sugerimos a criação de um Jogo da Velha para exercitar esses conhecimentos, mas temos uma alternativa diferente para colocar em prática a solução de problemas.
O CodeFights é um tipo de jogo online onde você testa suas habilidades de programação resolvendo diversos problemas diferentes e aqui vou ensinar um pouco sobre ele.
Como funciona
É bem simples. O jogo vai te dar um problema e você deve resolver esse problema utilizando uma das 16 linguagens de programação disponíveis. Sempre que você resolver um problema você irá receber moedas para gastar na loja do jogo.
Para garantir que você resolveu o problema corretamente existe uma bateria de testes e é necessário passar em todos os testes visíveis para avançar para a próxima fase, mas também existem os testes ocultos que garantem mais moedas para o jogador além de desbloquear as outras soluções para esse problema.
Caso esteja com dificuldade em algum nível você pode utilizar suas moedas para visualizar a solução de outro jogador, mas com o código ofuscado por ????
(interrogações) para dificultar. Você também pode comprar os testes ocultos para descobrir qual é aquele teste que está te atrapalhando.
Modos de jogo
Existem vários modos de jogo e cada um propõe um desafio diferente para o programador encarrar:
Arcade
O modo Arcade é o mais simples de todos. Aqui você vai começar em uma ilha com problemas de um nicho especifico e após terminar todos os desafios dessa ilha você irá desbloquear outras ilhas. Cada desafio é apresentado um problema e você deve resolve-lo passando em todos os testes. Como adicional você pode resolver os testes ocultos para ganhar mais pontos e liberar a solução de outros jogadores. Eu recomendo sempre tentar passar por todos os testes ocultos para poder ver a solução de outros jogadores e entender a forma como eles resolveram o problema.
Challenges
Nesse modo os jogadores precisam resolver problemas criado por outros jogadores com alguma condição adversa, como a falta da descrição (que incentiva uma forma de engenharia reversa), problemas com banco de dados, limite de tempo para resolver o desafio, limite de vezes que você pode rodar os testes, entre outras situações.
Head-to-Head
Head-to-Head é o modo de jogo onde você desafia outros jogadores em um mano-a-mano. O objetivo aqui é resolver três problemas antes do jogador adversário. Quem resolver os problemas antes passando por todos os testes ganha o mano-a-mano.
Tournaments
Os Tournaments é parecido com o Head-to-Head, mas aqui você disputa com mais de um jogador. Quanto menor o tempo e mais pontos você conseguir nos desafios melhor. Normalmente os Tournaments garantem uma premiação melhor.
Company Bots
Os company bots são criados por diversas empresas diferentes. Esses bots funcionam como humanos no Head-to-Head e existem casos onde vencer esses bots pode garantir um emprego na empresa que criou o bot.
Interview Practice
Esse é o modo de jogo que mais achei interessante. Nele são colocadas questões reais que são utilizada pelas grandes empresas como Google, Amazon, Facebook, Linkedin etc, em suas entrevistas. É uma ótima forma de colocar em prática a resolução de problemas para aplicar para uma vaga em empresas que fazem perguntas de lógica e resolução de problemas durante a entrevista.
Leaderboards e Jobs
O CodeFights também oferece um placar geral onde mostra todos os pontos conquistado pelos jogadores. Existem classificações individuais, por país, por universidade e por compania, então você pode ver como está a situação da sua instituição de ensino ou empresa nos rankings do jogo.
Além do Leaderboards o jogo também permite que você cadastre seu curriculo, passe por um teste de habilidade e após isso empresas interessadas em suas habilidades podem enviar uma proposta de emprego. É um recurso muito interessante e vale a pena testar. :)
Conclusão
O CodeFights é uma ótima ferramenta que torna a resolução de problemas ainda mais divertida por causa dos recursos de gamificação utilizados. Você não sente que está exercitando uma habilidade tão importante conforme avança os diversos níveis do jogo. Ele também ajuda e entender melhor as demandas de algumas empresas nos modos de Interview Practice e Company Bots.
Sempre que você terminar os desafios e passar por todos os testes você vai poder visualizar a solução de outros jogadores e isso é muito legal para você tentar entender o código alheio. Você pode descobrir recursos das linguagens que você utiliza ou até mesmo aprender os recursos de uma linguagem que você está começando agora.
Mas se você ainda não tem o conhecimento necessário para começar com o CodeFights e praticar com os algoritmos, dá uma olhada no curso de Lógica de Programação daqui da TriadWorks que você vai aprender todo necessário para começar a resolver esses problemas utilizando a linguagem JavaScript!
E se você quer saber mais como praticar programação, ferramentas etc, se liga neste vídeo do TriadResponde, aposto que vai lhe ajudar e muito.
You might also be interested in these articles...
Desenvolvedor na TriadWorks - Email