Avance digital: cómo fue

Este no es el primer hackathon que gano, no es el primero sobre el que escribo , y está lejos de ser la primera publicación en el centro dedicado al Avance Digital. Pero no pude escribir. Considero que mi experiencia es lo suficientemente única como para compartir. Probablemente soy la única persona en este hackathon que ganó la etapa regional y la final como parte de diferentes equipos. ¿Quieres saber cómo sucedió esto? Bienvenido a cat.


Etapa regional (Moscú, 27 y 28 de julio de 2019).


La primera vez que vi el anuncio de Digital Breakout fue en marzo o abril de este año. Naturalmente, no pude pasar por un hackathon tan grande y me registré en el sitio. También me familiaricé con las condiciones y el programa de la competencia. Resultó que para llegar al hackathon, era necesario someterse a pruebas en línea, que comenzaron el 16 de mayo. Y, tal vez, me habría olvidado de ello, ya que no llegó una carta con un recordatorio sobre el inicio de las pruebas. Y, debo decir, en el futuro TODAS LAS CARTAS que me llegaron de la CPU cayeron constantemente en la carpeta de spam. Aunque presioné el botón "no es indeseable" cada vez. No sé cómo lograron lograr ese resultado, no funcionó para mí con el envío por correo en MailGun. Y los chicos no parecen saber sobre la existencia de servicios como isnotspam.com en principio. Pero nos desviamos.


Me recordó el inicio de las pruebas en una de las reuniones del club de inicio , donde también discutimos la formación del equipo. Después de abrir la lista de pruebas, primero me senté para una prueba en Javascript. En general, las tareas fueron más o menos adecuadas (como cuál sería el resultado si agrega 1 + '1' en la consola). Pero desde mi propia experiencia, usaría tales pruebas al seleccionar un trabajo o como un equipo con reservas muy grandes. El hecho es que, en el trabajo real, el programador rara vez se encuentra con tales cosas, con su capacidad de hacer rápidamente el código; este conocimiento no se correlaciona de ninguna manera, y puede practicar tales cosas para las entrevistas con bastante facilidad (lo sé por mí mismo). En general, hice clic en la prueba bastante rápido, en algunos casos me revisé en la consola. En la prueba de Python, las tareas eran del mismo tipo, también me revisé en la consola, con sorpresa, obtuve más puntos que en JS, aunque nunca programé profesionalmente en Python. Luego, en una conversación con los participantes, escuché historias sobre cómo los programadores fuertes obtuvieron puntajes bajos en las pruebas, cómo algunas personas recibieron cartas indicando que no habían pasado la selección para la CPU, y luego fueron invitados a ello de todos modos. Está claro que los creadores de estas pruebas, muy probablemente, no escucharon nada sobre la teoría de las pruebas , ni sobre su confiabilidad y validez, ni sobre cómo probarlas, y la idea con las pruebas sería inicialmente un fracaso, incluso si no tomáramos en cuenta el objetivo principal hackathon Y el objetivo principal del hack, como supe más tarde, era establecer un récord Guinness, y las pruebas la contradecían.


En algún momento después de pasar las pruebas, me llamaron, me preguntaron si participaría, aclararon los detalles y me dijeron cómo entrar en el chat para seleccionar un equipo. Pronto, entré en el chat y escribí un corto sobre mí. Se creó una basura completa en el chat, se hizo la impresión de que los organizadores se habían puesto al día con la publicidad de muchas personas al azar que no tenían nada que ver con TI. Numerosos gerentes de productos del "nivel de Steve Jobs" (una frase real de la presentación de un participante) publicaron historias sobre sí mismos, y los desarrolladores normales ni siquiera eran visibles. Pero tuve suerte, y pronto me uní a tres programadores experimentados de JS. Ya nos conocimos en el hackathon, luego agregamos una chica al equipo para inspirarse y resolver problemas de organización. No recuerdo por qué, pero tomamos el tema "Educación en ciberseguridad" y nos metimos en la pista "Ciencia y educación 2". La primera vez que estuve en un equipo de 4 programadores fuertes y por primera vez sentí lo fácil que es ganar en esa composición. Llegamos sin preparación y discutimos antes de la cena y no pudimos decidir qué haríamos: una aplicación móvil o la web. En cualquier otra situación, creo que esto es un fracaso. Lo más importante para nosotros era entender cómo seríamos mejores que los competidores, porque había muchos equipos alrededor que realizaban pruebas, juegos de ciberseguridad y cosas por el estilo. Al mirarlo y los tutoriales y aplicaciones de Google, decidimos que nuestra principal característica distintiva sería la capacitación en alarmas contra incendios. Seleccionamos una serie de chips que encontramos interesantes para la implementación (registro con verificación de correo electrónico y contraseña en bases de hackers, envío de cartas de phishing (en forma de cartas de bancos conocidos), capacitación en ingeniería social en el chat). Habiendo decidido lo que estamos haciendo y entendiendo cómo podemos destacar, rápidamente escribimos una aplicación web completa, y actué en el rol de un desarrollador backend inusual para mí. Por lo tanto, ganamos con confianza nuestra pista y, como parte de tres equipos más, seleccionamos para la final en Kazán. Más tarde, en Kazán, supe que la selección para la final era una ficción, conocí muchas caras conocidas de los equipos que no pasaron esta selección. Incluso entrevistamos a periodistas del Canal 1. Es cierto que nuestra aplicación se mostró solo durante 1 segundo en un informe.



