Avenç digital: com va passar

Aquest no és el primer hackathon que guanyo, ni el primer sobre el qual guanyo escriptura, i aquesta no és la primera entrada a Habré dedicada a “Avenç digital”. Però no vaig poder evitar escriure. Considero que la meva experiència és prou única com per compartir-la. Segurament sóc l'única persona d'aquest hackató que va guanyar l'etapa regional i les finals formant part de diferents equips. Vols saber com va passar això? Benvingut al gat.

Fase regional (Moscou, 27 - 28 de juliol de 2019).

Vaig veure per primera vegada un anunci de "Digital Breakthrough" en algun lloc entre març i abril d'aquest any. Naturalment, no vaig poder deixar passar un hackathon tan gran i em vaig registrar al lloc. Allà vaig conèixer les condicions i el programa del concurs. Va resultar que per accedir al hackathon calia superar una prova en línia, que va començar el 16 de maig. I, potser, m'hauria oblidat convenientment, ja que no vaig rebre cap carta que em recordés l'inici de la prova. I, he de dir, en el futur TOTES LES CARTES que em van arribar de la CPU van acabar constantment a la carpeta de correu brossa. Tot i que feia clic al botó "no objetable" cada vegada. No sé com van aconseguir aquest resultat; no em va funcionar amb l'enviament a MailGun. I els nois sembla que no coneixen gens l'existència de serveis com isnotspam.com. Però divaguem.

Em va recordar l'inici de les proves en una de les reunions club d'inici, allà també vam parlar de la formació de l'equip. Després d'haver obert la llista de proves, primer em vaig asseure a la prova de Javascript. En general, les tasques eren més o menys adequades (com quin serà el resultat si afegiu 1 + '1' a la consola). Però des de la meva experiència, utilitzaria aquestes proves quan contracto per a una feina o un equip amb reserves molt grans. El fet és que en el treball real, un programador poques vegades es troba amb aquestes coses, amb la seva capacitat de depurar el codi ràpidament: aquest coneixement no es correlaciona de cap manera i podeu entrenar per a aquestes coses per a entrevistes amb força facilitat (ho sé per mi mateix). En general, vaig fer clic a la prova amb força rapidesa, en alguns casos em vaig comprovar a la consola. A la prova de Python, les tasques eren aproximadament del mateix tipus, també em vaig provar a la consola, i em va sorprendre aconseguir més punts que a JS, tot i que mai he programat professionalment en Python. Més tard, en converses amb els participants, vaig escoltar històries sobre com els programadors forts van obtenir una puntuació baixa a les proves, com algunes persones van rebre cartes que deien que no aprovaven el procés de selecció de la CPU i, de totes maneres, se'ls va convidar a participar-hi. És evident que els creadors d'aquestes proves probablement no n'han sentit a parlar teoria de la prova, ni sobre la seva fiabilitat i validesa, ni sobre com provar-los, i la idea amb proves hauria estat un fracàs des del primer moment, encara que no tinguéssim en compte l'objectiu principal del hackathon. I l'objectiu principal del hack, com vaig saber més tard, era establir un rècord Guinness, i les proves ho contradiuen.

