Avance dixital: como ocorreu

Este non é o primeiro hackathon que gano, nin o primeiro sobre o que gano escrita, e esta non é a primeira publicación en Habré dedicada a “Avanzamento dixital”. Pero non puiden evitar escribir. Considero que a miña experiencia é única para compartir. Probablemente sexa a única persoa neste hackathon que gañou a fase autonómica e as finais formando parte de diferentes equipos. Queres saber como pasou isto? Benvido ao gato.

Fase rexional (Moscova, 27 - 28 de xullo de 2019).

Vin por primeira vez un anuncio de "Digital Breakthrough" nalgún lugar entre marzo e abril deste ano. Por suposto, non podía deixar pasar un hackathon tan grande e rexistrarme no sitio. Alí coñecín as condicións e o programa da competición. Resultou que para acceder ao hackathon había que superar unha proba en liña, que comezou o 16 de maio. E, quizais, esqueceríame convenientemente, xa que non recibín unha carta que me recordase o inicio da proba. E, debo dicir, no futuro TODAS as cartas que me chegaron da CPU acabaron constantemente no cartafol de spam. Aínda que premei no botón "non objetable" cada vez. Non sei como conseguiron tal resultado; non me funcionou con correo en MailGun. E os mozos parecen non saber nada da existencia de servizos como isnotspam.com. Pero divagamos.

Lembráronme o inicio das probas nunha das reunións club de inicio, alí tamén falamos da formación do equipo. Despois de abrir a lista de probas, primeiro me sentín á proba de Javascript. En xeral, as tarefas eran máis ou menos adecuadas (como será o resultado se engades 1 + '1' na consola). Pero dende a miña experiencia, empregaría este tipo de probas cando contrataba un traballo ou un equipo con moi grandes reservas. O feito é que no traballo real, un programador raramente atopa tales cousas, coa súa capacidade para depurar código rapidamente; este coñecemento non se correlaciona de ningún xeito e podes adestrar para tales cousas para entrevistas con bastante facilidade (seino por min mesmo). En xeral, fixen clic na proba con bastante rapidez, nalgúns casos comprobeime na consola. Na proba de Python, as tarefas eran aproximadamente do mesmo tipo, tamén me probei na consola, e sorprendeume conseguir máis puntos que en JS, aínda que nunca programei profesionalmente en Python. Máis tarde, en conversas cos participantes, escoitei historias sobre como programadores fortes obtiveron unha puntuación baixa nas probas, como algunhas persoas recibían cartas dicindo que non pasaron o proceso de selección para a CPU e, de todos modos, foron invitadas a el. Está claro que os creadores destas probas probablemente non escoitaron nada teoría da proba, nin sobre a súa fiabilidade e validez, nin sobre como probalas, e a idea con probas tería sido un fracaso dende o primeiro momento, aínda que non tivésemos en conta o obxectivo principal do hackathon. E o principal obxectivo do truco, como souben máis tarde, era establecer un récord Guinness, e as probas contradírono.

Nalgún momento despois de pasar as probas chamáronme, preguntáronme se quería participar, aclaráronme os detalles e dixéronme como entrar no chat para seleccionar un equipo. Axiña, entrei no chat e escribín brevemente sobre min. Había un lixo completo no chat; parecía que os organizadores facían publicidade a moita xente aleatoria que non tiña nada que ver coas TI. Numerosos xestores de produtos "ao nivel de Steve Jobs" (unha frase real da presentación dun participante) publicaron historias sobre eles mesmos, e os desenvolvedores normais nin sequera eran visibles. Pero tiven sorte e pronto me unín a tres programadores JS experimentados. Xa coñecémonos no hackathon, e despois engadimos unha rapaza ao equipo para inspirarnos e resolver problemas de organización. Non lembro por que, pero collemos o tema "Formación en ciberseguridade" e incluímolo na pista "Ciencia e Educación 2". Por primeira vez atopeime nun equipo de 4 programadores fortes e por primeira vez sentín o fácil que era gañar nunha composición así. Viñemos sen estar preparados e discutimos ata o xantar e non puidemos decidir que fariamos: unha aplicación móbil ou outra web. En calquera outra situación tería pensado que foi un fracaso. O máis importante para nós era entender como seríamos mellores que os nosos competidores, porque había moitos equipos arredor que recortaban probas, xogos de ciberseguridade e similares. Despois de mirar isto e buscar en Google programas e aplicacións de adestramento, decidimos que o noso principal diferenciador serían os simulacros de incendio. Seleccionamos unha serie de funcións que nos pareceron interesantes de implementar (rexistro con correo electrónico e verificación de contrasinal contra bases de datos de hackers, envío de correos electrónicos de phishing (en forma de cartas de bancos coñecidos), formación en enxeñería social no chat). Unha vez decidido o que estabamos facendo e entendendo como podíamos destacar, escribimos axiña unha aplicación web completa, e xoguei o papel inusual dun programador backend. Así, gañamos a nosa pista con confianza e, como parte doutros tres equipos, clasificámonos para a final de Kazán. Máis tarde, en Kazán, souben que a selección para as finais era unha ficción; alí coñecín moitas caras coñecidas dos equipos que non pasaron a selección. Incluso fomos entrevistados por xornalistas da Canle 1. Non obstante, no informe desta, a nosa aplicación mostrouse só durante 1 segundo.

