Rəqəmsal sıçrayış - necə baş verdi

Bu, mənim qazandığım ilk hakathon deyil, birincisi deyil yazı, və bu, Habré-də “Rəqəmsal sıçrayış”a həsr olunmuş ilk yazı deyil. Amma yazmağa gücüm çatmadı. Təcrübəmi bölüşmək üçün kifayət qədər unikal hesab edirəm. Mən yəqin ki, bu hakatonda müxtəlif komandaların tərkibində regional mərhələ və finallarda qalib gələn yeganə insanam. Bunun necə baş verdiyini bilmək istəyirsiniz? Pişiyə xoş gəldiniz.

Regional mərhələ (Moskva, 27-28 iyul 2019-cu il).

İlk dəfə bu ilin mart-aprel aylarında haradasa “Digital Breakthrough” reklamını gördüm. Təbii ki, mən belə böyük bir hakatonu keçə bilmədim və saytda qeydiyyatdan keçdim. Orada müsabiqənin şərtləri və proqramı ilə tanış oldum. Məlum oldu ki, hakatona düşmək üçün mayın 16-da başlayan onlayn testdən keçməlisən. Və bəlkə də bu barədə rahatlıqla unutmuşdum, çünki testin başlandığını xatırladan məktub almadım. Və deməliyəm ki, gələcəkdə CPU-dan mənə gələn BÜTÜN MƏKTUBLAR ardıcıl olaraq spam qovluğuna düşürdü. Baxmayaraq ki, hər dəfə “ehtiramsız deyil” düyməsini basdım. Onların belə bir nəticəyə necə nail olduqlarını bilmirəm; MailGun-da poçt göndərmək mənim üçün heç bir nəticə vermədi. Və uşaqlar isnotspam.com kimi xidmətlərin mövcudluğu haqqında ümumiyyətlə bilmirlər. Amma biz yayınırıq.

Görüşlərin birində testlərin başlaması yadıma düşdü startap klubu, orada komandanın formalaşdırılmasını da müzakirə etdik. Testlərin siyahısını açdıqdan sonra əvvəlcə Javascript testinə oturdum. Ümumiyyətlə, tapşırıqlar az-çox adekvat idi (məsələn, konsola 1 + '1' əlavə etsəniz, nəticə necə olacaq). Amma öz təcrübəmə əsasən, bir işə və ya çox böyük rezervasiyaları olan bir komandaya işə qəbul edərkən belə testlərdən istifadə edərdim. Fakt budur ki, real işdə bir proqramçı kodu tez bir zamanda aradan qaldırmaq qabiliyyəti ilə nadir hallarda belə şeylərlə qarşılaşır - bu bilik heç bir şəkildə əlaqələndirilmir və siz müsahibələr üçün belə şeylər üçün çox asanlıqla məşq edə bilərsiniz (özümdən bilirəm). Ümumiyyətlə, testi olduqca tez keçdim, bəzi hallarda konsolda özümü yoxladım. Python testində tapşırıqlar təxminən eyni tipdə idi, mən də özümü konsolda sınadım və JS-dən daha çox bal toplamağım üçün təəccübləndim, baxmayaraq ki, heç vaxt Python-da peşəkar şəkildə proqramlaşdırmamışam. Daha sonra iştirakçılarla söhbətlərdə güclü proqramçıların testlərdə necə aşağı bal toplamışları, bəzi insanların CPU seçimindən keçmədikləri barədə məktublar alması, sonra isə onsuz da ona dəvət olunmaları barədə hekayələr eşitdim. Aydındır ki, bu testlərin yaradıcıları çox güman ki, bu barədə heç nə eşitməyiblər test nəzəriyyəsi, nə onların etibarlılığı və etibarlılığı haqqında, nə də onların necə sınaqdan keçiriləcəyi haqqında və testlərlə bağlı fikir, hətta hakatonun əsas məqsədini nəzərə almasaq belə, əvvəldən uğursuzluq olardı. Və hackin əsas məqsədi, sonradan öyrəndiyim kimi, Ginnes rekordu vurmaq idi və testlər buna zidd idi.

