Sut a pham yr enillon ni drac y Data Mawr yn yr hacathon Urban Tech Challenge

Fy enw i yw Dmitry. Ac rydw i eisiau siarad am sut y cyrhaeddodd ein tîm rowndiau terfynol yr hackathon Urban Tech Challenge ar y trac Data Mawr. Dywedaf ar unwaith nad dyma'r hacathon cyntaf y cymerais ran ynddo, ac nid y cyntaf y cymerais wobrau ynddo. Yn hyn o beth, yn fy stori rwyf am leisio rhai arsylwadau a chasgliadau cyffredinol ynglŷn â'r diwydiant hacathon yn ei gyfanrwydd, a rhoi fy marn yn hytrach na'r adolygiadau negyddol a ymddangosodd ar-lein yn syth ar ôl diwedd y Urban Tech Challenge (ar gyfer enghraifft hyn).

Felly yn gyntaf rhai sylwadau cyffredinol.

1. Mae’n syndod bod cryn dipyn o bobl yn meddwl yn naïf mai rhyw fath o gystadleuaeth chwaraeon yw hacathon lle mae’r codyddion gorau’n ennill. Mae hyn yn anghywir. Dydw i ddim yn ystyried achosion pan nad yw trefnwyr hacathon eu hunain yn gwybod beth maen nhw ei eisiau (rwyf wedi gweld hynny hefyd). Ond, fel rheol, mae'r cwmni sy'n trefnu hacathon yn dilyn ei nodau ei hun. Gall eu rhestr fod yn wahanol: gallai fod yn ateb technegol i rai problemau, yn chwilio am syniadau a phobl newydd, ac ati. Mae'r nodau hyn yn aml yn pennu fformat y digwyddiad, ei amseriad, ar-lein / all-lein, sut bydd y tasgau'n cael eu llunio (ac a fyddant yn cael eu llunio o gwbl), a fydd adolygiad cod yn yr hacathon, ac ati. Mae'r timau a'r hyn a wnaethant yn cael eu hasesu o'r safbwynt hwn. Ac mae'r timau hynny sy'n taro'r pwynt sydd ei angen ar y cwmni orau yn ennill, ac mae llawer yn cyrraedd y pwynt hwn yn gwbl anymwybodol a thrwy ddamwain, gan feddwl eu bod yn cymryd rhan mewn cystadleuaeth chwaraeon mewn gwirionedd. Mae fy arsylwadau'n dangos, er mwyn ysgogi cyfranogwyr, y dylai trefnwyr greu o leiaf ymddangosiad amgylchedd chwaraeon ac amodau cyfartal, fel arall byddant yn derbyn ton o negyddiaeth, fel yn yr adolygiad uchod. Ond rydyn ni'n crwydro.

2. Gan hyny y casgliad canlynol. Mae gan y trefnwyr ddiddordeb mewn cyfranogwyr yn dod i'r hacathon gyda'u gwaith eu hunain, weithiau byddant hyd yn oed yn trefnu cam gohebiaeth ar-lein yn arbennig at y diben hwn. Mae hyn yn caniatáu ar gyfer atebion allbwn cryfach. Mae'r cysyniad o “waith ei hun” yn un cymharol iawn; gall unrhyw ddatblygwr profiadol gronni miloedd o linellau o god o'i hen brosiectau yn ei ymrwymiad cyntaf. Ac a fydd hwn yn ddatblygiad a baratowyd ymlaen llaw? Ond beth bynnag, mae'r rheol yn berthnasol, a fynegais ar ffurf meme enwog:

Sut a pham yr enillon ni drac y Data Mawr yn yr hacathon Urban Tech Challenge

I ennill, rhaid bod gennych rywbeth, rhyw fath o fantais gystadleuol: prosiect tebyg a wnaethoch yn y gorffennol, gwybodaeth a phrofiad mewn pwnc penodol, neu waith parod a wnaed cyn dechrau'r hacathon. Ydy, nid chwaraeon mohono. Ydy, efallai na fydd hyn yn werth yr ymdrech a wariwyd (yma, mae pawb yn penderfynu drostynt eu hunain a yw'n werth codio am 3 wythnos gyda'r nos am wobr o 100 mil, wedi'i rannu rhwng y tîm cyfan, a hyd yn oed gyda'r risg o beidio â'i dderbyn). Ond, yn aml, dyma'r unig gyfle i fwrw ymlaen.