Avance dixital: como ocorreu
Equipo nevado, onde gañei a fase autonómica

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

Pero entón comezaron os fracasos. Todos os programadores do equipo Snowed nun mes aproximadamente, un tras outro, informaron de que non poderían ir a Kazán para as finais. E pensei en buscar un novo equipo. En primeiro lugar, fixen unha chamada no chat xeral do Russian Hack Team, e aínda que alí recibín bastantes respostas e invitacións para unirme a equipos, ningún deles me chamou a atención. Había equipos desequilibrados, como produto, desarrollador móbil, front-end, que lembraban a un cisne, un lagostino e un lucio dunha fábula. Tamén houbo equipos que non me eran axeitados en canto á tecnoloxía (por exemplo, co desenvolvemento dunha aplicación móbil en Flutter). Finalmente, nun chat que considerei lixo (o mesmo VKontakte onde tivo lugar a selección de equipos para a fase autonómica), publicouse un anuncio sobre a procura dun frontender para o equipo, e escribín ao chou. Os mozos resultaron ser estudantes de posgrao en Skoltech e inmediatamente ofrecéronse a coñecer e coñecer. Gustoume; os equipos que prefiren coñecerse de inmediato nun hackathon adoitan alarmarme coa súa falta de motivación. Coñecémonos en "Rake" en Pyatnitskaya. Os mozos parecían intelixentes, motivados, confiados en si mesmos e na vitoria, e eu tomei a decisión alí mesmo. Aínda non sabiamos que pistas e tarefas serían na final, pero supuxiamos que escolleriamos algo relacionado co Machine Learning. E a miña tarefa será escribir un administrador para este asunto, polo que preparei un modelo para iso con antelación baseado en antd-admin.
Fun a Kazán gratis, a costa dos organizadores. Debo dicir que xa se manifestaron moitos descontentos nos chats e blogs respecto da compra de entradas e, en xeral, da organización da final, non o vou contar todo.

Chegados a Kazan Expo, rexistrados (tiven un pequeno problema para conseguir un distintivo) e almorzamos, fomos escoller unha pista. Só fomos á inauguración, onde falaron os funcionarios, uns 10 minutos, de feito, xa tiñamos as nosas pistas preferidas, pero interesábanos os detalles. Na vía no 18 (Rostelecom), por exemplo, resultou que era necesario desenvolver unha aplicación móbil, aínda que isto non figuraba na breve descrición. Fixemos a elección principal entre a pista No 8 Defectoscopy of pipelines, Gazprom Neft PJSC e a pista No 13 Centros perinatales, Cámara de Contas da Federación Rusa. En ambos os casos, foi necesaria a Ciencia de Datos e, en ambos os casos, poderíase engadir a web. Na pista número 13, detímonos polo feito de que a tarefa Data Science alí era bastante débil, era necesario analizar Rosstat e non estaba claro se era necesario un panel de administración. E o propio valor da tarefa estaba en dúbida. Ao final, decidimos que como equipo eramos máis idóneos para a pista 8, sobre todo porque os rapaces xa tiñan experiencia en resolver problemas similares. Comezamos por pensar no escenario no que a nosa aplicación sería utilizada polo usuario final. Resultou que teriamos dous tipos de usuarios: técnicos interesados ​​na información técnica e xestores que necesitan indicadores financeiros. Cando xurdiu unha idea do escenario, quedou claro que facer na parte frontal, o que o deseñador debía debuxar e que métodos eran necesarios na parte posterior, fíxose posible distribuír tarefas. As responsabilidades no equipo distribuíronse do seguinte xeito: dúas persoas resolveron ML cos datos recibidos de expertos técnicos, unha persoa escribiu o backend en Python, eu escribín o front end en React e Antd, o deseñador debuxou as interfaces. Mesmo nos sentamos para que nos fose máis cómodo comunicarnos mentres resolvemos os nosos problemas.

