Дижитал нээлт - энэ нь хэрхэн болсон

Энэ бол миний түрүүлсэн анхны хакатон ч биш бичих, мөн энэ нь "Дижитал нээлт"-д зориулсан Habré дээрх анхны нийтлэл биш юм. Гэхдээ би бичихгүй байж чадсангүй. Би өөрийн туршлагаа хуваалцахад хангалттай өвөрмөц гэж үздэг. Энэ хакатон тэмцээнд өөр өөр багуудын бүрэлдэхүүнд багтаж бүсийн шат болон финалд түрүүлсэн цорын ганц хүн нь би байх. Энэ яаж болсныг мэдмээр байна уу? Муурт тавтай морил.

Бүс нутгийн үе шат (Москва, 27 оны 28-р сарын 2019-XNUMX).

Би энэ оны 16-XNUMX-р сард хаа нэгтээ "Дижитал нээлт"-ийн сурталчилгааг анх харсан. Мэдээжийн хэрэг, би ийм том хакатоныг өнгөрөөж чадаагүй бөгөөд вэбсайтад бүртгүүлсэн. Тэнд тэмцээний нөхцөл, хөтөлбөртэй танилцсан. Хакатонд оролцохын тулд XNUMX-р сарын XNUMX-нд эхэлсэн онлайн шалгалтыг өгөх шаардлагатай болсон. Туршилтын эхлэлийг сануулсан захидал ирээгүй тул би үүнийг амархан мартсан байх. Ирээдүйд CPU-ээс надад ирсэн БҮХ ЗАХИДАЛ спам хавтсанд байнга хийгдэж байсныг би хэлэх ёстой. Хэдийгээр би "эсэргүүцэхгүй" гэсэн товчлуур дээр дардаг байсан ч гэсэн. Тэд яаж ийм үр дүнд хүрч чадсаныг би мэдэхгүй, MailGun дээр шуудангаар илгээх нь надад тус болсонгүй. Залуус isnotspam.com гэх мэт үйлчилгээний талаар огт мэдэхгүй байх шиг байна. Гэхдээ бид ухардаг.

Нэг хурал дээр шалгалт эхэлснийг сануулсан гарааны клуб, тэнд бид мөн багийг бүрдүүлэх талаар ярилцсан. Тестийн жагсаалтыг нээгээд би эхлээд Javascript тест рүү суув. Ерөнхийдөө даалгаврууд нь бага эсвэл хангалттай байсан (хэрэв та консол дээр 1 + '1' нэмбэл үр дүн нь ямар байх вэ гэх мэт). Гэхдээ миний туршлагаас харахад би маш том захиалгатай ажил эсвэл багт элсүүлэхдээ ийм тестийг ашигладаг. Бодит ажил дээр программист кодыг хурдан дибаг хийх чадвартай тул ийм зүйл ховор тохиолддог - энэ мэдлэг нь ямар ч хамааралгүй бөгөөд та ярилцлагад амархан сургаж чадна (би өөрөө мэдэж байна). Ерөнхийдөө би тестийг маш хурдан дарж, зарим тохиолдолд консол дээр өөрийгөө шалгасан. Python тестийн даалгаврууд нь ойролцоогоор ижил төрлийн байсан, би мөн өөрийгөө консол дээр туршиж үзсэн бөгөөд Python дээр мэргэжлийн түвшинд программчилж үзээгүй ч JS-ээс илүү оноо авсандаа гайхсан. Сүүлд нь оролцогчидтой ярилцахдаа хүчирхэг программистууд шалгалтандаа бага оноо авсан, зарим хүмүүс CPU-ийн сонгон шалгаруулалтад тэнцээгүй гэсэн захидал хүлээн авч, ямар ч байсан урилга авсан тухай түүхийг сонссон. Эдгээр туршилтыг бүтээгчид энэ талаар юу ч сонсоогүй байх нь ойлгомжтой туршилтын онол, тэдгээрийн найдвартай байдал, хүчинтэй байдлын талаар ч, тэдгээрийг хэрхэн турших талаар ч, тесттэй санаа нь хакатоны гол зорилгыг анхаарч үзээгүй байсан ч эхнээсээ бүтэлгүйтэх байсан. Мөн хакердсан гол зорилго нь Гиннесийн дээд амжилт тогтоох явдал байсан бөгөөд туршилтууд үүнтэй зөрчилдөж байсан.

