Cum este să asculți codul la 1000 de cuvinte pe minut

Povestea unei mici tragedii și a unor mari victorii ale unui dezvoltator foarte bun care are nevoie de ajutor

Cum este să asculți codul la 1000 de cuvinte pe minut

La Universitatea Federală din Orientul Îndepărtat există un centru pentru activități de proiect - acolo masteranții și licențiații găsesc proiecte de inginerie care au deja clienți, bani și perspective. Tot acolo se țin cursuri și cursuri intensive. Specialiștii cu experiență vorbesc despre lucruri moderne și aplicate.

Unul dintre cursurile intensive a fost dedicat utilizării sistemului de containerizare Docker pentru calcularea distribuită și orchestrare. La ea au participat masteranți și absolvenți de matematică aplicată, inginerie, pregătire software și alte domenii tehnice.

Profesorul era un tip cu ochelari de culoare închisă, o tunsoare la modă, o eșarfă, sociabil și prea încrezător – mai ales pentru un elev de anul II de 21 de ani. Numele lui este Evgeny Nekrasov, a intrat în FEFU în urmă cu doar doi ani.

Wunderkind

„Da, erau mai în vârstă și aveau mai mult statut, dar nu pot spune că erau mai experimentați. În plus, uneori le-am dat cursuri colegilor mei de clasă pentru profesorul nostru. La un moment dat, ne-am dat seama că nu putea să-mi dea nimic mai mult despre programarea orientată pe obiecte, așa că din când în când îi țineam prelegeri despre OOP, dezvoltarea modernă, GitHub și utilizarea sistemelor de control al versiunilor.”

Cum este să asculți codul la 1000 de cuvinte pe minut

Evgeniy poate scrie în Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C și Assembler. „Cunosc JavaScript mai bine, restul sunt cu un nivel sau două mai jos. Dar, în același timp, pot programa un controler în Rust sau C++ într-o oră. Nu am studiat aceste limbi intenționat. Le-am studiat pentru sarcinile care mi-au fost atribuite. Mă pot alătura oricărui proiect studiind documentația și manualele. Cunosc sintaxele limbilor și pe care să o folosesc nu contează cu adevărat. Este același lucru cu cadrele și bibliotecile - doar citiți documentația și înțeleg cum funcționează. Totul este determinat de domeniul de activitate și de sarcină.”

Evgeniy a studiat intens programarea din 2013. Un profesor de informatică de liceu care era complet orb l-a făcut să se intereseze de informatică. Calea a început cu web - HTML, JavaScript, PHP.

"Sunt doar curios. Nu dorm mult - sunt constant ocupat cu ceva, citesc ceva, studiez ceva.”

În 2015, Evgeniy a aplicat la concursul „Umnik” pentru a sprijini proiectele tehnice ale tinerilor oameni de știință cu vârsta de peste optsprezece ani. Dar nu avea optsprezece ani, așa că nu a reușit să câștige competiția - dar Evgeniy a fost observat de comunitatea de dezvoltatori locali. L-a cunoscut pe Serghei Milekhin, care în acel moment organiza conferințe la Vladivostok în cadrul Google Developer Fest. „M-a invitat acolo, am venit, am ascultat, mi-a plăcut. Anul următor am venit din nou, am cunoscut oamenii din ce în ce mai mult, am comunicat.”

Andrey Sitnik din comunitatea VLDC a început să-l ajute pe Evgeniy cu proiectele sale web. „Trebuia să construiesc o aplicație web socket multi-threaded. M-am gândit foarte mult timp la cum să fac asta în PHP și m-am îndreptat către Andrey. Mi-a spus: „Ia pachetele node.js, npm care sunt pe internet și nu-ți rupe capul. Și, în general, mutarea open source este cool.” Așa că mi-am îmbunătățit limba engleză, am început să citesc documentație și să postez proiecte pe GitHub.”