Testlərdən keçdikdən sonra bir anda mənə zəng etdilər, iştirak edib-etməyəcəyimi soruşdular, təfərrüatları aydınlaşdırdılar və komanda seçmək üçün söhbətə necə girməyimi söylədilər. Tezliklə çata daxil oldum və özüm haqqında qısaca yazdım. Çatda tam zibil gedirdi; deyəsən təşkilatçılar İT ilə heç bir əlaqəsi olmayan bir çox təsadüfi insanlara reklam verirdilər. Çoxsaylı məhsul menecerləri "Stiv Cobs səviyyəsində" (bir iştirakçının təqdimatından real ifadə) özləri haqqında hekayələr yerləşdirdilər və normal tərtibatçılar belə görünmürdü. Amma bəxtim gətirdi və tezliklə üç təcrübəli JS proqramçısına qoşuldum. Artıq hackathonda bir-birimizlə tanış olduq və sonra ilham və təşkilati məsələlərin həlli üçün komandaya bir qız əlavə etdik. Niyəsini xatırlamıram, amma “Kibertəhlükəsizlik Təlimi” mövzusunu götürüb “Elm və Təhsil 2” trekinə daxil etdik. İlk dəfə özümü 4 güclü proqramçıdan ibarət komandada tapdım və ilk dəfə belə bir tərkibdə qalib gəlməyin nə qədər asan olduğunu hiss etdim. Hazırlıqsız gəldik və nahara qədər mübahisə etdik və nə edəcəyimizə qərar verə bilmədik: mobil proqram, yoxsa internet. İstənilən başqa vəziyyətdə bunun uğursuzluq olduğunu düşünərdim. Bizim üçün ən vacib şey rəqiblərimizdən necə daha yaxşı olacağımızı anlamaq idi, çünki ətrafda testlər, kibertəhlükəsizlik oyunları və s. kəsən çoxlu komandalar var idi. Bu və googling təlim proqramlarına və tətbiqlərinə baxdıqdan sonra qərara gəldik ki, əsas fərqləndiricimiz yanğınsöndürmə təlimləri olacaqdır. Biz həyata keçirmək üçün maraqlı hesab etdiyimiz bir sıra funksiyaları seçdik (haker verilənlər bazalarına qarşı e-poçt və parol yoxlaması ilə qeydiyyat, fişinq e-poçtlarının göndərilməsi (tanınmış bankların məktubları şəklində), çatda sosial mühəndislik təlimi). Nə etdiyimizə qərar verərək və necə fərqlənə biləcəyimizi başa düşdükdən sonra tez bir zamanda tam hüquqlu bir veb tətbiqi yazdıq və mən qeyri-adi bir backend developer rolunu oynadım. Beləliklə, biz trasda inamla qalib gəldik və daha üç komandanın tərkibində Kazanda keçiriləcək finala vəsiqə qazandıq. Daha sonra Kazanda öyrəndim ki, finala seçimlər uydurmadır, orada seçimdən keçməyən komandaların çoxlu tanış simaları ilə rastlaşdım. Hətta 1-ci Kanalın jurnalistləri də bizə müsahibə verdilər. Lakin ondan reportajda bizim müraciətimiz cəmi 1 saniyə göstərilib.

Rəqəmsal sıçrayış - necə baş verdi
Qarlı komanda, burada rayon mərhələsinin qalibi oldum

Final (Kazan, 27-29 sentyabr 2019)

Ancaq sonra uğursuzluqlar başladı. Qarlı komandanın bütün proqramçıları təxminən bir ay ərzində bir-birinin ardınca Kazana finala gedə bilməyəcəklərini bildirdilər. Və mən yeni komanda tapmaq barədə düşündüm. Birincisi, Rus Hack Team-in ümumi söhbətində zəng etdim və orada kifayət qədər çox cavablar və komandalara qoşulmaq üçün dəvətlər alsam da, heç biri diqqətimi çəkmədi. Məhsul, mobil inkişaf etdirici, qu quşunu xatırladan front-end kimi balanssız komandalar var idi, xərçəngkimilər və nağıldakı pike. Texnologiya baxımından mənə uyğun olmayan komandalar da var idi (məsələn, Flutter-də mobil proqramın hazırlanması ilə). Nəhayət, zibil hesab etdiyim bir söhbətdə (regional mərhələ üçün komandaların seçildiyi eyni VKontakte), komanda üçün bir cəbhəçi axtarışı ilə bağlı bir reklam yerləşdirildi və mən sırf təsadüfi yazdım. Uşaqlar Skoltech-də aspirant olduqları ortaya çıxdı və dərhal görüşməyi və tanış olmağı təklif etdi. Çox xoşuma gəldi; bir hakatonda bir-birini dərhal tanımağa üstünlük verən komandalar adətən motivasiyalarının olmaması ilə məni həyəcanlandırırlar. Pyatnitskayadakı "Rake" də görüşdük. Uşaqlar ağıllı, motivasiyalı, özünə və qələbəyə inamlı görünürdülər və mən də elə orada qərar verdim. Finalda hansı treklərin və tapşırıqların olacağını hələ bilmirdik, lakin Maşın Öyrənməsi ilə əlaqəli bir şey seçəcəyimizi güman edirdik. Və mənim vəzifəm bu məsələ üçün bir admin yazmaq olacaq, ona görə də antd-admin əsasında bunun üçün əvvəlcədən şablon hazırladım.
Mən təşkilatçıların hesabına Kazana pulsuz getdim. Deyim ki, biletlərin alınması və ümumiyyətlə, finalın təşkili ilə bağlı artıq çatlarda və bloqlarda xeyli narazılıqlar ifadə olunub, hamısını təkrar danışmayacağam.

