Percée numérique - Comment c'était

Ce n'est pas le premier hackathon que je gagne, pas le premier sur lequel j'écris , et ce n'est pas le premier post sur le hub dédié au Digital Breakthrough. Mais je ne pouvais pas écrire. Je considère que mon expérience est assez unique pour être partagée. Je suis probablement la seule personne sur ce hackathon à avoir remporté l'étape régionale et la finale au sein de différentes équipes. Vous voulez savoir comment cela s'est produit? Bienvenue au chat.


Phase régionale (Moscou, 27-28 juillet 2019).


J'ai vu la publicité Digital Breakout pour la première fois quelque part en mars - avril de cette année. Naturellement, je ne pouvais pas passer par un si grand hackathon et m'inscrire sur le site. J'ai également pris connaissance des conditions et du programme du concours. Il s'est avéré que pour se rendre au hackathon, il fallait subir des tests en ligne, qui ont commencé le 16 mai. Et, peut-être, je l'aurais oublié en toute sécurité, car une lettre avec un rappel sur le début des tests n'est pas venue. Et, je dois dire qu'à l'avenir, TOUTES LES LETTRES qui me sont parvenues du CPU tombent régulièrement dans le dossier spam. Bien que j'aie appuyé sur le bouton «n'est pas indésirable» à chaque fois. Je ne sais pas comment ils ont réussi à obtenir un tel résultat, cela n'a pas fonctionné pour moi avec l'envoi sur MailGun. Et les gars ne semblent pas connaître l'existence de services comme isnotspam.com en principe. Mais nous nous sommes égarés.


Je me suis souvenu du début des tests lors d'une des réunions du club de démarrage , où nous avons également discuté de la formation de l'équipe. Après avoir ouvert la liste des tests, je me suis d'abord assis pour un test sur Javascript. En général, les tâches étaient plus ou moins adéquates (comme le résultat si vous ajoutez 1 + '1' dans la console). Mais d'après ma propre expérience, j'utiliserais de tels tests lors de la sélection pour un emploi ou en équipe avec de très grandes réservations. Le fait est que dans le travail réel, le programmeur rencontre rarement de telles choses, avec sa capacité à faire rapidement le code - cette connaissance n'a aucune corrélation, et vous pouvez pratiquer de telles choses pour des entretiens assez facilement (je le sais par moi-même). En général, j'ai cliqué sur le test assez rapidement, dans certains cas, je me suis vérifié dans la console. Dans le test python, les tâches étaient du même type, je me suis aussi vérifié dans la console, avec surprise j'ai marqué plus de points qu'en JS, même si je n'ai jamais programmé professionnellement en python. Ensuite, lors d'une conversation avec les participants, j'ai entendu des histoires sur la façon dont des programmeurs solides ont obtenu de faibles résultats aux tests, comment certaines personnes ont reçu des lettres indiquant qu'elles n'avaient pas passé la sélection pour le processeur, puis elles ont été invitées de toute façon. Il est clair que les créateurs de ces tests n'ont probablement rien entendu sur la théorie des tests , ni sur leur fiabilité et leur validité, ni sur la façon de les tester, et l'idée avec les tests serait initialement un échec, même si nous ne tenions pas compte de l'objectif principal hackathon. Et le but principal du hack, comme je l'ai appris plus tard, était d'établir un record Guinness, et les tests l'ont contredite.


