Inovação digital - como foi

Este não é o primeiro hackathon que eu ganho, não o primeiro sobre o qual escrevo , e este não é o primeiro post no hub dedicado ao avanço digital. Mas eu não sabia escrever. Considero minha experiência única o suficiente para compartilhar. Provavelmente sou a única pessoa neste hackathon que venceu a etapa regional e a final como parte de equipes diferentes. Quer saber como isso aconteceu? Bem-vindo ao gato.


Etapa regional (Moscou, 27 a 28 de julho de 2019).


Eu vi o anúncio da Digital Breakout pela primeira vez em março - abril deste ano. Naturalmente, eu não poderia passar por uma hackathon tão grande e me registrei no site. Também me familiarizei com as condições e o programa da competição. Aconteceu que, para chegar ao hackathon, era necessário se submeter a testes on-line, que começaram em 16 de maio. E, talvez, eu teria esquecido com segurança, já que uma carta com um lembrete sobre o início dos testes não chegou. E, devo dizer, no futuro, TODAS AS LETRAS que vieram da CPU caíram na pasta de spam. Embora eu tenha pressionado o botão "não é indesejável" todas as vezes. Não sei como eles conseguiram alcançar esse resultado. Não funcionou para mim enviando pelo MailGun. E os caras parecem não saber sobre a existência de serviços como o isnotspam.com em princípio. Mas nós nos perdemos.


Lembrei-me do início dos testes em uma das reuniões do clube startup , onde também discutimos a formação da equipe. Depois de abrir a lista de testes, primeiro me sentei para um teste em Javascript. Em geral, as tarefas eram mais ou menos adequadas (como qual seria o resultado se você adicionar 1 + '1' no console). Mas, por experiência própria, usaria esses testes ao selecionar um emprego ou uma equipe com reservas muito grandes. O fato é que, no trabalho real, o programador raramente encontra essas coisas, com sua capacidade de executar rapidamente o código - esse conhecimento não se correlaciona de forma alguma e você pode praticar essas coisas para entrevistas com bastante facilidade (eu sei por mim mesmo). Em geral, eu cliquei no teste rapidamente, em alguns casos eu me verifiquei no console. No teste do python, as tarefas eram do mesmo tipo, eu também me verifiquei no console, com surpresa consegui mais pontos do que no JS, embora nunca tenha programado profissionalmente em python. Em seguida, em conversa com os participantes, ouvi histórias sobre como os programadores tiveram notas baixas nos testes, como algumas pessoas receberam cartas informando que não haviam passado na seleção para a CPU e, em seguida, foram convidadas a participar. É claro que os criadores desses testes provavelmente não ouviram nada sobre a teoria dos testes , nem sobre sua confiabilidade e validade, nem sobre como testá-los, e a idéia com testes seria inicialmente uma falha, mesmo se não levássemos em consideração o objetivo principal hackathon. E o principal objetivo do hack, como aprendi mais tarde, era estabelecer um recorde no Guinness, e os testes a contradiziam.


Em algum momento depois de passarem nos testes, eles me ligaram, perguntaram se eu participaria, esclareceram os detalhes e disseram como entrar no bate-papo para selecionar uma equipe. Logo, entrei no chat e escrevi um breve sobre mim. Um lixo completo foi criado no bate-papo, a impressão foi de que os organizadores haviam anunciado muitas pessoas aleatórias que não tinham nada a ver com TI. Inúmeros gerentes de produto do "nível Steve Jobs" (uma frase real da apresentação de um participante) publicaram histórias sobre si mesmos, e os desenvolvedores normais nem eram visíveis. Mas tive sorte e logo entrei para três programadores experientes em JS. Nós já nos conhecemos no hackathon e, em seguida, adicionamos uma garota à equipe para inspiração e solução de problemas da organização. Não me lembro por que, mas pegamos o tópico "Educação em segurança cibernética" e entramos na faixa "Ciência e educação 2". Na primeira vez em que participei de uma equipe de 4 programadores fortes, senti pela primeira vez como é fácil vencer nessa composição. Chegamos despreparados e discutimos antes do jantar e não conseguimos decidir o que faríamos: um aplicativo móvel ou a web. Em qualquer outra situação, eu pensaria que isso é um fracasso. O mais importante para nós era entender como seríamos melhores que os concorrentes, porque havia muitas equipes em torno desses testes, jogos de segurança cibernética e outros. Olhando para ele e para os tutoriais e aplicativos do Google, decidimos que nosso principal recurso distintivo seria o treinamento em alarme de incêndio. Selecionamos vários chips que achamos interessantes para implementação (registro com verificação de e-mail e senha com base em hackers, envio de cartas de phishing (na forma de cartas de bancos conhecidos), treinamento em engenharia social em bate-papo). Tendo decidido o que estamos fazendo e entendendo como podemos nos destacar, rapidamente escrevemos um aplicativo da Web completo e eu atuei no papel de desenvolvedor de back-end incomum para mim. Assim, vencemos com confiança nossa pista e, como parte de mais três equipes, selecionamos para a final em Kazan. Mais tarde, em Kazan, aprendi que a seleção para a final era uma ficção. Conheci muitos rostos conhecidos das equipes que não passaram nessa seleção. Entrevistamos até jornalistas do Canal 1. É verdade que nosso aplicativo foi mostrado por apenas 1 segundo em um relatório.