Шалгалтанд тэнцсэний дараа тэд над руу залгаж, оролцох эсэхийг асууж, дэлгэрэнгүй мэдээллийг тодруулж, баг сонгох чат руу хэрхэн орохыг хэлсэн. Удалгүй би чат руу ороод өөрийнхөө тухай товчхон бичлээ. Чат дээр хог хаягдал эргэлдэж байсан бөгөөд зохион байгуулагчид IT-тэй ямар ч холбоогүй олон санамсаргүй хүмүүст сурталчилгаа хийж байх шиг байна. "Стив Жобсын түвшинд" олон тооны бүтээгдэхүүний менежерүүд (нэг оролцогчийн мэдүүлгээс авсан бодит хэллэг) өөрсдийнхөө тухай түүхийг нийтэлсэн бөгөөд энгийн хөгжүүлэгчид ч харагдахгүй байв. Гэхдээ би аз таарч удалгүй гурван туршлагатай JS програмисттай нэгдсэн. Бид хакатон дээр бие биетэйгээ танилцаж, урам зориг өгөх, зохион байгуулалтын асуудлыг шийдэхийн тулд багт нэг охин нэмсэн. Яагаад гэдгийг санахгүй байна, гэхдээ бид "Цахим аюулгүй байдлын сургалт" сэдвийг авч, "Шинжлэх ухаан, боловсрол 2" замд оруулсан. Би анх удаа 4 хүчирхэг программист багтсан ба ийм бүрэлдэхүүнд ялах нь ямар амархан болохыг анх удаа мэдэрсэн. Бид бэлтгэлгүй ирж, үдийн цай хүртэл маргалдаад юу хийхээ шийдэж чадсангүй: гар утасны програм уу, вэб програм уу. Өөр ямар ч тохиолдолд би үүнийг бүтэлгүйтсэн гэж бодох байсан. Бидний хувьд хамгийн чухал зүйл бол бид өрсөлдөгчдөөсөө хэрхэн илүү байхаа ойлгох явдал байсан, учир нь эргэн тойронд тест, кибер аюулгүй байдлын тоглоом гэх мэт олон багууд байсан. Энэ болон Google-ийн сургалтын хөтөлбөр, програмуудыг үзээд бид гол ялгах зүйл бол галын дасгал сургуулилт байхаар шийдсэн. Бид хэрэгжүүлэхэд сонирхолтой хэд хэдэн функцийг сонгосон (хакеруудын мэдээллийн сангаас цахим шуудан, нууц үг баталгаажуулах, фишинг имэйл илгээх (алдартай банкуудын захидал хэлбэрээр), чат дахь нийгмийн инженерийн сургалт). Бид юу хийж байгаагаа шийдэж, хэрхэн бусдаас ялгарахаа ойлгосны дараа бүрэн хэмжээний вэб программыг хурдан бичсэн бөгөөд би арын программ хөгжүүлэгчийн ер бусын дүрд тоглосон. Ийнхүү бид замаа итгэлтэйгээр ялж, өөр гурван багийн бүрэлдэхүүнд Казань хотод болох финалд өрсөлдөх эрхээ авлаа. Хожим нь Казань хотод финалд оролцох сонгон шалгаруулалт нь зохиомол зүйл байсныг би мэдэж, сонгон шалгаруулалтад тэнцээгүй багуудын олон танил царайтай танилцсан. 1-р сувгийн сэтгүүлчид хүртэл биднээс ярилцлага авсан. Гэсэн хэдий ч үүнээс гарсан тайланд бидний програмыг ердөө 1 секунд харуулсан.

Дижитал нээлт - энэ нь хэрхэн болсон
Бүсийн шатанд шалгарсан цастай баг

Финал (Казань, 27 оны 29-р сарын 2019-XNUMX)