À un moment donné, après avoir réussi les tests, ils m'ont appelé, m'ont demandé si je voulais participer, ont clarifié les détails et m'ont dit comment entrer dans le chat pour sélectionner une équipe. Bientôt, je suis entré dans le chat et j'ai écrit un court métrage sur moi-même. Une poubelle complète a été créée dans le chat, l'impression a été faite que les organisateurs avaient rattrapé la publicité de beaucoup de gens au hasard qui n'avaient rien à voir avec l'informatique. De nombreux chefs de produit du «niveau Steve Jobs» (une vraie phrase de la présentation d'un participant) ont publié des histoires sur eux-mêmes, et les développeurs normaux n'étaient même pas visibles. Mais j'ai eu de la chance et j'ai vite rejoint trois programmeurs JS expérimentés. Nous nous sommes déjà rencontrés au hackathon, puis nous avons ajouté une fille à l'équipe pour trouver l'inspiration et résoudre les problèmes d'organisation. Je ne me souviens pas pourquoi, mais nous avons pris le sujet «Éducation à la cybersécurité» et nous sommes lancés sur la piste «Science et éducation 2» avec. La première fois que je faisais partie d'une équipe de 4 programmeurs solides et pour la première fois j'ai senti combien il est facile de gagner dans une telle composition. Nous sommes venus sans préparation et nous nous sommes disputés avant le dîner et n'avons pas pu décider de ce que nous allions faire: une application mobile ou le Web. Dans toute autre situation, je pense que c'est un échec. La chose la plus importante pour nous était de comprendre comment nous serions meilleurs que nos concurrents, car il y avait beaucoup d'équipes autour qui ont scié des tests, des jeux de cybersécurité, etc. En le regardant et les didacticiels et applications Google, nous avons décidé que notre principale caractéristique distinctive serait la formation sur les alarmes incendie. Nous avons sélectionné un certain nombre de puces que nous avons trouvées intéressantes pour la mise en œuvre (enregistrement avec vérification des e-mails et des mots de passe sur les bases des pirates, envoi de lettres de phishing (sous la forme de lettres de banques bien connues), formation en ingénierie sociale en chat) Après avoir décidé de ce que nous faisons et compris comment nous pouvons nous démarquer, nous avons rapidement écrit une application Web à part entière, et j'ai agi dans le rôle d'un développeur backend inhabituel pour moi. Ainsi, nous avons remporté notre piste en toute confiance et, au sein de trois autres équipes, nous avons sélectionné pour la finale à Kazan. Plus tard, à Kazan, j'ai appris que la sélection pour la finale était une fiction, j'ai rencontré de nombreux visages familiers des équipes qui n'ont pas réussi cette sélection. Nous avons même interviewé des journalistes de Channel 1. Certes, notre application n'a été montrée que pendant 1 seconde dans un rapport d'elle.



Équipe enneigée, dans laquelle j'ai remporté l'étape régionale


Finale (Kazan, 27-29 septembre 2019)