3. Dewis tîm. Fel y sylwais mewn sgyrsiau hacathon, mae llawer yn mynd i'r afael â'r mater hwn yn eithaf gwamal (er mai dyma'r penderfyniad pwysicaf a fydd yn pennu eich canlyniad yn yr hacathon). Mewn sawl maes gweithgaredd (mewn chwaraeon ac mewn hacathonau) rwyf wedi gweld bod pobl gref yn tueddu i uno gyda'r cryf, y gwan gyda'r gwan, y smart gyda'r smart, wel, yn gyffredinol, rydych chi'n cael y syniad ... Mae hyn yn fras beth sy'n digwydd mewn sgyrsiau: rhaglenwyr llai cryf maent yn cael eu bachu ar unwaith, mae pobl nad oes ganddynt unrhyw sgiliau gwerthfawr ar gyfer hacathon yn hongian yn y sgwrs am amser hir ac yn dewis tîm ar yr egwyddor pe bai rhywun yn unig yn ei gymryd. . Mewn rhai hacathonau, mae aseiniadau ar hap i dimau yn cael eu hymarfer, ac mae'r trefnwyr yn honni nad yw timau ar hap yn perfformio'n waeth na'r rhai presennol. Ond yn ôl fy arsylwadau, mae pobl frwdfrydig, fel rheol, yn dod o hyd i dîm ar eu pen eu hunain; os oes rhaid neilltuo rhywun, yna, yn aml, nid yw llawer ohonynt yn dod i'r hacathon.

O ran cyfansoddiad y tîm, mae hyn yn unigol iawn ac yn ddibynnol iawn ar y dasg. Gallwn ddweud mai'r cyfansoddiad tîm lleiaf dichonadwy yw dylunydd - pen blaen neu ben blaen - pen ôl. Ond gwn hefyd am achosion pan enillodd timau a oedd yn cynnwys blaenwyr yn unig, a ychwanegodd ben ôl syml yn nod.js, neu a wnaeth gais symudol yn React Native; neu dim ond gan backenders a wnaeth gosodiad syml. Yn gyffredinol, mae popeth yn unigol iawn ac yn dibynnu ar y dasg. Roedd fy nghynllun ar gyfer dewis tîm ar gyfer yr hacathon fel a ganlyn: Roeddwn i'n bwriadu cydosod tîm neu ymuno â thîm fel pen blaen - pen ôl - dylunydd (dwi'n flaenwr fy hun). Ac yn eithaf cyflym dechreuais sgwrsio gyda chefnwr python a dylunydd a dderbyniodd y gwahoddiad i ymuno â ni. Ychydig yn ddiweddarach, ymunodd merch, dadansoddwr busnes, a oedd eisoes â phrofiad o ennill hacathon, â ni, a phenderfynodd hyn y mater o ymuno â ni. Ar ôl cyfarfod byr, fe benderfynon ni alw ein hunain yn U4 (URBAN 4, trefol pedwar) trwy gyfatebiaeth â'r pedwar gwych. Ac fe wnaethant hyd yn oed roi llun cyfatebol ar avatar ein sianel telegram.

4. Dewis tasg. Fel y dywedais eisoes, mae'n rhaid bod gennych fantais gystadleuol, dewisir y dasg ar gyfer yr hacathon yn seiliedig ar hyn. Yn seiliedig ar hyn, wedi edrych rhestr dasgau ac wrth asesu eu cymhlethdod, fe wnaethom setlo ar ddwy dasg: catalog o fentrau arloesol gan DPiIR a chatbot gan EFKO. Dewiswyd y dasg o DPIiR gan y backender, dewiswyd y dasg gan EFKO gennyf fi, oherwydd wedi cael profiad o ysgrifennu chatbots yn nod.js a DialogFlow. Roedd tasg EFKO hefyd yn cynnwys ML; mae gen i rywfaint o brofiad, nad yw'n helaeth iawn, yn ML. Ac yn ôl amodau'r broblem, roedd yn ymddangos i mi ei bod yn annhebygol o gael ei datrys gan ddefnyddio offer ML. Cryfhawyd y teimlad hwn pan es i gyfarfod Urban Tech Challenge, lle dangosodd y trefnwyr set ddata i mi ar EFKO, lle roedd tua 100 o luniau o gynlluniau cynnyrch (wedi'u cymryd o wahanol onglau) a thua 20 dosbarth o wallau gosodiad. Ac, ar yr un pryd, roedd y rhai a orchmynnodd y dasg eisiau cyflawni cyfradd llwyddiant dosbarthiad o 90%. O ganlyniad, paratoais gyflwyniad o'r datrysiad heb ML, paratôdd y backender gyflwyniad yn seiliedig ar y catalog, a gyda'i gilydd, ar ôl cwblhau'r cyflwyniadau, fe wnaethom eu hanfon i'r Urban Tech Challenge. Eisoes ar hyn o bryd, datgelwyd lefel cymhelliant a chyfraniad pob cyfranogwr. Ni chymerodd ein dylunydd ran yn y trafodaethau, ymatebodd yn hwyr, a hyd yn oed llenwi gwybodaeth amdano'i hun yn y cyflwyniad ar y funud olaf un, yn gyffredinol, cododd amheuon.

O ganlyniad, fe wnaethom basio'r dasg gan DPiIR, ac nid oedd yn ofidus o gwbl na wnaethom basio'r EFKO, gan fod y dasg yn ymddangos yn rhyfedd i ni, i'w roi'n ysgafn.

5. Paratoi ar gyfer yr hacathon. Pan ddaeth yn hysbys o'r diwedd ein bod wedi cymhwyso ar gyfer yr hacathon, dechreuon ni baratoi'r paratoad. A dyma fi ddim yn pleidio dechrau sgwennu côd wythnos cyn dechrau'r hacathon. Ar y lleiaf, dylai fod gennych blat boeler yn barod, y gallwch chi ddechrau gweithio ag ef ar unwaith, heb orfod ffurfweddu offer, a heb daro i mewn i fygiau o ryw lib y gwnaethoch benderfynu rhoi cynnig arnynt am y tro cyntaf mewn hacathon. Rwy'n gwybod stori am beirianwyr onglog a ddaeth i hacathon a threulio 2 ddiwrnod yn sefydlu'r prosiect adeiladu, felly dylid paratoi popeth ymlaen llaw. Roeddem yn bwriadu dosbarthu cyfrifoldebau fel a ganlyn: mae'r backender yn ysgrifennu ymlusgwyr sy'n sgwrio'r Rhyngrwyd ac yn rhoi'r holl wybodaeth a gasglwyd yn y gronfa ddata, tra byddaf yn ysgrifennu API yn node.js sy'n holi'r gronfa ddata hon ac yn anfon y data i'r blaen. Yn hyn o beth, fe wnes i baratoi gweinydd ymlaen llaw gan ddefnyddio express.js a pharatoi pen blaen yn react. Dydw i ddim yn defnyddio CRA, rydw i bob amser yn addasu pecyn gwe i mi fy hun ac rwy'n gwybod yn iawn pa risgiau y gall hyn eu peri (cofiwch y stori am ddatblygwyr onglog). Ar y pwynt hwn, gofynnais am dempledi rhyngwyneb neu o leiaf ffugiau gan ein dylunydd er mwyn cael syniad o'r hyn y byddwn yn ei osod allan. Mewn egwyddor, dylai hefyd wneud ei baratoadau ei hun a'u cydlynu â ni, ond ni chefais ateb erioed. O ganlyniad, benthycais y dyluniad o un o fy hen brosiectau. A dechreuodd weithio allan hyd yn oed yn gyflymach, gan fod yr holl arddulliau ar gyfer y prosiect hwn eisoes wedi'u hysgrifennu. Felly'r casgliad: nid oes angen dylunydd bob amser ar dîm))). Daethom at yr hacathon gyda'r datblygiadau hyn.

6. Gweithiwch yn yr hacathon. Dim ond adeg agoriad yr hacathon yn y Ganolfan Ddosbarthu Ganolog oedd y tro cyntaf i mi weld fy nhîm yn fyw. Fe wnaethom gyfarfod, trafod yr ateb a chamau gweithio ar y broblem. Ac er ar ôl yr agoriad roedd rhaid mynd ar fws i Red October, aethon ni adre i gysgu, gan gytuno i gyrraedd y lle erbyn 9.00. Pam? Mae'n debyg bod y trefnwyr eisiau cael y gorau o'r cyfranogwyr, felly fe drefnon nhw amserlen o'r fath. Ond, yn fy mhrofiad i, gallwch chi godio fel arfer heb gysgu am un noson. O ran yr ail un, nid wyf yn siŵr mwyach. Marathon yw hacathon; mae angen i chi gyfrifo a chynllunio'ch cryfder yn ddigonol. Ar ben hynny, cawsom baratoadau.

Sut a pham yr enillon ni drac y Data Mawr yn yr hacathon Urban Tech Challenge

Felly, ar ôl cysgu bant, am 9.00 roeddem yn eistedd ar chweched llawr Dewocratiaeth. Yna cyhoeddodd ein dylunydd yn annisgwyl nad oedd ganddo liniadur ac y byddai'n gweithio gartref, a byddem yn cyfathrebu dros y ffôn. Hwn oedd y gwelltyn olaf. Ac felly dyma droi o bedwar i dri, er na wnaethom newid enw'r tîm. Eto, nid oedd hyn yn ergyd fawr i ni; roedd gen i ddyluniad yr hen brosiect yn barod. Yn gyffredinol, ar y dechrau aeth popeth yn eithaf llyfn ac yn unol â'r cynllun. Fe wnaethom lwytho set ddata o gwmnïau arloesol gan y trefnwyr i'r gronfa ddata (penderfynom ddefnyddio neo4j). Dechreuais gysodi, yna cymerais nod.js, ac yna dechreuodd pethau gam-danio. Nid oeddwn erioed wedi gweithio gyda neo4j o'r blaen, ac ar y dechrau roeddwn yn chwilio am yrrwr gweithiol ar gyfer y gronfa ddata hon, yna fe wnes i ddarganfod sut i ysgrifennu ymholiad, ac yna cefais fy synnu i ddarganfod bod y gronfa ddata hon, pan holwyd, yn dychwelyd endidau yn y ffurf amrywiaeth o wrthrychau nodau a'u hymylon. Y rhai. pan ofynnais am sefydliad a'r holl ddata arno gan TIN, yn lle un gwrthrych sefydliad, dychwelwyd amrywiaeth hir o wrthrychau i mi yn cynnwys data ar y sefydliad hwn a'r berthynas rhyngddynt. Ysgrifennais fapper a aeth trwy'r casgliad cyfan a gludo'r holl wrthrychau yn ôl eu trefniadaeth yn un gwrthrych. Ond mewn brwydr, wrth ofyn am gronfa ddata o 8 mil o sefydliadau, fe'i gweithredwyd yn araf iawn, tua 20 - 30 eiliad. Dechreuais feddwl am optimeiddio... Ac yna fe wnaethon ni stopio mewn amser a newid i MongoDB, a chymerodd tua 30 munud i ni. Yn gyfan gwbl, collwyd tua 4 awr ar neo5j.

Cofiwch, peidiwch byth â mynd â thechnoleg i hacathon nad ydych chi'n gyfarwydd ag ef, efallai y bydd pethau annisgwyl. Ond, yn gyffredinol, ar wahân i'r methiant hwn, aeth popeth yn unol â'r cynllun. Ac eisoes ar fore Rhagfyr 9, roedd gennym ni gais cwbl weithredol. Am weddill y dydd roeddem yn bwriadu ychwanegu nodweddion ychwanegol ato. Yn y dyfodol, aeth popeth yn gymharol ddidrafferth i mi, ond roedd gan y backender griw cyfan o broblemau gyda gwahardd ei ymlusgwyr mewn peiriannau chwilio, yn sbam cydgrynwyr endidau cyfreithiol, a ddaeth yn y mannau cyntaf o ganlyniadau chwilio wrth ofyn ar gyfer pob cwmni penodol. Ond mae'n well iddo ddweud amdano ei hun. Y nodwedd ychwanegol gyntaf a ychwanegais oedd chwilio yn ôl enw llawn. Cyfarwyddwr Cyffredinol VKontakte. Cymerodd sawl awr.

Felly, ar dudalen y cwmni yn ein cais, ymddangosodd avatar y cyfarwyddwr cyffredinol, dolen i'w dudalen VKontakte a rhywfaint o ddata arall. Roedd yn geirios neis ar y gacen, er efallai nad yw wedi rhoi'r fuddugoliaeth i ni. Yna, roeddwn i eisiau rhedeg rhywfaint o ddadansoddeg. Ond ar ôl chwiliad hir o opsiynau (roedd llawer o arlliwiau gyda'r UI), penderfynais ar y cydgrynhoad symlaf o sefydliadau yn ôl cod gweithgaredd economaidd. Eisoes gyda'r nos, yn yr oriau olaf, roeddwn yn gosod templed ar gyfer arddangos cynhyrchion arloesol (yn ein cais mae adran Cynhyrchion a Gwasanaethau i fod i fod), er nad oedd y backend yn barod ar gyfer hyn. Ar yr un pryd, roedd y gronfa ddata yn chwyddo gan lamu a therfynau, roedd y crawlers yn parhau i weithio, arbrofodd y backender gyda NLP i wahaniaethu rhwng testunau arloesol a rhai anarloesol))). Ond roedd yr amser ar gyfer y cyflwyniad terfynol eisoes yn agosáu.