În 2018, Evgeniy a susținut deja prezentări la Google Dev Fest, vorbind despre evoluțiile în domeniul interfețelor accesibile, protezelor membrelor superioare, dezvoltarea interfețelor neuronale și a sistemelor de control al accesului fără contact. Acum, Evgeniy este în al doilea an de licență în Inginerie software, dar a terminat deja cu succes și își termină munca finală.

„Mi s-a spus să implementez structura de date într-un tabel hash. Acesta este un lucru standard care este oferit tuturor de la universitate. Am ajuns să am 12 mii de linii de cod și o grămadă de cârje”, spune Evgeniy râzând, „Am construit un tabel hash și structura sa modificată în JavaScript pentru a citi datele mai repede. Și profesorul spune: „Am nevoie să scrii ceea ce este mai ușor pentru mine, ca să pot evalua.” A fost foarte enervant.”

Proiectele personale ale lui Evgeniy par mult mai interesante. Prima dintre acestea este dezvoltarea standardelor web pentru persoanele cu dizabilități fizice. El vrea să creeze o resursă care să ofere tehnologie de asistență din cutie, astfel încât persoanele cu deficiențe de vedere să o poată utiliza cu ușurință, fără grija de a pierde unele informații. Evgeniy cunoaște bine această problemă, pentru că el însuși și-a pierdut vederea.

Vătămare

„Odinioară am fost un adolescent obișnuit, cu toate membrele la locul lor. În 2012, m-am aruncat în aer. Am ieșit la plimbare cu un prieten, am luat un cilindru pe stradă și mi-a explodat în mâini. Mâna dreaptă mi-a fost smulsă, mâna stângă a fost infirmă, mi-a fost afectată vederea și mi-a fost afectat auzul. Timp de șase luni am stat doar pe mesele de operație.

Mâna stângă a fost asamblată în părți, au fost instalate plăci și ace de tricotat. După cinci luni am putut să lucrez pentru ea.

După accidentare, nu am putut vedea nimic. Dar medicii au reușit să restabilească percepția luminii. Nu a mai rămas nimic din ochiul meu în afară de coajă. Tot ce este înăuntru a fost înlocuit - corpurile vitroase, lentilele. Orice e posibil."

În 2013, Zhenya a mers să studieze la o școală corecțională pentru copiii cu deficiențe de vedere. Acel profesor de informatică, care era complet orb, l-a învățat să folosească din nou un computer. În acest scop, se folosesc programe speciale - cititoare de ecran. Aceștia accesează API-urile sistemului de operare pentru a obține acces la interfață și pentru a schimba ușor modul în care sunt controlate.

Zhenya se numește un utilizator pasionat de Linux, el folosește Debian. Folosind tastatura, el navighează printre elementele interfeței, iar un sintetizator de vorbire exprimă ceea ce se întâmplă.

„Acum vei auzi doar spațiu”, îmi spune el înainte de a porni programul.

Sună ca un cod sau o discuție extraterestră, dar în realitate este rusă sau engleză obișnuită, doar că sintetizatorul vorbește cu o viteză incredibilă pentru urechea neantrenată.

„Nu a fost greu să înveți asta. La început am lucrat pe Windows și am folosit cititorul de ecran Jaws. L-am folosit și m-am gândit: „Doamne, cum poți lucra la o viteză atât de mică?” Am mărit și mi-am dat seama că urechile erau curbate într-un tub. L-am returnat înapoi și am început treptat să o cresc cu 5-10 la sută în fiecare săptămână. Am accelerat sintetizatorul la o sută de cuvinte, apoi chiar mai multe și iar și iar. Acum rostește o mie de cuvinte pe minut.”

Zhenya scrie într-un editor de text obișnuit - Gedit sau Nano. Copiază sursele din Github, lansează cititorul de ecran și ascultă codul. Pentru a se asigura că poate fi citit și înțeles cu ușurință de către alți dezvoltatori, folosește linters și configurații pe tot parcursul. Dar Zhenya nu poate folosi mediile de dezvoltare, deoarece acestea sunt inaccesibile nevăzătorilor datorită implementării lor.