Mais de nouveaux revers ont commencé. Tous les programmeurs de l'équipe Snowed pendant environ un mois, l'un après l'autre, ont indiqué qu'ils ne pouvaient pas aller à Kazan pour la finale. Et j'ai pensé à trouver une nouvelle équipe. Au début, j'ai lancé un cri dans le chat général de la Russian Hack Team, et bien que là-bas, j'ai reçu pas mal de réponses et d'invitations aux équipes, mais aucune ne m'a accroché. Il y avait des équipes déséquilibrées, telles que produit, développeur mobile, front-end, rappelant un cygne, un crabe et un brochet d'une fable. Il y avait aussi des équipes qui ne me correspondaient pas dans la technologie (par exemple, avec le développement d'une application mobile sur Flutter). Enfin, dans le chat, que j'ai considéré comme une poubelle (le même VKontakte, où les équipes ont été sélectionnées pour la phase régionale), ils ont publié une annonce sur la recherche du moteur de rendu dans l'équipe, et j'ai écrit au hasard. Les gars se sont avérés être des étudiants diplômés de Skoltech et ont immédiatement proposé de se rencontrer et de se connaître. J'ai bien aimé, les équipes qui préfèrent découvrir le hackathon tout de suite me troublent généralement par leur manque de motivation. Rencontré dans le "Rake" sur Pyatnitskaya. Les gars semblaient raisonnables, motivés, confiants en eux-mêmes et en victoire, et j'ai pris une décision tout de suite. Nous ne savions pas quelles seraient les pistes et les tâches en finale, mais nous avons supposé que nous choisirions quelque chose lié au Machine Learning. Et ma tâche sera d'écrire un panneau d'administration pour cette entreprise, j'ai donc préparé un blanc basé sur antd-admin pour cela.
Je suis allé à Kazan gratuitement, aux frais des organisateurs. Je dois dire que dans les chats et les blogs, beaucoup d'insatisfactions ont déjà été exprimées concernant l'achat de billets et, en général, l'organisation de la finale, je ne vais pas tout raconter.


En arrivant à Kazan Expo, en m'inscrivant (en même temps j'ai eu des problèmes pour obtenir un badge) et en prenant le petit déjeuner, nous sommes allés choisir une piste. Nous sommes allés à la cérémonie d'ouverture, où les fonctionnaires ont pris la parole, pendant seulement 10 minutes. En fait, nous avions déjà nos pistes préférées, mais nous étions intéressés par les détails. Dans la piste n ° 18 (Rostelecom), par exemple, il s'est avéré nécessaire de développer une application mobile, bien que cela ne soit pas dans la courte description. Nous avons fait le choix principal entre l'inspection du pipeline n ° 8, PJSC Gazprom Neft et les centres périnatals n ° 13, Chambre des comptes de la Fédération de Russie. Là et là, il fallait la Data Science, et là, et là, il serait possible de sécuriser le web. Dans la piste n ° 13, nous avons été arrêtés par le fait que la tâche de Data Science y était plutôt faible, qu'il fallait analyser Rosstat et il n'était pas clair si un panel d'administration était nécessaire. Et la valeur même de la tâche était douteuse. En conséquence, nous avons décidé qu'en tant qu'équipe, nous nous concentrions davantage sur la piste 8, d'autant plus que les gars avaient déjà de l'expérience dans la résolution de tels problèmes. Nous avons commencé par penser à un scénario dans lequel notre application serait utilisée par l'utilisateur final. Il s'est avéré que nous aurons deux types d'utilisateurs: les techniciens qui s'intéressent à l'information technique et les gestionnaires qui avaient besoin d'indicateurs financiers. Lorsque l'idée du script est apparue, il est devenu clair quoi faire à l'avant, quoi dessiner pour le concepteur et quelles méthodes sont nécessaires sur le backend, il est devenu possible de répartir les tâches. Les responsabilités dans l'équipe étaient les suivantes: deux personnes ont résolu ML avec les données reçues des experts techniques, une personne a écrit un backend en python, j'ai écrit le front sur react et antd, le designer a dessiné des interfaces. Nous nous sommes même assis pour qu'il soit plus pratique pour nous de communiquer tout en résolvant nos problèmes.