Equipo nevado, en el que gané la etapa regional


Final (Kazán, 27 y 29 de septiembre de 2019)


Pero comenzaron otros reveses. Todos los programadores del equipo Nevado durante aproximadamente un mes, uno tras otro, informaron que no podían ir a Kazan para la final. Y pensé en encontrar un nuevo equipo. Al principio lancé un grito en el chat general del Equipo de Hack ruso, y aunque allí recibí bastantes respuestas e invitaciones a los equipos, pero ninguna de ellas me enganchó. Había equipos desequilibrados, como producto, desarrollador móvil, front-end, que recordaban a un cisne, un cangrejo y un lucio de una fábula. También hubo equipos que no me convenían en tecnología (por ejemplo, con el desarrollo de una aplicación móvil en Flutter). Finalmente, en el chat, que consideré basura (el mismo VKontakte, donde se seleccionaron los equipos para la etapa regional), publicaron un anuncio sobre la búsqueda del renderizador frontal en el equipo, y escribí al azar. Los chicos resultaron ser estudiantes graduados de Skoltech e inmediatamente se ofrecieron a conocerse y conocerse. Me gustó, los equipos que prefieren conocer el hackathon de inmediato suelen preocuparme por su falta de motivación. Conocido en el "Rastrillo" en Pyatnitskaya. Los muchachos parecían sensatos, motivados, confiados en sí mismos y en la victoria, y tomé una decisión allí mismo. No sabíamos cuáles serían las pistas y las tareas en la final, pero asumimos que elegiríamos algo relacionado con Machine Learning. Y mi tarea será escribir un panel de administración para este negocio, así que preparé un espacio en blanco basado en antd-admin para esto.
Fui a Kazan gratis, a expensas de los organizadores. Debo decir que en chats y blogs ya se ha expresado mucha insatisfacción sobre la compra de boletos y, en general, sobre la organización de la final, no lo volveré a contar.


Al llegar a la Kazan Expo, registrarme (al mismo tiempo tuve algunos problemas para obtener una insignia) y desayunar, fuimos a elegir una pista. Fuimos a la ceremonia de apertura, donde los funcionarios hablaron, durante solo 10 minutos. De hecho, ya teníamos nuestras pistas preferidas, pero estábamos interesados ​​en los detalles. En la pista No. 18 (Rostelecom), por ejemplo, resultó que era necesario desarrollar una aplicación móvil, aunque esto no estaba en la descripción breve. Hicimos la elección principal entre la pista No. 8 Inspección de tuberías, PJSC Gazprom Neft y la pista No. 13 Centros perinatales, Cámara de Cuentas de la Federación Rusa. Tanto allí como allí se necesitaba Data Science, y allí, y allí sería posible cerrar la red. En la pista No. 13, nos detuvo el hecho de que la tarea de Data Science era bastante débil allí, era necesario analizar Rosstat y no estaba claro si era necesario un panel de administración. Y el valor de la tarea era dudoso. Como resultado, decidimos que, como equipo, estamos más centrados en la pista 8, especialmente porque los muchachos ya tenían experiencia en la resolución de tales problemas. Comenzamos pensando en un escenario en el que nuestra aplicación será utilizada por el usuario final. Resultó que tendremos dos tipos de usuarios: técnicos que están interesados ​​en información técnica y gerentes que necesitan indicadores financieros. Cuando apareció la idea del guión, quedó claro qué hacer en el frente, qué dibujar para el diseñador y qué métodos se necesitan en el backend, fue posible distribuir las tareas. Las responsabilidades en el equipo fueron las siguientes: dos personas resolvieron el LD con los datos recibidos de los expertos técnicos, una persona escribió un backend en python, yo escribí el frente en el react y antd, el diseñador dibujó interfaces. Incluso nos sentamos para que nos fuera más conveniente comunicarnos mientras resolvíamos nuestros problemas.