Гэвч дараа нь бүтэлгүйтэлүүд эхэлсэн. Цастай багийн бүх програмистууд нэг сар орчмын дотор ээлж дараалан Казань руу финалд оролцох боломжгүй гэж мэдэгдэв. Тэгээд шинэ баг олох талаар бодсон. Эхлээд би Оросын Hack Team-ийн ерөнхий чат руу залгасан бөгөөд тэндээс маш олон хариулт, багт элсэх урилга хүлээн авсан ч тэдний хэн нь ч миний анхаарлыг татсангүй. Үлгэрт гардаг хун, хавч, цурхайг санагдуулам бүтээгдэхүүн, гар утасны хөгжүүлэгч, урд талын хэсэг гэх мэт тэнцвэргүй багууд байсан. Технологийн хувьд надад тохиромжгүй багууд бас байсан (жишээлбэл, Flutter дээр гар утасны програм хөгжүүлсэн). Эцэст нь хэлэхэд, би хогийн гэж үзсэн чат дээр (бүс нутгийн шатанд оролцох багуудын сонгон шалгаруулалт явагдсан ижил ВКонтакте) багийг хайж олох тухай зар сурталчилгаа байрлуулсан бөгөөд би санамсаргүй байдлаар бичсэн. Залуус Сколтекийн төгсөх ангийн оюутнууд болж, тэр даруй уулзаж, танилцахыг санал болгов. Энэ нь надад таалагдсан; хакатон дээр бие биенээ шууд таньж мэдэхийг илүүд үздэг багууд ихэвчлэн урам зориггүй байдаг гэж намайг түгшээдэг. Бид Пятницкая дахь "Рэйк" дээр уулзсан. Залуус ухаалаг, урам зоригтой, өөртөө болон ялалтандаа итгэлтэй байсан тул би шийдвэрээ яг тэндээс гаргасан. Бид эцсийн шатанд ямар зам, даалгаврууд орохыг хараахан мэдэхгүй байсан ч бид Machine Learning-тэй холбоотой ямар нэг зүйлийг сонгоно гэж таамагласан. Миний даалгавар бол энэ асуудалд админ бичих тул би antd-admin дээр үндэслэн энэ загвараа урьдчилан бэлдсэн.
Би зохион байгуулагчдын зардлаар Казань руу үнэ төлбөргүй явсан. Тасалбар худалдаж авах, ерөнхийдөө финалын зохион байгуулалттай холбоотой маш их дургүйцэл чат, блогт аль хэдийн илэрхийлэгдсэн гэдгийг би хэлэх ёстой, би бүгдийг дахин ярихгүй.

Казань экспод ирээд бүртгүүлээд (тэмдгээ авахад бага зэрэг асуудалтай байсан) өглөөний цайгаа уугаад зам сонгохоор явлаа. Албаны хүмүүсийн үг хэлсэн нээлтийн ёслолд бид 10 орчим минут л очсон.Ер нь бид аль хэдийн сонгосон замтай байсан ч нарийн ширийн зүйлийг сонирхсон. Жишээлбэл, 18-р замд (Ростелеком) гар утасны програмыг хөгжүүлэх шаардлагатай байсан ч энэ нь товч тайлбарт байхгүй байсан. Бид шугам хоолойн дефектоскопи 8-р зам, Газпром Нефть ХК болон ОХУ-ын Нягтлан бодох бүртгэлийн танхимын 13-р перинаталь төвүүдийн хооронд гол сонголт хийсэн. Аль ч тохиолдолд Data Science хэрэгтэй байсан бөгөөд хоёр тохиолдолд вэбийг нэмж оруулах боломжтой байсан. 13-р замд тэнд байгаа Data Science даалгавар нэлээд сул, Росстатыг задлан шинжлэх шаардлагатай байсан бөгөөд админ самбар шаардлагатай эсэх нь тодорхойгүй байсан тул биднийг зогсоосон. Мөн даалгаврын үнэ цэнэ нь эргэлзээтэй байсан. Эцэст нь бид багаараа 8-ыг хянахад илүү тохиромжтой гэж шийдсэн, ялангуяа залуус ижил төстэй асуудлыг шийдвэрлэх туршлагатай байсан. Бид програмыг эцсийн хэрэглэгч ашиглах хувилбарыг бодож эхэлсэн. Техникийн мэдээлэл сонирхдог техникч, санхүүгийн үзүүлэлт хэрэгтэй менежер гэсэн хоёр төрлийн хэрэглэгчтэй болох нь тодорхой болсон. Сценарины талаархи санаа гарч ирэхэд урд талдаа юу хийх, дизайнер юу зурах, арын хэсэгт ямар аргууд хэрэгтэй болох нь тодорхой болсон тул даалгавруудыг хуваарилах боломжтой болсон. Багийн үүрэг хариуцлагыг дараах байдлаар хуваарилсан: техникийн мэргэжилтнүүдээс авсан мэдээллээр хоёр хүн ML-ийг шийдэж, нэг хүн Python дээр backend бичиж, би React болон Antd дээр урд төгсгөлийг бичсэн, дизайнер нь интерфейсийг зурсан. Бүр асуудлаа шийдэхийн хажуугаар харилцахад илүү тохиромжтой байхаар суулаа.