Kazan Expo-ya gəlib qeydiyyatdan keçib (nişan almaqda bir az çətinlik çəkdim) və səhər yeməyi yeyib trek seçməyə getdik. Biz ancaq 10 dəqiqəyə yaxın rəsmilərin çıxış etdiyi möhtəşəm açılışa getdik.Əslində artıq bizim üstünlük verdiyimiz treklər var idi, amma detallarla maraqlandıq. Məsələn, 18 nömrəli yolda (Rostelecom), qısa təsvirdə olmasa da, mobil proqram hazırlamaq lazım olduğu ortaya çıxdı. Biz 8 nömrəli boru kəmərlərinin defektoskopiyası, Qazprom Neft PJSC və 13 nömrəli perinatal mərkəzlər, Rusiya Federasiyası Hesablama Palatası arasında əsas seçimi etdik. Hər iki halda Data Science lazım idi və hər iki halda internet əlavə edilə bilərdi. 13 nömrəli trekdə, oradakı Data Science tapşırığının kifayət qədər zəif olması, Rosstat-ı təhlil etmək lazım olduğu və idarəetmə panelinə ehtiyac olub-olmadığı aydın deyildi. Və tapşırığın dəyəri şübhə altında idi. Sonda qərara gəldik ki, komanda olaraq 8-i izləmək üçün daha uyğun olduq, xüsusən də uşaqlar oxşar problemlərin həllində artıq təcrübəyə malik olduqları üçün. Tətbiqimizin son istifadəçi tərəfindən istifadə olunacağı ssenarini düşünməyə başladıq. Məlum oldu ki, bizim iki növ istifadəçimiz olacaq: texniki məlumatlarla maraqlanan texnoloqlar və maliyyə göstəricilərinə ehtiyacı olan menecerlər. Ssenari haqqında bir fikir ortaya çıxanda, ön tərəfdə nə edəcəyi, dizaynerin nə çəkməli olduğu və arxa tərəfdə hansı üsullara ehtiyac olduğu aydın oldu, tapşırıqları paylamaq mümkün oldu. Komandada vəzifələr aşağıdakı kimi bölüşdürülüb: iki nəfər texniki ekspertlərdən alınan məlumatlarla ML-ni həll etdi, bir nəfər Python-da backend yazdı, mən React və Antd-də frontend yazdım, dizayner interfeysləri çəkdi. Hətta oturmuşduq ki, problemlərimizi həll edərkən ünsiyyətimiz daha rahat olsun.

İlk gün demək olar ki, hiss olunmadan keçdi. Texniki ekspertlərlə ünsiyyətdə məlum oldu ki, onlar (Qazprom Neft) bu problemi artıq həll ediblər, sadəcə olaraq, bunun daha yaxşı həll oluna biləcəyi ilə maraqlanırlar. Deməyəcəyəm ki, bu, mənim motivasiyamı azaltdı, amma bir qalıq buraxdı. Mən təəccübləndim ki, gecələr bölmə moderatorları işçi qrupları qeyd edirdilər (statistika üçün dedikləri kimi); bu adətən hakatonlarda tətbiq edilmir. Səhərə qədər ön tərəfin prototipi, arxa hissənin bəzi elementləri və ilk ML həlli hazır idi. Ümumiyyətlə, mütəxəssislərə göstərmək üçün artıq bir şey var idi. Şənbə günü günortadan sonra dizayner açıq şəkildə kodlaşdırmağa vaxtımdan daha çox interfeys çəkdi və təqdimat yaratmağa keçdi. Qeydiyyatın qeydiyyatı üçün şənbə ayrıldı və səhər saatlarında zalda işləyən hər kəs dəhlizə qovuldu, sonra zaldan giriş-çıxış nişanlardan istifadə edilərək həyata keçirildi və daha çox tərk etmək mümkün oldu. gündə bir saatdan çox. Deməyəcəyəm ki, bu, bizə ciddi narahatlıq yaratdı; günün çox hissəsini hələ də oturub işləyirdik. Yemək, həqiqətən, çox cüzi idi, nahar üçün bir stəkan bulyon, bir pasta və alma aldıq, amma yenə də bu bizi çox narahat etmədi, diqqətimizi başqa bir şeyə yönəltdik.

