Urban Tech Challenge хакатонунда Big Data трегин кантип жана эмне үчүн утуп алдык

Менин атым Дмитрий. Ал эми мен биздин команда Big Data трассасында Urban Tech Challenge хакатонунун финалына кантип жеткени тууралуу айткым келет. Дароо эле айта кетейин, бул мен катышкан биринчи хакатон эмес жана байге алган биринчи хакатон эмес. Ушуга байланыштуу, мен өзүмдүн окуямда жалпы эле хакатон индустриясына байланыштуу кээ бир жалпы байкоолорду жана корутундуларды айткым келет жана Urban Tech Challenge (үчүн) аяктагандан кийин дароо интернетте пайда болгон терс сын-пикирлерге каршы өз көз карашымды айткым келет. мисал бул).

Ошентип, адегенде кээ бир жалпы байкоолор.

1. Кээ бир адамдар хакатонду эң мыкты кодерлер утуп алган спорттук мелдештин түрү деп ойлошу таң калыштуу. Бул андай эмес. Мен хакатондун уюштуруучулары эмнени каалаарын билбей калган учурларды эсептебейм (мен да көрдүм). Бирок, эреже катары, хакатонду уюштурган компания өзүнүн максаттарын көздөйт. Алардын тизмеси ар кандай болушу мүмкүн: кээ бир көйгөйлөрдү техникалык чечүү, жаңы идеяларды жана адамдарды издөө ж.б. Бул максаттар көбүнчө иш-чаранын форматын, анын убактысын, онлайн/офлайн режимин, тапшырмалар кантип түзүлөөрүн (жана алар дегеле түзүлөбү), хакатондо кодду карап чыгуу болобу ж.б.у.с. аныктайт. Командаларга да, алардын жасаган иштерине да ушул өңүттөн баа берилет. Ал эми компанияга керектүү чекке эң жакшы жеткен командалар жеңишке жетишет жана көпчүлүгү бул деңгээлге толугу менен аң-сезимсиз жана кокустан келип, чындап эле спорттук мелдешке катышып жатабыз деп ойлошот. Менин байкоолорум көрсөткөндөй, катышуучуларды мотивациялоо үчүн уюштуруучулар жок дегенде спорттук чөйрөнүн сырткы көрүнүшүн жана бирдей шарттарды түзүп бериши керек, антпесе жогорудагы кароодогудай терс маанайдын толкунун алышат. Бирок биз чегинебиз.

2. Мына ушундан төмөнкүдөй жыйынтык чыгат. Уюштуруучулар хакатонго катышуучулардын өз иштери менен келишине кызыгышат, кээде бул үчүн атайын онлайн кат алышуу этабын да уюштурушат. Бул күчтүү чыгаруу чечимдерди берет. "Өз иши" түшүнүгү өтө салыштырмалуу түшүнүк; ар бир тажрыйбалуу иштеп чыгуучу өзүнүн биринчи тапшырмасында өзүнүн эски долбоорлорунан миңдеген код саптарын топтой алат. Анан бул алдын ала даярдалган өнүгүү болобу? Бирок, кандай болгон күндө да, мен белгилүү мем түрүндө билдирген эреже колдонулат:

Urban Tech Challenge хакатонунда Big Data трегин кантип жана эмне үчүн утуп алдык

Жеңиш үчүн сизде кандайдыр бир атаандаштык артыкчылык болушу керек: буга чейин жасаган окшош долбоор, белгилүү бир темада билим жана тажрыйба же хакатон башталганга чейин жасалган даяр иш. Ооба, бул спорт эмес. Ооба, бул сарпталган күч-аракеттин кереги жок болушу мүмкүн (бул жерде 3 миң байге үчүн түнү 100 жума коддоо керекпи же жокпу, ар бир адам өзү чечет, бүт командага бөлүнгөн, ал тургай аны албай калуу коркунучу менен). Бирок, көп учурда, бул алдыга жетүү үчүн жалгыз мүмкүнчүлүк.