7. Cyflwyniad. O fy mhrofiad fy hun, gallaf ddweud y dylech newid i baratoi cyflwyniad tua 3 i 4 awr cyn ei fod yn ddyledus. Yn enwedig os yw'n ymwneud â fideo, mae ei saethu a'i olygu yn cymryd cryn dipyn o amser. Roedden ni i fod i gael fideo. Ac roedd gennym ni berson arbennig a oedd yn delio â hyn, a hefyd yn datrys nifer o faterion trefniadol eraill. Yn hyn o beth, ni wnaethom dynnu ein sylw oddi ar godio tan yr eiliad olaf un.

8. Cae. Doeddwn i ddim yn hoffi bod y cyflwyniadau a’r rowndiau terfynol yn cael eu cynnal ar ddiwrnod gwahanol o’r wythnos (Dydd Llun). Yma, yn fwyaf tebygol, parhaodd polisi’r trefnwyr o wasgu’r uchafswm allan o’r cyfranogwyr. Doeddwn i ddim yn bwriadu cymryd amser i ffwrdd o’r gwaith, dim ond dod i’r rowndiau terfynol oeddwn i eisiau, er i weddill fy nhîm gymryd y diwrnod i ffwrdd. Fodd bynnag, roedd y trochi emosiynol yn yr hacathon mor uchel yn barod nes i mi ysgrifennu yn sgwrs fy nhîm am 8 yb (y tîm gwaith, nid y tîm hacathon) fy mod yn cymryd y diwrnod ar fy nhraul fy hun, ac es i'r ganolfan ganolog. swyddfa ar gyfer lleiniau. Trodd ein problem allan i gael llawer o wyddonwyr data pur, ac effeithiodd hyn yn fawr ar y dull o ddatrys y broblem. Roedd gan lawer ohonynt DS da, ond nid oedd gan unrhyw un brototeip gweithiol, ni allai llawer fynd o gwmpas gwaharddiadau eu ymlusgwyr mewn peiriannau chwilio. Ni oedd yr unig dîm gyda phrototeip gweithredol. Ac roeddem yn gwybod sut i ddatrys y broblem. Yn y diwedd, enillon ni’r trac, er ein bod ni’n lwcus iawn ein bod ni wedi dewis y dasg leiaf cystadleuol. Wrth edrych ar y caeau mewn traciau eraill, sylweddolom na fyddai gennym unrhyw siawns yno. Rwyf hefyd am ddweud ein bod yn ffodus iawn gyda'r rheithgor; fe wnaethant wirio'r cod yn ofalus. Ac, a barnu yn ôl yr adolygiadau, ni ddigwyddodd hyn ym mhob trac.