„Sunt făcute în așa fel încât fereastra lor să fie determinată de sistem, iar tot ce se află în interiorul ferestrei nu este văzut de cititorul de ecran pentru că nu poate accesa. Acum am contactat JetBrains direct pentru a încerca să fac niște patch-uri în mediile lor. Mi-au trimis sursele PyCharm. IDE-ul este implementat pe Intellij Idea, astfel încât toate modificările pot fi aplicate atât acolo, cât și acolo.”

Un alt obstacol este lipsa aderării la standardele web comune. De exemplu, vedem un titlu mare pe o pagină. Mulți dezvoltatori implementează acest lucru folosind o etichetă span pentru a strânge fontul la dimensiunea dorită și ajunge să arate bine. Dar, deoarece textul nu este un titlu pentru sistem, cititorul de ecran nu îl recunoaște ca element de meniu și nu permite interacțiunea.

Zhenya folosește cu ușurință versiunea mobilă a VKontakte, dar evită Facebook: „VK este convenabil pentru mine, deoarece are o listă separată de meniuri de navigare. Are elemente și titluri care pentru mine sunt diviziunea semantică a paginii. De exemplu, titlul de prim nivel unde este indicat porecla mea - știu că acesta este titlul paginii. Știu că antetul „mesaje” împarte pagina, iar mai jos există o listă de dialoguri.

Facebook promovează accesibilitatea, dar în realitate totul este atât de rău încât este imposibil să înțelegi nimic. Îl deschid - și programul începe să înghețe, pagina este teribil de lentă, totul sare în jurul meu. Există toate butoanele peste tot și îmi spun: „Cum lucrez cu asta?!” Îl voi folosi doar dacă îmi termin clientul sau conectez o terță parte.”

cercetare

Zhenya locuiește în Vladivostok într-un cămin universitar obișnuit. Există o baie în cameră, două dulapuri, două paturi, două mese, două rafturi, un frigider. Fără gadgeturi speciale, dar, potrivit lui, nu sunt necesare. „Deficiența de vedere nu înseamnă că nu voi putea merge sau nu voi găsi o cale. Dar aș putea și m-aș dota cu bucurie cu o casă inteligentă dacă aș avea consumabilele. Pur și simplu nu am bani să cumpăr componente. Pentru o studentă să cheltuiască cinci mii pe taxe doar pentru a o arunca este foarte neprofitabil.”

Zhenya locuiește cu o fată, ajută în multe feluri prin casă: „împrăștie sandvișuri, toarnă ceai, spălă rufe. Prin urmare, am avut mai mult timp să mă relaxez și să fac lucrurile pe care le iubesc.”

De exemplu, Zhenya are un grup muzical unde cântă la chitară electrică. A aflat și după accidentare. În 2016, a petrecut trei luni într-un centru de reabilitare, unde a cerut unui profesor să-l ajute cu chitara. La început m-am jucat cu cusătura unei cămăși întoarsă pe dos. Apoi am construit un mediator.

„Am luat un bandaj pentru a întări mâna, care este folosit, de exemplu, de karateka, l-am tăiat în locurile în care sunt separate degetele și l-am tras pe antebraț. Există un tampon de spumă acolo care protejează peria de deteriorare - la ea am cusut un pick pe care fratele meu a tăiat-o dintr-o spatulă de plastic pentru mine. S-a dovedit a fi o limbă atât de lungă de plastic, pe care o folosesc pentru a cânta pe coarde - ciupând și zbârnâit.”

Explozia i-a explodat timpanele, așa că Zhenya nu poate auzi frecvențele joase. Chitara lui nu are a șasea coardă (cea mai joasă), iar a cincea este acordată diferit. Cântă mai ales piese solo.

Dar principalele activități rămân dezvoltarea și cercetarea.

Mână protetică

Cum este să asculți codul la 1000 de cuvinte pe minut