El primer día pasó casi imperceptiblemente. En comunicación con expertos técnicos, resultó que ellos (Gazprom Neft) ya habían resuelto este problema, solo se preguntaban si podría resolverse mejor. No diré que esto redujo la motivación, pero el sedimento permaneció. Fue sorprendente que por la noche los moderadores de la sección observaran equipos de trabajo (como dijeron para las estadísticas), por lo general esto no se practica en los hackatones. Por la mañana, teníamos un prototipo del frente, algunos de los comienzos del reverso, la primera solución ML. En general, ya había algo que mostrar a los expertos. El sábado por la tarde, el diseñador dibujó obviamente más interfaces de las que hubiera podido codificar y cambió a crear una presentación. El sábado fue asignado para registrar el registro, y en la mañana, todos los trabajadores en el pasillo fueron expulsados ​​al pasillo, luego la entrada y la salida del pasillo se llevaron a cabo con insignias, y fue posible salir por el día no más de una hora. No puedo decir que nos haya causado algún inconveniente importante, la mayor parte del día seguimos sentados y trabajando. La comida, de hecho, era muy escasa, para el almuerzo recibimos un vaso de caldo, un pastel y una manzana, pero nuevamente esto no nos molestó mucho, nos enfocamos en el otro.


Periódicamente emitido red bull, dos latas por mano, fue muy útil. La receta energetik + coffee, que ya había sido probada en hackatones, permitía codificar toda la noche y al día siguiente, siendo tan alegre como un vaso. En el segundo día, de hecho, ya simplemente acumulamos nuevos chips en la aplicación, hicimos un cálculo de indicadores financieros y comenzamos a mostrar gráficos sobre las estadísticas de defectos en las carreteras. Como tal, no hubo revisión de código en nuestra pista, los expertos evaluaron la solución del problema al estilo de kaggle.com, por la precisión del pronóstico, y el front-end se evaluó visualmente. Nuestra solución ML resultó ser la más precisa, quizás esto es lo que nos permitió entrar en la delantera. En la noche del sábado al domingo, trabajamos hasta las 2 a.m., y luego nos fuimos a dormir al departamento, que se usaba como base. Dormimos durante aproximadamente 5 horas, el domingo a las 9 a.m., ya estábamos en la Expo Kazan. Subí algo apresuradamente, pero la mayor parte del tiempo me llevó prepararme para la defensa. Las falsificaciones tuvieron lugar en 2 transmisiones, antes de que dos equipos de expertos nos pidieran hablar en último lugar, ya que ambos equipos de expertos querían escucharnos. Lo tomamos como una buena señal. La aplicación se mostró desde mi computadora portátil, desde el servidor de desarrollo en ejecución, no logramos implementar la aplicación correctamente, sin embargo, hicimos todo de esa manera.


En general, todo salió bien, nos señalaron puntos en los que podíamos mejorar nuestra aplicación, e incluso antes de la defensa, incluso intentamos implementar uno de estos comentarios. La defensa también fue sorprendentemente fluida. Según los resultados de la defensa previa, sabíamos que estábamos a la vanguardia en términos de puntos, éramos líderes en la precisión de la decisión, teníamos una buena interfaz, un buen diseño y, en general, teníamos buenos presentimientos. Otra señal favorable fue que la moderadora de nuestra sección, antes de entrar a la sala de conciertos, se tomó una selfie con nosotros, entonces sospeché que ella podría saber algo))). Pero no sabíamos nuestros puntos después de la defensa, por lo que el tiempo hasta el anuncio de nuestro equipo desde el escenario fue un poco estresante. En el escenario entregaron un cartón con la inscripción 500,000 rublos y cada bolsa con una taza y una batería para un teléfono celular. No disfrutamos la victoria y no la celebramos normalmente, cenamos rápidamente y tomamos un taxi en tren.



Final de victoria del equipo WAICO


Al regresar a Moscú, periodistas de NTV nos entrevistaron. Filmaron una hora entera en el segundo piso del café Kvartal 44 en Polyanka, pero en las noticias mostraron 10 segundos. Después de todo, hubo un gran progreso en comparación con la etapa regional.


Para resumir las impresiones generales del avance digital, son las siguientes. El evento se gastó solo dinero loco, nunca he visto un hackathon de esta magnitud. Pero decir que está justificado y que realmente vale la pena, no puedo. Una parte importante de los participantes que llegaron a Kazán fueron simplemente asistentes a la fiesta que no saben cómo hacer nada con sus propias manos, y que fueron atrapados para establecer un registro. No puedo decir que la competencia en la final fue mayor que en la etapa regional. Además, el valor y la utilidad de las tareas de algunas pistas está en duda. Algunas tareas se han resuelto durante mucho tiempo a nivel industrial. Como resultó más tarde, algunas de las organizaciones que lideraron las pistas no estaban interesadas en resolverlos. Y esta historia aún no ha terminado, los equipos líderes de cada pista fueron seleccionados como preacelerador, y se supone que harán nuevas empresas BREAKTHROUGH. Pero todavía no estoy listo para escribir sobre eso, veamos qué sucede.

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


All Articles