9. Terfynol. Ar ôl i ni gael ein galw at y rheithgor sawl gwaith am adolygiad cod, fe wnaethom ni, gan feddwl ein bod wedi datrys yr holl faterion o'r diwedd, fynd i gael cinio yn Burger King. Yno galwodd y trefnwyr ni eto, bu'n rhaid i ni bacio ein harchebion yn gyflym a mynd yn ôl.

Dangosodd y trefnydd i ni pa ystafell yr oedd angen i ni fynd iddi, ac wrth fynd i mewn, cawsom ein hunain mewn sesiwn hyfforddi siarad cyhoeddus ar gyfer y timau buddugol. Roedd y bois oedd i fod i berfformio ar y llwyfan yn llawn gwefr, daeth pawb allan fel showmen go iawn.

Ac mae'n rhaid i mi gyfaddef, yn y rownd derfynol, yn erbyn cefndir y timau cryfaf o draciau eraill, roeddem yn edrych yn welw; aeth y fuddugoliaeth yn enwebiad cwsmeriaid y llywodraeth yn gwbl haeddiannol i'r tîm o'r trac technoleg eiddo tiriog. Rwy'n meddwl mai'r ffactorau allweddol a gyfrannodd at ein buddugoliaeth ar y trac oedd: argaeledd gwag parod, oherwydd yr oeddem yn gallu gwneud prototeip yn gyflym, presenoldeb “uchafbwyntiau” yn y prototeip (chwiliwch am Brif Weithredwyr ar rwydweithiau cymdeithasol) a sgiliau NLP ein cefnogwr , a oedd hefyd o ddiddordeb mawr i'r rheithgor.

Sut a pham yr enillon ni drac y Data Mawr yn yr hacathon Urban Tech Challenge

Ac i gloi, diolch traddodiadol i bawb a'n cefnogodd, rheithgor ein trac, Evgeniy Evgrafiev (awdur y broblem a ddatryswyd gennym yn yr hacathon) ac wrth gwrs trefnwyr yr hacathon. Efallai mai hwn oedd yr hacathon mwyaf a mwyaf cŵl i mi gymryd rhan ynddo erioed, ni allaf ond dymuno i'r bois gadw safon mor uchel yn y dyfodol!

Ffynhonnell: hab.com

Ychwanegu sylw