3. Команданы тандоо. Мен хакатон чаттарында байкаганымдай, көптөр бул маселеге жеңил-желпи мамиле кылышат (бирок бул хакатондогу натыйжаңызды аныктай турган эң маанилүү чечим). Көптөгөн ишмердүүлүк тармактарында (спортто да, хакатондо да) күчтүү адамдар күчтүү менен, алсыздар алсыз менен, акылдуулар менен акылдуулар биригүүгө жакын экенине күбө болдум, жакшы, жалпысынан сиз идеяны түшүнөсүз... Чаттарда бул болжол менен ушундай болот: анча күчтүү программисттер алар дароо чабылып кетишет, хакатон үчүн баалуу жөндөмү жок адамдар чатта көпкө илинип, команданы кимдир бирөө алса эле деген принцип менен тандашат. . Кээ бир хакатондордо командаларга туш келди дайындоо практикаланат жана уюштуруучулар кокустук командалар учурдагылардан жаман эмес деп ырасташат. Бирок менин байкоом боюнча, мотивациялуу адамдар, эреже катары, команданы өз алдынча табышат, эгер кимдир бирөө дайындалышы керек болсо, анда көбүнчө алардын көбү хакатонго келбейт.

Команданын курамына келсек, бул абдан жеке жана тапшырмага абдан көз каранды. Мен минималдуу жашоого жөндөмдүү команданын курамын дизайнер деп айта алам - алдыңкы же алдыңкы - арткы. Бирок мен ошондой эле алдыңкы оюнчулардан турган командалар жеңишке жеткен учурларды билем, алар node.js ичинде жөнөкөй бэк-эндикти кошкон же React Nativeде мобилдик тиркеме жасаган; же жөнөкөй макет жасаган колдоочулардан гана. Жалпысынан алганда, баары абдан жеке жана милдеттен көз каранды. Менин хакатонго команда тандоо планым төмөнкүчө болчу: Мен команда чогултууну же front-end - back-end - дизайнер сыяктуу командага кошулууну пландаштыргам (мен өзүм фронт-эндмин). Анан мен бат эле питон бэкендери жана бизге кошулууга чакырууну кабыл алган дизайнер менен баарлаша баштадым. Бир аздан кийин хакатондо утуп алган бизнес-аналитик кыз бизге кошулду, ошону менен анын бизге кошулуу маселеси чечилди. Кыска жолугушуудан кийин, биз фантастикалык төрттүктүн аналогиясы боюнча өзүбүздү U4 (URBAN 4, шаардык төрт) деп атоону чечтик. Жада калса телеграм каналыбыздын аватарына да тиешелүү сүрөттү коюшту.

4. Тапшырма тандоо. Мен буга чейин айткандай, сиз атаандаштык артыкчылыкка ээ болушуңуз керек, хакатон үчүн тапшырма ошонун негизинде тандалат. Ошонун негизинде карап чыктык тапшырмалар тизмеси жана алардын татаалдыгына баа берип, биз эки маселени чечтик: DPiIR инновациялык ишканаларынын каталогу жана EFKOнун чатботу. DPIiR тапшырмасын колдоочу тандады, EFKO тапшырмасын мен тандадым, анткени node.js жана DialogFlow ичинде чатботторду жазуу тажрыйбасы бар. EFKO тапшырмасы ML да камтылган; Менде ML боюнча анча чоң эмес тажрыйбам бар. Ал эми маселенин шарттарына ылайык, аны ML инструменттерин колдонуу менен чечүү мүмкүн эместей сезилди. Бул сезим мен Urban Tech Challenge жолугушуусуна барганда күч алды, ал жерде уюштуруучулар мага EFKO боюнча маалымат топтомун көрсөтүштү, анда өнүмдөрдүн макеттеринин 100гө жакын сүрөттөрү (ар кандай бурчтан алынган) жана 20га жакын макет каталары бар. Ошол эле учурда, тапшырманы тапшыргандар классификациянын ийгилиги 90% га жетүүнү каалашкан. Натыйжада, мен MLсиз чечимдин презентациясын даярдадым, бэйдер каталогдун негизинде презентация даярдап, презентацияларды жыйынтыктагандан кийин, биз аларды Urban Tech Challengeге жөнөттүк. Азыртадан эле бул этапта ар бир катышуучунун мотивациясынын деңгээли жана салымы аныкталган. Дизайнерибиз талкууларга катышпай, кечигип жооп берип, жада калса акыркы учурда өзү тууралуу маалыматтарды да презентацияда толтурду, жалпысынан күмөн саноолор пайда болду.