Unul dintre proiecte este dezvoltarea unei proteze de membru superior cu un sistem de control inteligent. În 2016, Zhenya a venit la persoana care dezvolta proteza și a început să-l ajute cu testarea. În 2017, au participat la hackatonul Neurostart. Într-o echipă de trei persoane, Zhenya a programat controlere de nivel scăzut. Alți doi au construit modelele ei înșiși și au predat rețelele neuronale pentru sistemul de control.

Acum Zhenya a preluat întreaga parte software a proiectului. Folosește Myo Armband pentru a citi potențialele musculare, construiește măști pe baza acestora și aplică modele de rețele neuronale deasupra pentru a recunoaște gesturile - pe care este construit sistemul de control.

„Brățara are opt senzori. Ele transmit modificări potențiale către orice dispozitiv de intrare. Am eliminat SDK-ul lor cu propriile mele mâini, am decompilat tot ce era necesar și am scris propria mea lib în Python pentru a citi datele. Desigur, nu există suficiente date. Chiar dacă aș pune un miliard de senzori pe piele, tot nu va fi suficient. Pielea se mișcă peste mușchi și datele se amestecă.”

În viitor, Zhenya plănuiește să instaleze mai mulți senzori sub piele și mușchi. Ar încerca acum - dar astfel de operațiuni sunt interzise în Rusia. Dacă un chirurg implantează echipament necertificat sub pielea unei persoane, își va pierde diploma. Cu toate acestea, Zhenya și-a cusut un senzor în mână - o etichetă RFID, ca în cheile electronice, pentru a deschide un interfon sau orice încuietoare de care va fi legată cheia.

Ochi artificial

Împreună cu Bogdan Shcheglov, biochimist și biofizician, Zhenya lucrează la un prototip de ochi artificial. Bogdan este angajat în modelarea 3D a globului ocular și conectând toate microcircuitele într-un model tridimensional cu nervul optic, Zhenya construiește un model matematic.

„Am studiat o mulțime de literatură despre analogi existenți, tehnologii care erau pe piață și sunt acum și am realizat că recunoașterea imaginii nu este relevantă. Dar am aflat că anterior fusese creată o matrice pentru înregistrarea fotonilor și a energiei acestora. Am decis să dezvoltăm o matrice similară cu dimensiuni reduse, care să fie capabilă să înregistreze cel puțin un set minim de fotoni și să construiască un impuls electric pe baza acestora. În acest fel scăpăm de stratul intermediar al unei imagini clare și de recunoașterea acesteia - lucrăm direct.”

Rezultatul va fi o viziune care nu este chiar în sensul clasic. Dar, după cum spune Zhenya, restul nervului optic trebuie să perceapă furnizarea de impulsuri electrice în același mod ca de la un ochi real. În 2018, au discutat despre proiect cu rectorul Universității Tehnice Marine, Gleb Turishchin, și cu mentorul Skolkovo Olga Velichko. Ei au confirmat că această problemă poate fi rezolvată folosind tehnologii care există deja în lume.

„Dar această sarcină este chiar mai dificilă decât dezvoltarea protezelor. Nici măcar nu putem face un experiment pe broaște pentru a verifica cât de bine retina generează impulsuri, cum depind acestea de lumină diferită, care zonă generează mai mult, care mai puțin. Avem nevoie de finanțare care să ne permită să închiriem un laborator și să angajăm oameni care să descompună sarcinile și să reducă termenele limită. Plus costul tuturor materialelor necesare. De regulă, totul se reduce la bani.”

Birocraţie

Bogdan și Zhenya au solicitat finanțare la Skolkovo, dar au fost refuzați - doar produsele finite cu potențial comercial merg acolo, și nu proiectele de cercetare aflate în stadiu incipient.