Time nevado, no qual ganhei a etapa regional


Final (Kazan, 27 a 29 de setembro de 2019)


Mas outros contratempos começaram. Todos os programadores da equipe Snowed por cerca de um mês, um após o outro, relataram que não podiam ir a Kazan para as finais. E pensei em encontrar uma nova equipe. No começo, chorei no bate-papo geral da equipe de hackers russa e, apesar de ter recebido muitas respostas e convites para as equipes, mas nenhuma delas me enganou. Havia equipes desequilibradas, como produto, desenvolvedor móvel, front-end, remanescente de um cisne, um caranguejo e um pique de uma fábula. Havia também equipes que não me encaixavam em tecnologia (por exemplo, com o desenvolvimento de um aplicativo móvel no Flutter). Finalmente, no bate-papo, que eu considerava lixo (o mesmo VKontakte, onde as equipes foram selecionadas para a etapa regional), eles publicaram um anúncio sobre a busca pelo front-renderer na equipe e escrevi aleatoriamente. Os caras eram estudantes de graduação da Skoltech e imediatamente se ofereceram para se conhecer e se conhecer. Gostei, equipes que preferem conhecer o hackathon imediatamente me incomodam com a falta de motivação. Conheci no "Rake" em Pyatnitskaya. Os caras pareciam sensatos, motivados, confiantes em si mesmos e na vitória, e eu tomei uma decisão ali mesmo. Não sabíamos quais seriam as trilhas e tarefas nas finais, mas assumimos que escolheríamos algo relacionado ao Machine Learning. E minha tarefa será escrever um painel de administração para esse negócio, então preparei um espaço em branco com base no antd-admin para isso.
Fui a Kazan de graça, às custas dos organizadores. Devo dizer que, nos chats e blogs, já se manifestou muita insatisfação com a compra de ingressos e, em geral, com a organização da final, não vou recontar tudo.


Chegando à Kazan Expo, registrando-me (ao mesmo tempo que tive alguns problemas para conseguir um crachá) e tomando café da manhã, fomos escolher uma pista. Fomos à cerimônia de abertura, onde os funcionários falaram, por apenas 10 minutos e, de fato, já tínhamos nossas faixas preferidas, mas estávamos interessados ​​nos detalhes. Na faixa 18 (Rostelecom), por exemplo, verificou-se que era necessário desenvolver um aplicativo móvel, embora isso não estivesse na descrição resumida. Fizemos a escolha principal entre a inspeção de oleodutos nº 8 da pista, PJSC Gazprom Neft e os centros perinatais nº 13 da pista, Câmara de Contas da Federação Russa. Lá e lá eram necessários Data Science, e lá, e lá seria possível fixar a web. Na faixa 13, ficamos parados com o fato de que a tarefa da Data Science era bastante fraca lá, era necessário analisar Rosstat e não estava claro se era necessário um painel de administração. E o próprio valor da tarefa era duvidoso. Como resultado, decidimos que, como equipe, estamos mais focados na pista 8, principalmente porque os caras já tinham experiência em resolver esses problemas. Começamos pensando em um cenário em que nosso aplicativo será usado pelo usuário final. Aconteceu que teremos dois tipos de usuários: técnicos interessados ​​em informações técnicas e gerentes que precisavam de indicadores financeiros. Quando a idéia do script apareceu, ficou claro o que fazer na frente, o que desenhar para o designer e quais métodos são necessários no back-end, tornou-se possível distribuir as tarefas. As responsabilidades da equipe eram as seguintes: duas pessoas resolveram o ML com os dados recebidos dos especialistas técnicos, uma pessoa escreveu um back-end em python, eu escrevi a frente no react e antd, o designer desenhou interfaces. Até nos sentamos para que fosse mais conveniente nos comunicar enquanto resolvíamos nossos problemas.