Эхний өдөр бараг анзаарагдахгүй өнгөрөв. Техникийн мэргэжилтнүүдтэй харилцахдаа тэд (Газпром Нефть) энэ асуудлыг аль хэдийн шийдсэн байсан бөгөөд тэд үүнийг илүү сайн шийдэж чадах уу гэж гайхаж байсан. Энэ нь миний урам зоригийг бууруулсан гэж би хэлэхгүй, гэхдээ энэ нь үлдэгдэл үлдээсэн. Шөнийн цагаар хэсгийн модераторууд ажлын багийг тэмдэглэж байгаад гайхсан (тэд статистикийн хувьд хэлсэнчлэн); үүнийг хакатон дээр ихэвчлэн хийдэггүй. Өглөө гэхэд бид урд талын загвар, арын хэсэг, анхны ML шийдэл бэлэн болсон. Ерөнхийдөө мэргэжилтнүүдэд үзүүлэх зүйл аль хэдийн байсан. Бямба гарагийн үдээс хойш дизайнер миний кодлох цаг хугацаанаас илүү олон интерфейс зурж, танилцуулга хийх болсон. Бямба гаригийг тэмдэглэлийн бүртгэлд зориулж, өглөө нь танхимд ажиллаж байсан бүх хүмүүсийг коридор руу хөөж, дараа нь энгэрийн тэмдэг ашиглан заалнаас орох, гарахыг хийж, дахин гарах боломжгүй болсон. өдөрт нэг цагаас илүү. Энэ нь бидэнд ихээхэн төвөг учруулсан гэж би хэлэхгүй, бид өдрийн ихэнх хугацаанд сууж, ажилласан хэвээр байна. Хоол үнэхээр дутуу байсан; үдийн хоолонд бид нэг аяга шөл, бялуу, алим авсан боловч энэ нь биднийг нэг их бухимдуулсангүй, бид өөр зүйлд анхаарлаа хандуулав.

Тэд үе үе улаан бух, гартаа хоёр лааз өгдөг байсан нь маш их тус болсон. Хакатон дээр удаан туршсан энергийн ундаа + кофены жор нь надад шөнө, маргааш нь шил шиг хөгжилтэй байж кодлох боломжийг олгосон. Хоёр дахь өдөр нь бид зүгээр л програмд ​​​​шинэ боломжуудыг нэмж, санхүүгийн үзүүлэлтүүдийг тооцоолж, хурдны замын согогийн статистикийн графикуудыг үзүүлж эхлэв. Манай замд ийм кодын шалгалт байгаагүй; шинжээчид таамаглалын үнэн зөв байдалд үндэслэн kaggle.com хэв маягаар асуудлын шийдлийг үнэлж, урд талын хэсгийг нүдээр үнэлэв. Бидний ML шийдэл хамгийн үнэн зөв нь болсон, магадгүй энэ нь биднийг удирдагч болох боломжийг олгосон юм. Бямба гарагаас ням гаригт шилжих шөнө бид шөнийн 2 цаг хүртэл ажиллаж, дараа нь суурь болгон ашиглаж байсан байрандаа унтлаа. Бид 5 цаг орчим унтсан, ням гаригийн өглөөний 9 цагт бид аль хэдийн Казань Экспод ирсэн. Би яаран юм бэлдсэн ч ихэнх цагаа урьдчилан хамгаалах бэлтгэлд зарцуулсан. Урьдчилсан хамгаалалт 2 урсгалаар, хоёр шинжээчдийн багийн өмнө явагдсан; шинжээчдийн хоёр баг биднийг сонсохыг хүссэн тул бид хамгийн сүүлд үг хэлэхийг хүссэн. Үүнийг бид сайны дохио гэж хүлээж авсан. Програмыг миний зөөврийн компьютероос, ажиллаж байгаа dev серверээс харуулсан; бидэнд уг програмыг зөв байрлуулах цаг байсангүй, гэхдээ бүгд адилхан хийсэн.