În ciuda întregii originalități din povestea lui Zhenya, în ciuda abilităților și a succeselor sale inspiratoare, cineva este surprins de ciudatul ghinion birocratic. Este deosebit de enervant să auzi despre asta pe fundalul știrilor. Iată un alt „produs de care oamenii au nevoie” (o aplicație foto, optimizare publicitară sau noi tipuri de chat) care își primește milioane de dolari în venituri și investiții. Dar un entuziast necunoscut nu știe ce să facă cu ideile sale.

Anul acesta, Zhenya a câștigat un studiu gratuit de șase luni în Austria în cadrul unui program de parteneriat între universități - dar nu poate merge acolo. Pentru a confirma o viză, sunt necesare garanții că are bani pentru locuință și viață în Salzburg.

„Apelarea la fonduri nu a dat rezultate, deoarece finanțarea este oferită doar pentru programele complete de diplomă”, spune Zhenya, „Apelul la Universitatea din Salzburg în sine nu a dat rezultate - universitatea nu are propriile cămine și nu ne poate ajuta cu cazarea.

Am scris la zece fonduri și doar trei sau patru mi-au răspuns. Mai mult, ei au răspuns că nu li s-a potrivit diploma mea științifică - aveau nevoie de master și mai mari. Realizările mele științifice în studiile de licență nu sunt apreciate de ei. Dacă studiați la o universitate locală, aveți o diplomă de licență și sunteți angajat în cercetare tehnică, atunci puteți aplica în cadrul universității. Dar pentru o persoană din străinătate, din păcate, nu are asta.

Am contactat aproximativ același număr de fonduri rusești. La Skolkovo mi-au spus: scuze, dar lucrăm doar cu maeștri. Alte fundații mi-au spus că nu au finanțare timp de șase luni, sau lucrează doar cu programe de diplomă, sau nu finanțează persoane fizice. Și fundațiile Prokhorov și Potanin nici nu mi-au răspuns.

Am primit o scrisoare de la Yandex că sunt angajați într-o mare organizație de caritate și compania nu are în prezent finanțare, dar îmi doresc toate cele bune.

Am fost chiar de acord cu o finanțare țintită pe contract, care să-mi permită să merg să studiez și, ca urmare, aș aduce ceva pentru companie. Dar totul se oprește la un nivel scăzut de comunicare. Înțeleg despre ce este vorba. Oamenii care lucrează la apeluri telefonice și la corespondență lucrează pur și simplu conform documentelor. Ei văd că a sosit o aplicație, poate chiar să fie cool. Dar ei vor scrie: scuze, nu, pentru că ori perioada de aplicare a expirat, ori nu vă calificați conform statutului dumneavoastră. Dar nu am ocazia să ajung undeva mai sus decât proprietarii fondului, pur și simplu nu am astfel de contacte.”

Dar postările despre problema lui Zhenya au început să se răspândească rapid pe rețelele sociale. În primele zile, am adunat aproximativ 50 de ruble - din cei 000 de euro necesari. Nu este prea mult timp să vă pregătiți, dar mulți oameni îi scriu deja lui Zhenya despre sprijin. Poate totul se va rezolva.

Aș fi bucuros să închei acest text lung despre întoarcerea eroului din Austria cu o experiență nouă și puternică. Sau primirea unui grant pentru unul dintre proiecte și a unei fotografii din noul laborator. Dar textul s-a oprit într-o cameră de cămin, unde sunt două dulapuri, două paturi, două mese, două rafturi, un frigider.

Mi se pare că sunt necesare comunități profesionale mari pentru a se ajuta reciproc. Soția lui Nekrasov are nevoie de bani, contacte utile, idei, sfaturi, orice. Să ne ridicăm karma.

Contactele lui Zhenya și alte figuri importantee-mail: [e-mail protejat]
Телефон: +7-914-968-93-21
Telegramă și WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Detalii pentru transferul de fonduri:
Număr card: 4276 5000 3572 4382 sau numărul de telefon +7-914-968-93-21
Portofel Yandex la numărul de telefon +7-914-968-93-21

Destinatar: Nekrasov Evgeniy

Sursa: www.habr.com

Adauga un comentariu