O primeiro dia passou quase imperceptivelmente. Em comunicação com especialistas técnicos, descobriu-se que eles (Gazprom Neft) já haviam resolvido esse problema, apenas se perguntavam se poderia ser melhor resolvido. Não direi que isso reduziu a motivação, mas o sedimento permaneceu. Foi surpreendente que, à noite, os moderadores da seção notassem as equipes de trabalho (como disseram para as estatísticas), geralmente isso não é praticado nas hackathons. De manhã, tivemos um protótipo da frente, alguns dos inícios das costas, a primeira solução de ML. Em geral, já havia algo para mostrar aos especialistas. Na tarde de sábado, o designer desenhou obviamente mais interfaces do que eu teria conseguido codificar e passou a criar uma apresentação. O sábado foi marcado para registrar o registro e, de manhã, todos os trabalhadores do corredor foram expulsos do corredor, depois a entrada e a saída do corredor foram realizadas com crachás, e foi possível sair por mais de uma hora. Não posso dizer que isso tenha causado algum inconveniente significativo, na maior parte do dia em que ainda estávamos sentados e trabalhando. A comida, de fato, era muito escassa; para o almoço, recebemos um copo de caldo, uma torta e uma maçã, mas, novamente, isso não nos incomodou muito, focamos no outro.


Red Bull periodicamente emitido, duas latas por mão, foi muito útil. A receita energética + café, que já havia sido testada em hackathons, permitia a codificação a noite toda e o dia seguinte, sendo tão alegre quanto um copo. No segundo dia, de fato, nós simplesmente lançamos novos chips no aplicativo, fizemos um cálculo dos indicadores financeiros e começamos a exibir gráficos sobre as estatísticas de defeitos nas rodovias. Como tal, não houve revisão de código em nossa trilha, os especialistas avaliaram a solução para o problema no estilo kaggle.com, de acordo com a precisão da previsão, e o front-end foi avaliado visualmente. Nossa solução de ML acabou sendo a mais precisa, talvez seja isso que nos permitiu entrar na liderança. Na noite de sábado a domingo, trabalhamos até as 2 da manhã e depois dormimos no apartamento, que era usado como base. Dormimos por cerca de 5 horas, no domingo às 9 da manhã já estávamos na Kazan Expo. Carreguei rapidamente algo, mas na maioria das vezes levava para me preparar para a defesa. As pré-defesas ocorreram em duas transmissões. Antes de duas equipes de especialistas, fomos convidados a falar por último, pois ambas as equipes queriam nos ouvir. Tomamos isso como um bom sinal. O aplicativo foi mostrado no meu laptop, no servidor de desenvolvimento em execução, não conseguimos implantar corretamente o aplicativo, no entanto, fizemos tudo dessa maneira.


Em geral, tudo correu bem, eles nos apontaram pontos em que poderíamos melhorar nossa aplicação e, mesmo antes da defesa, tentamos até implementar um desses comentários. A defesa também foi surpreendentemente tranquila. De acordo com os resultados da pré-defesa, sabíamos que estávamos à frente em termos de pontos, estávamos na liderança na precisão da decisão, tínhamos um bom frontend, bom design e, em geral, bons pressentimentos. Outro sinal favorável foi que a moderadora da nossa seção, antes de entrar na sala de concertos, tirou uma selfie conosco, suspeitei que ela pudesse saber alguma coisa))). Mas não sabíamos nossos pontos após a defesa, então o tempo até o anúncio da nossa equipe no palco foi um pouco estressante. No palco, entregaram um cartão com a inscrição de 500.000 rublos e cada sacola com uma caneca e uma bateria para um telefone celular. Não aproveitamos a vitória e não comemoramos normalmente, jantamos rapidamente e pegamos um táxi de trem.



Final da vitória da equipe WAICO


Ao retornar a Moscou, jornalistas da NTV nos entrevistaram. Eles filmaram uma hora inteira no segundo andar do café Kvartal 44 na Polyanka, mas nos noticiários mostraram 10 segundos: afinal, houve um forte progresso em comparação com o estágio regional.


Para resumir as impressões gerais do avanço digital, elas são as seguintes. O evento foi gasto apenas dinheiro louco, eu nunca vi um hackathon dessa magnitude. Mas dizer que é justificado e que realmente compensa, não posso. Uma parte significativa dos participantes que chegaram a Kazan eram simplesmente festeiros que não sabem fazer nada com as próprias mãos e que foram apanhados a estabelecer um recorde. Não posso dizer que a competição na final foi maior do que na etapa regional. Além disso, o valor e a utilidade das tarefas de algumas faixas estão em dúvida. Algumas tarefas foram resolvidas há muito tempo no nível industrial. Como se viu depois, algumas das organizações que lideraram os trilhos não estavam interessadas em resolvê-los. E essa história ainda não acabou, as equipes líderes de cada pista foram selecionadas como um pré-acelerador, e supõe-se que elas farão startups de BREAKTHROUGH. Mas ainda não estou pronto para escrever sobre isso, vamos ver o que acontece.

Source: https://habr.com/ru/post/pt471098/


All Articles