En algun moment després de passar les proves, em van trucar, em van demanar si hi participaria, em van aclarir els detalls i em van dir com entrar al xat per seleccionar un equip. Aviat, vaig entrar al xat i vaig escriure breument sobre mi. Hi havia una escombraria completa al xat; semblava que els organitzadors feien publicitat a molta gent aleatòria que no tenia res a veure amb TI. Nombrosos gestors de productes "al nivell de Steve Jobs" (una frase real de la presentació d'un participant) van publicar històries sobre ells mateixos, i els desenvolupadors normals ni tan sols eren visibles. Però vaig tenir sort i aviat em vaig unir a tres programadors JS experimentats. Ja ens vam conèixer a l'hackathon i després vam afegir una noia a l'equip per inspirar-nos i resoldre problemes organitzatius. No recordo per què, però vam agafar el tema "Formació en ciberseguretat" i el vam incloure a la pista "Ciència i Educació 2". Per primera vegada em vaig trobar en un equip de 4 programadors forts i per primera vegada vaig sentir com de fàcil era guanyar en una composició així. Vam venir sense estar preparats i vam discutir fins a dinar i no vam poder decidir què faríem: una aplicació mòbil o una web. En qualsevol altra situació hauria pensat que era un fracàs. El més important per a nosaltres va ser entendre com seríem millors que els nostres competidors, perquè hi havia molts equips al voltant que estaven retallant proves, jocs de ciberseguretat i similars. Després de mirar això i buscar a Google programes i aplicacions de formació, vam decidir que el nostre principal diferenciador serien els simulacres d'incendi. Hem seleccionat una sèrie de funcions que hem trobat interessants per implementar (registre amb correu electrònic i verificació de contrasenyes contra bases de dades de pirates informàtics, enviament de correus electrònics de pesca (en forma de cartes de bancs coneguts), formació en enginyeria social al xat). Després d'haver decidit què estàvem fent i entenent com podríem destacar, vam escriure ràpidament una aplicació web completa i vaig jugar el paper inusual d'un desenvolupador backend. Així, vam guanyar la nostra pista amb confiança i, com a part de tres equips més, vam classificar-nos per a la final de Kazan. Més tard, a Kazan, vaig saber que la selecció per a la final era una ficció; hi vaig conèixer moltes cares conegudes dels equips que no van passar la selecció. Fins i tot ens van entrevistar periodistes de Canal 1. Tanmateix, a l'informe, la nostra aplicació només es va mostrar durant 1 segon.

Avenç digital: com va passar
Equip nevat, on vaig guanyar l'etapa autonòmica

Final (Kazan, del 27 al 29 de setembre de 2019)

Però aleshores van començar els fracassos. Tots els programadors de l'equip de Snowed en un mes aproximadament, un rere l'altre, van informar que no podrien anar a Kazan per a la final. I vaig pensar a trobar un nou equip. En primer lloc, vaig fer una trucada al xat general del Russian Hack Team, i tot i que allà vaig rebre força respostes i invitacions per unir-me als equips, cap d'elles em va cridar l'atenció. Hi havia equips desequilibrats, com ara producte, desenvolupador mòbil, front-end, que recordaven un cigne, un cranc de riu i un lluç d'una faula. També hi havia equips que no eren adequats per a mi pel que fa a la tecnologia (per exemple, amb el desenvolupament d'una aplicació mòbil a Flutter). Finalment, en una xerrada que vaig considerar brossa (el mateix VKontakte on es va fer la selecció d'equips per a l'etapa regional), es va publicar un anunci sobre la recerca d'un frontender per a l'equip i vaig escriure a l'atzar. Els nois van resultar ser estudiants de postgrau a Skoltech i immediatament es van oferir a conèixer i conèixer-se. Em va agradar; els equips que prefereixen conèixer-se de seguida en un hackató solen alarmar-me amb la seva falta de motivació. Ens vam conèixer a "Rake" a Pyatnitskaya. Els nois semblaven intel·ligents, motivats, confiats en ells mateixos i en la victòria, i vaig prendre la decisió allà mateix. Encara no sabíem quines pistes i tasques serien a la final, però vam suposar que escolliríem alguna cosa relacionada amb l'aprenentatge automàtic. I la meva tasca serà escriure un administrador per a aquest assumpte, així que vaig preparar una plantilla per a això per endavant basada en antd-admin.
Vaig anar a Kazan gratis, a costa dels organitzadors. He de dir que ja s'ha manifestat molta insatisfacció en xats i blogs pel que fa a la compra d'entrades i, en general, a l'organització de la final, no ho tornaré a explicar tot.

Arribats a Kazan Expo, inscrits (vaig tenir una mica de problemes per aconseguir el distintiu) i esmorzar, vam anar a triar una pista. Només vam anar a la inauguració, on van parlar els funcionaris, durant uns 10 minuts, de fet, ja teníem les nostres vies preferides, però ens interessava els detalls. A la pista núm. 18 (Rostelecom), per exemple, va resultar que calia desenvolupar una aplicació mòbil, encara que això no constava a la breu descripció. Vam fer l'elecció principal entre la via núm. 8 Defectoscòpia de canonades, Gazprom Neft PJSC i la via núm. 13 centres perinatals, Cambra de Comptes de la Federació Russa. En ambdós casos calia Data Science, i en ambdós casos s'hauria pogut afegir la web. A la pista número 13, ens va aturar el fet que la tasca de Data Science allà era força feble, calia analitzar Rosstat i no estava clar si calia un panell d'administració. I el valor mateix de la tasca estava en dubte. Al final, vam decidir que com a equip érem més aptes per a la pista 8, sobretot perquè els nois ja tenien experiència en la resolució de problemes similars. Vam començar pensant en l'escenari en què la nostra aplicació seria utilitzada per l'usuari final. Va resultar que tindríem dos tipus d'usuaris: tècnics interessats en la informació tècnica i gestors que necessitaven indicadors financers. Quan va sorgir una idea de l'escenari, va quedar clar què s'havia de fer a la part frontal, què havia de dibuixar el dissenyador i quins mètodes es necessitaven a la part posterior, va ser possible distribuir les tasques. Les responsabilitats de l'equip es van distribuir de la següent manera: dues persones van resoldre ML amb dades rebudes d'experts tècnics, una persona va escriure el backend en Python, jo vaig escriure el front end a React i Antd, el dissenyador va dibuixar les interfícies. Fins i tot ens vam asseure perquè ens fos més convenient comunicar-nos mentre resolíem els nostres problemes.