Жыйынтыгында биз DPiIR тапшырмасын тапшырып, ЭФКОдон өтпөй калганыбызга такыр капа болгон жокпуз, анткени тапшырма бизге, жумшак айтканда, кызыктай көрүндү.

5. Хакатонго даярдануу. Акыры хакатонго жолдомо алганыбыз белгилүү болгондон кийин даярдыкты баштадык. Бул жерде мен хакатондун башталышына бир жума калганда код жаза баштоону жактабайм. Жок дегенде, сизде казан даяр болушу керек, анын жардамы менен сиз дароо иштей баштай аласыз, инструменттерди конфигурациялоонун кажети жок жана хакатондо биринчи жолу сынап көрүүнү чечкен кээ бир libтин мүчүлүштүктөрүнө учурабайсыз. Мен хакатонго келген бурчтук инженерлер тууралуу окуяны билем, алар долбоорду курууга 2 күн жумшашкан, ошондуктан бардыгын алдын ала даярдаш керек. Биз жоопкерчиликти төмөнкүдөй бөлүштүрүүнү көздөгөнбүз: бэкендер Интернетти кыдырып, бардык чогултулган маалыматты маалымат базасына киргизген жөрмөлөгүчтөрдү жазат, ал эми мен бул маалымат базасын сураган жана маалыматтарды алдыңкы тарапка жөнөтүүчү node.js ичинде API жазам. Буга байланыштуу мен экспресс.js аркылуу серверди алдын ала даярдадым жана реактивдүү фронтту даярдадым. Мен CRA колдонбойм, мен ар дайым өзүм үчүн веб-пакетти ыңгайлаштырам жана бул кандай тобокелдиктерди алып келерин жакшы билем (бурчтук иштеп чыгуучулар жөнүндө окуяны эстеп коюңуз). Бул учурда, мен эмнени жайгаштыраарымды түшүнүү үчүн дизайнерибизден интерфейстин шаблондорун же жок дегенде макеттерин сурадым. Теориялык жактан ал дагы өзүнүн даярдыгын жасап, биз менен макулдашы керек, бирок мен эч качан жооп алган жокмун. Натыйжада эски долбоорлорумдун биринен дизайнды алдым. Бул долбоордун бардык стилдери мурунтан эле жазылгандыктан, ал дагы тезирээк иштей баштады. Демек, тыянак: дизайнер дайыма командага керек эмес))). Биз хакатонго ушул окуялар менен келдик.

6. Хакатондо иштөө. Биринчи жолу мен өз командамды түз эфирде Борбордук бөлүштүрүү борборундагы хакатондун ачылышында гана көрдүм. Биз жолугуп, маселени чечүүнүн жолдорун жана иштөө этаптарын талкууладык. Ачылгандан кийин Кызыл-Октябрга автобус менен барышыбыз керек болсо да, саат 9.00дө жетүүгө макул болуп, үйгө уктап бардык. Неге? Уюштуруучулар катышуучулардан максималдуу пайда алууну каалашкан окшойт, ошондуктан так ушундай график түзүштү. Бирок, менин тажрыйбам боюнча, сиз бир түн уктабай эле коддосоңуз болот. Экинчисине келсек, мен мындан ары ишенбейм. Хакатон - бул марафон, сиз өзүңүздүн күчүңүздү туура эсептеп, пландаштырышыңыз керек. Анын үстүнө даярдыгыбыз бар болчу.

Urban Tech Challenge хакатонунда Big Data трегин кантип жана эмне үчүн утуп алдык

