
Un hackathon és una competició entre desenvolupadors per crear solucions digitals en interès del client. Tot i que aquest tipus d'esdeveniments són molt populars a l'entorn informàtic, molts professionals amb talent tenen por de participar-hi. Un dels motius és l'estereotip sobre la pèrdua garantida de drets a la solució desenvolupada. Un dels guanyadors de l'hackathon a gran escala, Evgeniy Mavrin, dissipa aquest mite i també parla dels avantatges i perspectives dels concursos de programació.
Evgeniy és un jove desenvolupador prometedor. Després d'haver participat a la pista "Megapopis Moscow", organitzada per l'Agència d'Innovació de la capital com a part del hackathon en línia VirusHack, ell, com a part de l'equip EGD BAG (juntament amb Alexey Airapetov i Anna Kovalenko), va realitzar millor que altres la tasca. de crear un bot d'informació per a l'ICQ New messenger, que informava els usuaris sobre la propagació de la infecció per coronavirus.

— Evgeniy, què vau fer tu i els membres del teu equip abans de participar al hackató? On vas estudiar, on vas treballar, en quins projectes vas participar? Has estat involucrat en els negocis?
— Som un equip de companys. Es va graduar al MSTU que porta el nom del programa de màster N. E. Bauman en el programa de Sistemes i Tecnologies d'Informació el 2019. Tots fem programació, però en direccions diferents. Per exemple, la meva pila principal és C++/Qt, i la de Lesha (Alexey Airapetov - nota de l'autor) és Java. A més del nostre treball principal, cadascú de nosaltres tenia els seus propis projectes per a mascotes en diferents etapes de finalització (llegiu abandonament). En general, no va sortir gaire del llançament. Cap del nostre equip havia estat involucrat en els negocis abans. Però vam participar, per dir-ho d'alguna manera, en un "freelance amigable", quan algú que coneixeu simplement necessita ajuda informàtica.
Gràcies a la nostra formació i interessos comuns en l'àmbit informàtic, no ens resulta difícil proposar i implementar una solució de treball a gairebé qualsevol problema.
— Va ser la primera vegada que participaves en un hackató? Com et vas assabentar de la cançó "Megapolis Moscow"?
— Personalment, ja he participat a la hackathon Aramco Upstream Solutions Technathon 2019 en un equip amb companys de la Universitat Estatal Russa de Petroli i Gas que porta el nom d'I.M. Gubkin, però aquella vegada vam tenir mala sort. No hi va haver partit entre els participants de l'equip.
Ens vam assabentar de la cançó "Megapolis Moscow" d'amics: simplement van llançar un anunci al xat d'alguna comunitat d'esperts (desenvolupadors de C#). Ens vam plantejar la participació al hackathon de VirusHack de manera responsable: vam decidir la tasca amb antelació i vam repartir les responsabilitats de manera aproximada. I realment va ajudar.
— Com valora la complexitat de la tasca del client ICQ New? Quin és el nivell dels oponents?
— La tasca encaixa perfectament, al meu entendre, dins el període de temps del hackató. Sovint, en un parell de dies destinats a un hackathon, molts equips presenten un concepte o prototip com a solució final. Vam presentar el producte acabat, que nosaltres i el client vam posar ràpidament en producció. El nivell dels rivals era alt. I em va preocupar molt quan vaig veure els resultats d'altres equips. Molts participants es van permetre una interpretació lliure de la tasca: algú, per exemple, va fer un bot amb el qual es podia jugar a jocs casuals senzills.
— Explica'ns la solució que va sortir al final? Quines eines es van utilitzar per desenvolupar-lo?
— El resultat va ser un bot d'informació que informava els usuaris sobre la propagació de la infecció per coronavirus.
Mitjançant una geoetiqueta, les persones podrien rebre informació sobre casos nous i antics d'infecció dels ciutadans, conèixer les adreces de les institucions mèdiques i laboratoris més propers per fer proves de COVID-19 i les adreces de les farmàcies i botigues més properes. També es va incorporar al bot un generador de missatges SMS simplificat per rebre una passada electrònica.
Per regular els fluxos computacionals en escriure un bot, es van utilitzar eines estàndard de llenguatge Java. Per simplificar significativament el treball del bot, es va triar la biblioteca API d'ICQ. També vam resoldre el problema de simplificar el desplegament del bot en un entorn de producció: sabent que Docker és ara l'estàndard en desenvolupament corporatiu, vam preparar una imatge de Docker.
En general, el resultat és un producte fàcil de modernitzar i adaptable a escala.
—Què va ser el més difícil?
— El més difícil, probablement, va ser "pentinar" totes les funcionalitats del bot perquè fos convenient utilitzar-lo. Hem implementat la interfície de manera que l'usuari introdueix dades en text només en casos extrems, com, per exemple, per indicar el motiu de l'emissió d'una passada única (sí, això era rellevant fins fa poc). Tota la interacció amb el bot es va reduir a l'ús competent de les eines del propi missatger. Hem desactivat completament la possibilitat d'introduir ordres manualment. Per cert, aquí teniu un vídeo de demostració del bot:
— Vas convertir-te en el guanyador del hackathon. Com van evolucionar els esdeveniments més?
— Vam aprendre una cosa molt útil: com va resultar, nosaltres mateixos vam seguir sent els titulars dels drets d'autor del bot, cosa que fins i tot em va sorprendre una mica. Vaig pensar que qualsevol hackathon és, a grans trets, un intercanvi d'una idea nascuda en una pluja d'idees en equip per obtenir un premi valuós. Però vaig tornar a llegir l'acord i les normes de participació i no vaig trobar res semblant. Per tant, a altres participants de l'hackathon que estan preocupats per haver de transferir els drets dels seus desenvolupaments, vull dir que no, no és un fet que se us obligui a fer-ho. Al hackathon de VirusHack, fins i tot va ser possible emmagatzemar el codi en repositoris privats i simplement donar accés temporal a un dels membres del jurat per prendre una decisió. En qualsevol cas, abans de l'hackathon, llegiu sempre els documents de participació perquè no hi hagi sorpreses en el futur.
Per cert, vam decidir deixar el nostre codi obert: . "Forquilla" per a la teva salut.
Després del hackathon, per iniciativa pròpia, vam preparar un port de bot per a l'API de Telegram en cas d'una segona onada de la pandèmia de coronavirus. Però és millor deixar que aquest projecte romangui per sempre en repositoris privats.
Ara estem pensant en adaptar la funcionalitat del bot a la situació actual, quan s'hagi aixecat el règim d'autoaïllament. Per exemple, per cercar centres de fitness, restaurants i altres instal·lacions de la ciutat. Els membres de l'equip ICQ New no estan en contra d'"allotjar" una versió actualitzada del bot a les seves instal·lacions.
— Els programadors haurien de participar en hackatons? Què creus que poden donar als participants i als guanyadors?
- Definitivament val la pena. És una experiència fantàstica completar una tasca aplicada des de zero en un parell de dies, que després podeu discutir amb experts. A més, aquesta és una oportunitat per avaluar les teves habilitats i les "habilitats" dels membres de l'equip en una autèntica marató de dos dies. També és treball en xarxa. En qualsevol camp, especialment en informàtica, aquest és un aspecte molt important del desenvolupament, tal com em sembla. Pots trobar gent nova que et sigui útil, comunicar-te amb elles i veure els seus projectes. A més, mentre desenvolupeu només al vostre lloc de treball principal, podeu provar-vos en un hackathon amb un paper nou, per exemple, "propietari del producte", "cap d'equip" o un altre paper. Però per al guanyador, aquesta és una oportunitat per col·laborar amb èxit amb les principals empreses, ajudar a promoure la seva idea. Hi ha molts casos en què els projectes a gran escala van sorgir a partir de hackatons.
— Les sol·licituds per a un nou hackathon per resoldre els problemes de la ciutat començaran a l'agost . Els seus guanyadors rebran una recompensa substancial. El vostre equip hi participarà? Com us preparareu? Si guanyes, en què gastaràs el premi en metàl·lic?
— Per a mi, així com per a la resta de l'equip, l'objectiu principal de participar en l'hackathon és l'oportunitat de desenvolupar un prototip de producte dins d'una àrea del nostre interès.
Adquirim experiència en desenvolupament col·lectiu i un bon projecte a la nostra cartera, i ens enfrontem a tasques interessants i complexes. És clar que volem guanyar. Tanmateix, no pretenem específicament rebre un premi en metàl·lic. Si el projecte aporta beneficis, aquesta serà la nostra victòria.
Per preparar la competició intentarem ampliar l'equip: a l'anterior hackathon érem tres i, francament, simplement no hi havia prou mans. A més, resoldrem el problema amb el programari instal·lat perquè tots els membres de l'equip tinguin el conjunt de programes necessaris abans de l'inici de la competició (tal com ha demostrat l'experiència, es dedica una gran quantitat de temps a resoldre problemes amb la sincronització del programari).
Si encara aconseguim obtenir un premi, gastarem els diners en una PS5 i ens quedarem a casa un parell de setmanes. Broma! Per descomptat, entenem que un premi en metàl·lic és, en primer lloc, una ajuda econòmica per al desenvolupament posterior del projecte. L'allotjament, les màquines virtuals, etc. formen part del que es distribuiran les finances.
Font: www.habr.com