El primer dia va passar volant gairebé desapercebut. En comunicació amb experts tècnics, va resultar que ells (Gazprom Neft) ja havien resolt aquest problema, només es preguntaven si es podria resoldre millor. No diré que això va reduir la meva motivació, però va deixar un residu. Em va sorprendre que a la nit els moderadors de la secció notessin els equips de treball (com deien per a les estadístiques), això no es practica habitualment als hackatons. Al matí teníem un prototip de la part davantera, alguns rudiments de la part posterior i la primera solució ML a punt. En general, ja hi havia alguna cosa per mostrar als experts. El dissabte a la tarda, el dissenyador, òbviament, va dibuixar més interfícies de les que tindria temps per codificar i va passar a crear una presentació. Dissabte es va reservar el registre del disc i, al matí, tots els que treballaven a la sala van ser expulsats al passadís, després es va fer l'entrada i la sortida de la sala amb distintius, i es va poder sortir per no més. més d'una hora al dia. No diré que això ens va causar cap inconvenient important; la major part del dia encara vam estar asseguts i treballant. El menjar, efectivament, era molt escàs; per dinar vam rebre un got de brou, un pastís i una poma, però de nou això no ens va molestar gaire, estàvem centrats en una altra cosa.

Periòdicament repartien red bull, dues llaunes per mà, que era molt útil. La recepta de beguda energètica + cafè, que feia temps que s'havia provat a hackathons, em va permetre codificar tota la nit i l'endemà, sent tan alegre com una copa. El segon dia, de fet, només vam afegir noves funcions a l'aplicació, vam calcular indicadors financers i vam començar a mostrar gràfics sobre les estadístiques de defectes a les carreteres. No hi va haver cap revisió de codi com a tal a la nostra pista; els experts van avaluar la solució del problema a l'estil kaggle.com, basant-se en la precisió de la previsió, i es va avaluar visualment el front end. La nostra solució de ML va resultar ser la més precisa, potser això és el que ens va permetre convertir-nos en líders. La nit de dissabte a diumenge vam treballar fins a les 2 del matí, i després vam anar a dormir a l'apartament que vam fer servir com a base. Hem dormit unes 5 hores, diumenge a les 9 del matí ja estàvem a Kazan Expo. Vaig preparar alguna cosa de pressa, però la major part del temps la vaig passar preparant-me per a la predefensa. Les predefenses es van fer en 2 streams, davant de dos equips d'experts; ens van demanar que parléssim per últim, ja que ambdós equips d'experts ens volien escoltar. Vam prendre això com un bon senyal. L'aplicació es va mostrar des del meu portàtil, des d'un servidor de desenvolupament en execució; no vam tenir temps per implementar correctament l'aplicació, però, tothom va fer el mateix.

En general, tot va anar bé, ens van assenyalar punts en què podríem millorar la nostra aplicació, i en el temps previ a la defensa fins i tot vam intentar implementar alguns d'aquests comentaris. La defensa també ha anat sorprenentment sense problemes. Basant-nos en els resultats de la predefensa, sabíem que estàvem per davant pel que fa als punts, estàvem al capdavant pel que fa a la precisió de la solució, teníem un bon front-end, un bon disseny i, en general, teníem un bon sentiments. Un altre signe favorable va ser que la noia moderadora de la nostra secció es va fer una selfie amb nosaltres abans d'entrar a la sala de concerts, i llavors vaig sospitar que podria saber alguna cosa))). Però no sabíem els nostres resultats després de la defensa, així que el temps fins que es va anunciar el nostre equip des de l'etapa va passar una mica tens. A l'escenari van lliurar una cartolina amb la inscripció 500000 rubles i cada persona va rebre una bossa amb una tassa i una bateria de mòbil. No vam poder gaudir de la victòria i celebrar-la com cal; vam sopar ràpidament i vam agafar un taxi fins al tren.

Avenç digital: com va passar
L'equip WAICO guanya la final

En tornar a Moscou, ens van entrevistar periodistes de NTV. Vam rodar durant una hora sencera al segon pis del cafè Kvartal 44 de Polyanka, però la notícia només va mostrar uns 10 segons. Al cap i a la fi, un gran progrés en comparació amb l'etapa regional.

Si resumim les impressions generals de l'Avenç digital, són les següents. Es van gastar molts diners en l'esdeveniment; mai abans havia vist hackatons d'aquesta escala. Però no puc dir que això estigui justificat i que realment pagarà. Una part important dels participants que van venir a Kazan eren simplement festers que no sabien fer res amb les seves pròpies mans i que es van veure obligats a establir un rècord. No puc dir que la competició a les finals fos més alta que a la fase autonòmica. A més, el valor i la utilitat de les tasques d'algunes pistes és qüestionable. Alguns problemes s'han resolt durant molt de temps a nivell industrial. Com va resultar després, algunes organitzacions que van dur a terme les pistes no estaven interessades a resoldre'ls. I aquesta història encara no s'ha acabat, els equips líders de cada pista van ser seleccionats per al preaccelerador, i se suposa que es convertiran en startups AVANCES. Però encara no estic preparat per escriure sobre això, veurem què en surt.

Font: www.habr.com

Afegeix comentari