Ошондуктан, уктап калгандан кийин, саат 9.00дө демократиянын алтынчы кабатында отурганбыз. Анан дизайнерибиз күтүүсүздөн ноутбук жок экенин, үйдөн иштей турганын айтып, телефон аркылуу байланышып турабыз деп билдирди. Бул акыркы тамчы болду. Ошентип, биз команданын атын өзгөртпөгөнүбүз менен төрттөн үчкө өттүк. Кайрадан, бул биз үчүн чоң сокку болгон жок, менде эски долбоордун дизайны бар болчу. Жалпысынан алганда, алгач баары бир топ жылмакай жана план боюнча өттү. Биз маалымат базасына жүктөгөнбүз (neo4j колдонууну чечтик) уюштуруучулардан инновациялык компаниялардын маалымат топтомун. Мен терип баштадым, андан кийин node.js файлын алдым, анан баары ката баштады. Мен буга чейин эч качан neo4j менен иштеген эмесмин, адегенде бул маалымат базасы үчүн иштеген драйверди издеп жүрдүм, андан кийин суроону кантип жазуу керектигин түшүндүм, анан бул маалымат базасы суралганда, объектилерди кайтарып берерин билип таң калдым. түйүн объекттеринин массивинин формасы жана алардын четтери. Ошол. Мен уюмду жана ал боюнча бардык маалыматтарды ИНН боюнча бир уюм объектинин ордуна сураганымда, мага бул уюм жана алардын ортосундагы мамилелер жөнүндө маалыматтарды камтыган объекттердин узун массивдери кайтарылды. Мен бүт массивди аралап өткөн картачыны жаздым жана бардык объекттерди уюштурууга ылайык бир объектке жабыштырдым. Бирок согушта, 8 миң уюмдардын маалымат базасын талап кылганда, ал өтө жай аткарылган, болжол менен 20 - 30 секунд. Мен оптималдаштыруу жөнүндө ойлоно баштадым... Анан биз убагында токтоп, MongoDBге өттүк, ал бизге 30 мүнөттөй убакытты алды. Жалпысынан neo4jде 5 саатка жакын убакыт жоголду.

Эсиңизде болсун, эч качан сиз билбеген хакатонго технологияны алып барбаңыз, күтүлбөгөн окуялар болушу мүмкүн. Бирок, жалпысынан, бул ийгиликсиздиктен тышкары, баары план боюнча өттү. Ал эми 9-декабрдын таңында бизде толук иштеп жаткан арыз бар. Калган күнү биз ага кошумча функцияларды кошууну пландаштырганбыз. Келечекте, мен үчүн баары салыштырмалуу оңой өттү, бирок бэкендер издөө системаларында, юридикалык жактардын агрегаторлорунун спамында, издөө натыйжаларынын биринчи орундарынан чыккан издөө системаларына тыюу салууда бир топ көйгөйлөргө туш болду. ар бир конкреттүү компания үчүн. Бирок бул тууралуу өзү айтканы жакшы. Мен кошкон биринчи кошумча функция толук аты менен издөө болду. ВКонтактенин башкы директору. Бул бир нече саатка созулду.

Ошентип, биздин тиркемедеги компаниянын баракчасында башкы директордун аватары, анын ВКонтакте баракчасына шилтеме жана башка маалыматтар пайда болду. Бул торттун үстүндө жакшы алча болду, бирок ал бизге жеңишти бербесе да. Андан кийин, мен кээ бир аналитика жүргүзгүм келди. Бирок варианттарды көпкө издегенден кийин (UI менен көптөгөн нюанстар бар болчу), мен экономикалык ишмердүүлүктүн коду боюнча уюмдардын эң жөнөкөй бириктирилишине токтолдум. Кечинде, акыркы сааттарда мен инновациялык өнүмдөрдү көрсөтүү үчүн шаблон даярдап жаткам (биздин тиркемеде Продукциялар жана Кызматтар бөлүмү болушу керек), бирок бэкенд буга даяр эмес. Ошол эле учурда, маалымат базасы секирик жана чек менен шишип, жөрмөлөгүчтөр ишин уланта берди, бэкендер инновациялык тексттерди инновациялык эмес тексттерден айырмалоо үчүн NLP менен эксперимент жасады))). Бирок акыркы презентациянын убактысы жакындап калган эле.