O primeiro día pasou voando case desapercibido. En comunicación con expertos técnicos, resultou que eles (Gazprom Neft) xa resolveran este problema, só se preguntaban se podería resolverse mellor. Non direi que isto reducise a miña motivación, pero deixou un residuo. Sorprendeume que pola noite os moderadores das seccións observasen os equipos de traballo (como dicían para as estatísticas), isto normalmente non se practica nos hackathons. Pola mañá tiñamos un prototipo da parte frontal, algúns rudimentos da parte traseira e a primeira solución ML lista. En xeral, xa había algo que mostrar aos expertos. O sábado pola tarde, o deseñador obviamente debuxou máis interfaces das que eu tería tempo para codificar e pasou a crear unha presentación. O sábado reservouse para o rexistro do rexistro, e pola mañá, todos os que traballaban no salón foron expulsados ​​ao corredor, despois a entrada e saída do salón realizouse con distintivos, e non se podía saír para máis. máis dunha hora ao día. Non direi que isto nos causou ningún inconveniente importante; a maior parte do día aínda estivemos sentados e traballando. A comida, efectivamente, era moi escasa; para xantar recibimos un vaso de caldo, unha empanada e unha mazá, pero de novo isto non nos molestou moito, estabamos concentrados noutra cousa.

Periódicamente entregaban red bull, dúas latas por man, o que era moi útil. A receita de bebida enerxética + café, que levaba tempo probada en hackathons, permitíame codificar toda a noite e ao día seguinte, sendo tan alegre coma un vaso. O segundo día, de feito, simplemente engadimos novas funcións á aplicación, calculamos indicadores financeiros e comezamos a mostrar gráficos sobre as estatísticas de defectos nas estradas. Non houbo ningunha revisión do código como tal na nosa pista; os expertos avaliaron a solución do problema ao estilo kaggle.com, baseándose na precisión da previsión, e a interface avaliouse visualmente. A nosa solución de ML resultou ser a máis precisa, quizais isto sexa o que nos permitiu converternos en líderes. A noite do sábado ao domingo traballamos ata as 2 da mañá, e despois fomos durmir ao piso que utilizabamos como base. Durmimos unhas 5 horas, o domingo ás 9 da mañá xa estivemos na Kazan Expo. Preparei algo apresuradamente, pero a maior parte do tempo paseino a preparar a predefensa. As predefensas desenvolvéronse en 2 streams, diante de dous equipos de expertos; pedíronnos a palabra en último lugar, xa que os dous equipos de expertos querían escoitarnos. Tomamos isto como un bo sinal. A aplicación mostrouse dende o meu portátil, desde un servidor de desenvolvemento en execución; non tivemos tempo para implementar correctamente a aplicación, pero todos fixeron o mesmo.

En xeral, todo saíu ben, apuntáronnos puntos nos que poderiamos mellorar a nosa aplicación, e no tempo previo á defensa incluso intentamos poñer en práctica algúns destes comentarios. A defensa tamén foi sorprendentemente suave. En base aos resultados da predefensa, sabiamos que estabamos por diante en canto a puntos, estabamos á cabeza en canto a precisión da solución, tiñamos unha boa fronte, un bo deseño e, en xeral, tiñamos un bo sentimentos. Outro sinal favorable foi que a rapaza moderadora da nosa sección fíxose unha selfie connosco antes de entrar na sala de concertos, e entón sospeitei que podería saber algo))). Pero non coñeciamos os nosos marcadores despois da defensa, polo que o tempo ata que se anunciaba o noso equipo dende o escenario pasou un pouco tenso. No escenario entregaron unha cartolina coa inscrición 500000 rublos e a cada persoa entregáronlle unha bolsa cunha cunca e unha batería de móbil. Non conseguimos gozar da vitoria e celebrala ben, ceamos rapidamente e collemos un taxi ata o tren.

Avance dixital: como ocorreu
O equipo WAICO gaña a final

Ao regresar a Moscova, entrevistáronnos xornalistas de NTV. Filmamos durante unha hora enteira no segundo andar da cafetería Kvartal 44 en Polyanka, pero as noticias mostraron só uns segundos 10. Despois de todo, un forte progreso en comparación coa etapa rexional.

Se resumimos as impresións xerais do Avance Dixital, son as seguintes. Gastouse moito diñeiro no evento; nunca antes vin hackathons de tal escala. Pero non podo dicir que isto estea xustificado e que realmente vai pagar. Unha parte importante dos participantes que acudiron a Kazán eran simplemente festeiros que non sabían facer nada coas súas propias mans e que se viron obrigados a marcar un récord. Non podo dicir que a competición nas finais fose maior que na autonómica. Ademais, o valor e utilidade das tarefas dalgunhas pistas é cuestionable. Algúns problemas foron resoltos dende hai tempo a nivel industrial. Como se viu despois, algunhas organizacións que dirixían as pistas non estaban interesadas en solucionalas. E esta historia aínda non rematou, os equipos líderes de cada pista foron seleccionados para o pre-acelerador, e suponse que resultarán ser startups revolucionarias. Pero aínda non estou preparado para escribir sobre isto, veremos que sae.

Fonte: www.habr.com

Engadir un comentario