Onlar vaxtaşırı hər əlinə iki qutu qırmızı öküz verirdilər ki, bu da çox faydalı oldu. Uzun müddət hakatonlarda sınaqdan keçirilmiş enerji içkisi + kofe resepti stəkan kimi şən olmaqla bütün gecəni və ertəsi günü kodlamağa imkan verdi. İkinci gün biz, əslində, sadəcə olaraq tətbiqə yeni funksiyalar əlavə etdik, maliyyə göstəricilərini hesabladıq və magistral yollardakı qüsurların statistikası ilə bağlı qrafikləri göstərməyə başladıq. Trekimizdə belə bir kod nəzərdən keçirilmədi; ekspertlər problemin həllini proqnozun düzgünlüyünə əsaslanaraq kaggle.com üslubunda qiymətləndirdilər və ön hissə vizual olaraq qiymətləndirildi. ML həllimiz ən dəqiq oldu, bəlkə də bu, bizə lider olmağa imkan verdi. Şənbədən bazara keçən gecə səhər saat 2-yə qədər işləyirdik, sonra isə baza kimi istifadə etdiyimiz mənzildə yatmağa getdik. Biz təxminən 5 saat yatdıq, bazar günü səhər saat 9-da artıq Kazan Expo-da idik. Tələsik nəsə hazırladım, amma vaxtın çox hissəsini müdafiə öncəsi hazırlamağa sərf etdim. Əvvəlcədən müdafiə 2 axınla, iki mütəxəssis komandasının qarşısında baş tutdu; hər iki ekspert qrupu bizi dinləmək istədiyi üçün bizdən sonuncu çıxış etməyimizi istədi. Biz bunu yaxşı əlamət kimi qəbul etdik. Tətbiq laptopumdan, işləyən bir dev serverdən göstərildi; tətbiqi düzgün yerləşdirməyə vaxtımız yox idi, lakin hamı eyni etdi.

Ümumiyyətlə, hər şey yaxşı getdi, bizə müraciətimizi təkmilləşdirə biləcəyimiz məqamlar göstərildi və müdafiədən əvvəlki dövrdə biz hətta bu şərhlərdən bəzilərini həyata keçirməyə çalışdıq. Müdafiə də təəccüblü şəkildə rəvan keçdi. Qabaqcıl müdafiənin nəticələrinə əsasən bilirdik ki, xal baxımından öndəyik, həllin dəqiqliyinə görə öndəyik, yaxşı cəbhə, yaxşı dizayn və ümumiyyətlə, yaxşı idik. hisslər. Digər əlverişli əlamət o idi ki, bizim bölmədən olan moderator qız konsert zalına girməzdən əvvəl bizimlə selfi çəkdirdi və sonra onun nəsə bildiyindən şübhələndim))). Amma müdafiədən sonra xallarımızı bilmədik, ona görə də komandamızın səhnədən açıqlanmasına qədər vaxt bir az gərgin keçdi. Səhnədə 500000 rubl yazısı olan bir karton verdilər və hər birinə kupa və mobil telefonun batareyası olan çanta verildi. Qələbədən həzz ala bilmədik və onu layiqincə qeyd edə bilmədik, tez nahar edib qatara taksi ilə getdik.

Rəqəmsal sıçrayış - necə baş verdi
WAICO komandası finalda qalib gəlir

Moskvaya qayıdandan sonra NTV-nin jurnalistləri bizdən müsahibə aldılar. Polyankada “Kvartal 44” kafesinin 10-ci mərtəbəsində tam bir saat çəkiliş apardıq, amma xəbərlər cəmi XNUMX saniyə göstərdi.Axı regional mərhələ ilə müqayisədə güclü irəliləyiş.

Digital Breakthrough ilə bağlı ümumi təəssüratları ümumiləşdirsək, bunlar aşağıdakılardır. Tədbirə çoxlu pul xərcləndi, mən indiyədək belə miqyaslı hakaton görməmişdim. Amma deyə bilmərəm ki, bu, haqlıdır və həqiqətən də öz bəhrəsini verəcək. Kazana gələn iştirakçıların əhəmiyyətli bir hissəsi sadəcə olaraq öz əlləri ilə heç nə etməyi bilməyən, rekord vurmağa məcbur olan qonaqlar idi. Finalda rəqabətin regional mərhələdən yüksək olduğunu deyə bilmərəm. Həmçinin, bəzi treklərin tapşırıqlarının dəyəri və faydalılığı sual altındadır. Bəzi problemlər sənaye səviyyəsində çoxdan həll olunub. Sonradan məlum oldu ki, trekləri aparan bəzi təşkilatlar onların həllində maraqlı olmayıblar. Və bu hekayə hələ bitməyib, hər trekdən qabaqcıl sürətləndirici komandalar seçilib və onların BREAKTHROUGH startapları olacağı güman edilir. Amma hələ bu haqda yazmağa hazır deyiləm, görək bundan nə çıxacaq.

Mənbə: www.habr.com

Добавить комментарий