Le premier jour s'est passé presque imperceptiblement. En communication avec des experts techniques, il s'est avéré qu'ils (Gazprom Neft) avaient déjà résolu ce problème, ils se demandaient simplement s'il pouvait être mieux résolu. Je ne dirai pas que cela a réduit la motivation, mais les sédiments sont restés. Il était surprenant que la nuit, les modérateurs de la section aient noté des équipes de travail (comme ils l'ont dit pour les statistiques), ce qui n'est généralement pas pratiqué dans les hackathons. Au matin, nous avions un prototype de l'avant, certains des débuts de l'arrière, la première solution ML. En général, il y avait déjà quelque chose à montrer aux experts. Le samedi après-midi, le concepteur a évidemment dessiné plus d'interfaces que je n'aurais réussi à coder et est passé à la création d'une présentation. Samedi était prévu pour l'enregistrement du dossier, et le matin, tous les travailleurs du hall ont été expulsés dans le couloir, puis l'entrée et la sortie du hall ont été effectuées à l'aide de badges, et il a été possible de partir pour la journée pas plus d'une heure. Je ne peux pas dire que cela nous a causé des désagréments importants, la majeure partie de la journée, nous étions toujours assis et travaillions. La nourriture, en effet, était très rare, pour le déjeuner, nous avons reçu un verre de bouillon, une tarte et une pomme, mais encore une fois cela ne nous a pas beaucoup dérangé, nous nous sommes concentrés sur l'autre.


Red bull périodiquement émis, deux canettes par main, c'était très pratique. La recette energetik + café, qui avait déjà été testée sur des hackathons, a permis de coder toute la nuit et le lendemain, aussi gaie qu'un verre. Le deuxième jour, nous avons en fait déjà simplement roulé de nouvelles puces sur l'application, fait un calcul d'indicateurs financiers et commencé à afficher des graphiques sur les statistiques des défauts des autoroutes. En tant que tel, il n'y avait pas de révision de code dans notre piste, les experts ont évalué la solution au problème dans le style de kaggle.com, en fonction de l'exactitude des prévisions, et le front-end a été évalué visuellement. Notre solution ML s'est avérée être la plus précise, c'est peut-être ce qui nous a permis de prendre la tête. Dans la nuit du samedi au dimanche, nous avons travaillé jusqu'à 2 heures du matin, puis nous sommes allés dormir à l'appartement, qui servait de base. Nous avons dormi environ 5 heures, dimanche à 9 heures du matin nous étions déjà à l'Expo de Kazan. J'ai téléchargé quelque chose à la hâte, mais la plupart du temps, il a fallu se préparer pour la pré-défense. Les prédéfenses se sont déroulées en 2 volets, devant deux équipes d'experts, on nous a demandé de parler en dernier, car les deux équipes d'experts voulaient nous écouter. Nous l'avons pris comme un bon signe. L'application a été affichée depuis mon ordinateur portable, depuis le serveur de développement en cours d'exécution, nous n'avons pas réussi à déployer correctement l'application, cependant, nous avons tout fait de cette façon.


En général, tout s'est bien passé, ils nous ont signalé des points sur lesquels nous pourrions améliorer notre application, et même avant la défense, nous avons même essayé de mettre en œuvre l'un de ces commentaires. La défense s'est également déroulée de manière surprenante. Selon les résultats de la pré-défense, nous savions que nous étions en avance en termes de points, nous étions en tête dans l'exactitude de la décision, nous avions une bonne interface, un bon design et, en général, nous avions de bonnes pressentiments. Un autre signe favorable était que la modératrice de notre section, avant d'entrer dans la salle de concert, avait pris un selfie avec nous, je soupçonnais alors qu'elle savait peut-être quelque chose)))). Mais nous ne connaissions pas nos points après la défense, donc le temps jusqu'à l'annonce de notre équipe de la scène était un peu stressant. Sur la scène, ils ont remis un carton avec l'inscription 500 000 roubles et chaque sac avec une tasse et une batterie pour un téléphone portable. Nous n'avons pas apprécié la victoire et ne l'avons pas célébrée normalement, nous avons rapidement dîné et pris un taxi en train.



WAICO Team Win Final


De retour à Moscou, des journalistes de NTV nous ont interviewés. Ils ont filmé une heure entière au deuxième étage du café Kvartal 44 sur Polyanka, mais dans les nouvelles ils ont montré 10 secondes, après tout, il y avait une forte progression par rapport à la scène régionale.


Pour résumer les impressions générales de la percée numérique, elles sont les suivantes. L'événement a été dépensé juste de l'argent fou, je n'ai jamais vu un hackathon de cette ampleur. Mais dire que c'est justifié, et que ça rapporte vraiment, je ne peux pas. Une partie importante des participants arrivés à Kazan étaient simplement des fêtards qui ne savent rien faire de leurs propres mains et qui ont été rattrapés pour établir un record. Je ne peux pas dire que la compétition en finale était plus élevée qu’au niveau régional. De plus, la valeur et l'utilité des tâches de certaines pistes sont mises en doute. Certaines tâches sont depuis longtemps résolues au niveau industriel. Comme il s'est avéré plus tard, certaines des organisations qui ont dirigé les pistes n'étaient pas intéressées à les résoudre. Et cette histoire n'est pas encore terminée, les équipes leaders de chaque piste ont été sélectionnées comme pré-accélérateur, et il est supposé qu'elles feront des startups BREAKTHROUGH. Mais je ne suis pas encore prêt à écrire à ce sujet, voyons ce qui se passe.

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


All Articles