7. Презентация. Өзүмдүн тажрыйбамдан улам айта алам: презентацияны даярдоого мөөнөтү бүткөнгө чейин 3-4 саат калганда өтүш керек. Айрыкча ал видеону камтыса, аны тартуу жана монтаждоо бир топ убакытты талап кылат. Бизде видео болушу керек болчу. Ал эми бизде бул менен алектенген, ошондой эле башка бир катар уюштуруу маселелерин чечкен атайын адам бар болчу. Ушуга байланыштуу биз акыркы учурга чейин коддоодон алаксыган жокпуз.

8. Pitch. Мага презентациялар жана финалдар өзүнчө иш күнү (дүйшөмбү) өткөнү жаккан жок. Бул жерде, кыязы, уюштуруучулардын катышуучуларды максималдуу сыгып алуу саясаты уланган. Мен жумуштан эс алууну пландаган эмесмин, мен финалга чыккым келген, бирок менин командамдын калган мүчөлөрү эс алуу күнүн алышкан. Бирок, хакатондо эмоционалдык чөмүлүү ансыз деле жогору болгондуктан, эртең мененки саат 8де мен өзүмдүн командамдын чатына (хакатон командасы эмес, жумушчу топ) күнүмдү өз эсебинен өткөрүп жатканымды жазып, борборго бардым. аянтчалар үчүн кеңсе. Биздин маселе таза маалымат илимпоздор көп болуп чыкты, жана бул абдан көйгөйдү чечүү мамилесине таасир этти. Көптөгөн жакшы DS бар болчу, бирок эч кимде иштеген прототиби болгон эмес, көбү издөө системаларында алардын жөрмөлөгүчтөрүнүн тыюуларынан айланып кете алышкан эмес. Биз иштеген прототиби бар жалгыз команда болдук. А биз маселени кантип чечүүнү билчүбүз. Жыйынтыгында биз эң аз атаандаштыкка ээ болгон тапшырманы тандап алганыбыз үчүн абдан бактылуу болсок да, тректи жеңип алдык. Башка тректердеги аянтчаларды карап, биз ал жерде эч кандай мүмкүнчүлүк болбой турганын түшүндүк. Калыстар тобу менен биз абдан бактылуу экенибизди айткым келет, алар кодду кылдаттык менен текшеришти. Жана, сын-пикирлер боюнча, бул бардык тректерде болгон эмес.

9. Финал. Кодду карап чыгуу үчүн калыстар тобуна бир нече жолу чакырылгандан кийин, акыры бардык маселелерди чечтик деп ойлоп, Бургер Кингге түшкү тамактанууга бардык. Ал жактан уюштуруучулар кайра чакырышты, тез эле буйрутмаларды чогултуп, кайра кайтууга туура келди.

Уюштуруучу бизге кайсы бөлмөгө кирүү керектигин көрсөттү жана киргенде жеңүүчү командалар үчүн оратордук чеберчилик боюнча тренингге катышып калдык. Сахнага чыга турган жигиттер жакшы эле заряддалып, баары чыныгы шоумен болуп чыгышты.

Моюнга алышым керек, финалда башка тректердин эң күчтүү командаларынын фонунда биз кубарып көрүндүк, мамлекеттик кардар номинациясында жеңиш кыймылсыз мүлк боюнча технологиялык тректин командасына татыктуу болду. Менин оюмча, биздин трассадагы жеңишибизге негизги факторлор: даяр бланктын болушу, анын аркасында биз прототибин тез жасай алдык, прототипте “маанилүү учурлардын” болушу (башкы директорлорду издөө) болду деп ойлойм. социалдык тармактарда) жана биздин колдоочубуздун NLP көндүмдөрү , бул да калыстар тобун абдан кызыктырды.

Urban Tech Challenge хакатонунда Big Data трегин кантип жана эмне үчүн утуп алдык

Жыйынтыктап айтканда, бизди колдогондордун баарына, биздин тректин калыстар тобуна, Евгений Евграфиевге (хакатондо биз чечкен маселенин автору) жана албетте хакатондун уюштуруучуларына салттуу ыраазычылык билдиребиз. Бул, балким, мен катышкан эң чоң жана эң сонун хакатон болду, мен балдарга келечекте дагы ушундай жогорку деңгээлде болушун каалайм!

Source: www.habr.com

Комментарий кошуу