Ерөнхийдөө бүх зүйл сайхан болж, бид өргөдлөө сайжруулах боломжтой зүйлүүдийг зааж өгсөн бөгөөд өмгөөллийн өмнөх үед бид эдгээр тайлбаруудын заримыг хэрэгжүүлэхийг оролдсон. Хамгаалалт ч гайхалтай жигд явлаа. Урьдчилсан хамгаалалтын үр дүнд үндэслэн бид онооны хувьд тэргүүлж, шийдлийн нарийвчлалаараа тэргүүлж, урд тал нь сайн, дизайн сайтай, ерөнхийдөө сайн байсан гэдгээ мэдэж байсан. мэдрэмж. Өөр нэг таатай шинж тэмдэг бол манай хэсгийн модератор охин концертын танхимд орохоосоо өмнө бидэнтэй хамт сельфи хийсэн бөгөөд дараа нь би түүнийг ямар нэг зүйл мэддэг байх гэж сэжиглэж байсан))). Гэхдээ бид хамгаалалтын дараа оноогоо мэдэхгүй байсан тул манай багийг дэвжээнээс зарлах хүртэл хугацаа бага зэрэг ширүүн өнгөрөв. Тайзан дээр тэд 500000 рубль гэсэн бичээс бүхий картон цаас гардуулж, хүн бүрт аяга, гар утасны зай бүхий цүнх бэлэглэжээ. Бид ялалтаа баярлуулж, зохих ёсоор тэмдэглэж чадсангүй, бид оройн хоолоо идээд галт тэрэг рүү таксинд суув.

Дижитал нээлт - энэ нь хэрхэн болсон
WAICO баг финалд шалгарлаа

Москвад буцаж ирээд NTV-ийн сэтгүүлчид бидэнтэй ярилцлага хийсэн. Полянка дахь "Квартал 44" кафены хоёрдугаар давхарт бид бүтэн цагийн турш зураг авалт хийсэн боловч мэдээ нь ердөө 10 секунд л харуулсан. Эцсийн эцэст бүс нутгийн үе шаттай харьцуулахад хүчтэй ахиц дэвшил гарсан.

Хэрэв бид Digital Breakthrough-ийн ерөнхий сэтгэгдлийг нэгтгэн дүгнэвэл дараах байдалтай байна. Энэ арга хэмжээнд маш их мөнгө зарцуулсан, би ийм хэмжээний хакатонуудыг урьд өмнө хэзээ ч харж байгаагүй. Гэхдээ энэ нь үндэслэлтэй бөгөөд үнэхээр үр өгөөжөө өгнө гэж би хэлж чадахгүй. Казань хотод ирсэн оролцогчдын нэлээд хэсэг нь зүгээр л өөрийн гараар юу ч хийхээ мэддэггүй, дээд амжилт тогтоохоос өөр аргагүйд хүрсэн үдэшлэгт оролцогчид байв. Шигшээ тоглолт бүсийн шатнаас өндөр байсан гэж би хэлж чадахгүй. Мөн зарим замуудын даалгаврын үнэ цэнэ, ашиг тус нь эргэлзээтэй байдаг. Зарим асуудал аж үйлдвэрийн түвшинд шийдэгдээд удаж байна. Хожим нь тодорхой болсон тул замуудыг явуулсан зарим байгууллага үүнийг шийдвэрлэх сонирхолгүй байсан. Мөн энэ түүх хараахан дуусаагүй байгаа тул зам бүрээс тэргүүлэгч багууд урьдчилсан хурдасгуурт сонгогдсон бөгөөд тэд BREAKTHROUGH стартапууд болж хувирна гэж таамаглаж байна. Гэхдээ би энэ талаар бичихэд хараахан бэлэн биш байна, үүнээс юу гарахыг бид харах болно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх