Hvordan det er at lytte til kode med 1000 ord i minuttet

Historien om en lille tragedie og store sejre for en meget god udvikler, der har brug for hjælp

Hvordan det er at lytte til kode med 1000 ord i minuttet

På Far Eastern Federal University er der et center for projektaktiviteter - der finder kandidater og bachelorer ingeniørprojekter, der allerede har kunder, penge og udsigter. Der afholdes også foredrag og intensive kurser. Erfarne specialister taler om moderne og anvendte ting.

Et af de intensive kurser var viet til brugen af ​​Docker containeriseringssystemet til distribueret databehandling og orkestrering. Det blev overværet af mestre og kandidatstuderende i anvendt matematik, teknik, softwareforberedelse og andre tekniske områder.

Læreren var en fyr med mørke briller, en moderigtig klipning, et tørklæde, omgængelig og for selvsikker - især for en 21-årig andenårselev. Hans navn er Evgeny Nekrasov, han kom ind i FEFU for bare to år siden.

Wunderkind

»Ja, de var ældre og havde mere status, men jeg kan ikke sige, at de var mere erfarne. Derudover holdt jeg nogle gange foredrag for mine klassekammerater for vores lærer. På et tidspunkt indså vi, at han ikke kunne give mig noget mere om objektorienteret programmering, så fra tid til anden holdt jeg foredrag for ham om OOP, moderne udvikling, GitHub og brugen af ​​versionskontrolsystemer."

Hvordan det er at lytte til kode med 1000 ord i minuttet

Evgeniy kan skrive i Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C og Assembler. "Jeg kender JavaScript bedre, resten er et niveau eller to lavere. Men samtidig kan jeg programmere en controller i Rust eller C++ på en time. Jeg studerede ikke disse sprog med vilje. Jeg studerede dem til de opgaver, der blev tildelt mig. Jeg kan deltage i ethvert projekt ved at studere dokumentationen og manualerne. Jeg kender sprogenes syntakser, og hvilken man skal bruge er lige meget. Det er det samme med rammer og biblioteker - bare læs dokumentationen, så forstår jeg, hvordan det fungerer. Alt er bestemt af fagområdet og opgaven.”

Evgeniy har intensivt studeret programmering siden 2013. En gymnasielærer i datalogi, som var helt blind, fik ham til at interessere sig for datalogi. Stien begyndte med nettet - HTML, JavaScript, PHP.

"Jeg er bare nysgerrig. Jeg sover ikke meget - jeg har konstant travlt med noget, læse noget, studere noget."

I 2015 ansøgte Evgeniy om konkurrencen "Umnik" for at støtte tekniske projekter af unge forskere over atten år. Men han var ikke atten, så det lykkedes ham ikke at vinde konkurrencen - men Evgeniy blev bemærket af det lokale udviklersamfund. Han mødte Sergei Milekhin, som i det øjeblik organiserede konferencer i Vladivostok som en del af Google Developer Fest. "Han inviterede mig dertil, jeg kom, lyttede, jeg kunne lide det. Det næste år kom jeg igen, lærte folk mere og mere at kende, kommunikerede.”

Andrey Sitnik fra VLDC-fællesskabet begyndte at hjælpe Evgeniy med hans webprojekter. "Jeg havde brug for at bygge en multi-threaded web socket-applikation. Jeg tænkte i meget lang tid på, hvordan man gør dette i PHP, og henvendte mig til Andrey. Han fortalte mig, "tag node.js, npm-pakker, der er på internettet, og bræk ikke dit hoved. Og generelt er det fedt at flytte open source." Så jeg forbedrede mit engelsk, begyndte at læse dokumentation og poste projekter på GitHub.”

I 2018 holdt Evgeniy allerede præsentationer på Google Dev Fest, hvor han talte om udviklingen inden for tilgængelige grænseflader, proteser i overekstremiteterne, udviklingen af ​​neurale grænseflader og kontaktløse adgangskontrolsystemer. Nu er Evgeniy i gang med sit andet år på en bachelorgrad i Software Engineering, men han har allerede gennemført det med succes og er ved at afslutte sit sidste arbejde.

"Jeg fik besked på at implementere datastrukturen i en hash-tabel. Dette er en standard ting, der gives til alle på universitetet. Jeg endte med 12 tusind linjer kode og en masse krykker," siger Evgeniy med et grin, "Jeg byggede en hash-tabel og dens ændrede struktur i JavaScript for at læse data hurtigere. Og læreren siger: "Jeg har brug for, at du skriver det, der er nemmere for mig, så jeg kan vurdere det." Det var meget irriterende."

Evgeniys personlige projekter ser meget mere interessante ud. Den første af disse er udviklingen af ​​webstandarder for mennesker med fysiske handicap. Han vil skabe en ressource, der giver hjælpemidler ud af boksen, så folk med synshandicap nemt kan bruge det uden at bekymre sig om at gå glip af nogle oplysninger. Evgeniy kender godt dette problem, fordi han selv mistede synet.

Skade

“Jeg plejede at være en almindelig teenager, med alle mine lemmer på plads. I 2012 sprængte jeg mig selv i luften. Jeg gik en tur med en ven, samlede en cylinder op på gaden, og den eksploderede i mine hænder. Min højre hånd blev revet af, min venstre hånd var forkrøblet, mit syn var beskadiget, og min hørelse var nedsat. I seks måneder lå jeg bare på operationsborde.

Venstre hånd blev samlet i dele, plader og strikkepinde blev installeret. Efter fem måneder var jeg i stand til at arbejde for hende.

Efter skaden kunne jeg ikke se noget som helst. Men lægerne formåede at genoprette lysopfattelsen. Der var intet tilbage af mit øje undtagen skallen. Alt indeni blev udskiftet - glaslegemerne, linserne. Alt muligt."

I 2013 gik Zhenya for at studere på en kriminalskole for børn med synshandicap. Den datalogilærer, som var fuldstændig blind, lærte ham at bruge en computer igen. Til dette formål bruges specielle programmer - skærmlæsere. De får adgang til operativsystemets API'er for at få adgang til grænsefladen og ændre den måde, de styres lidt på.

Zhenya kalder sig selv en ivrig Linux-bruger; han bruger Debian. Ved hjælp af tastaturet navigerer han gennem interface-elementerne, og en talesynthesizer fortæller, hvad der sker.

"Nu hører du bare mellemrum," siger han til mig, før han tænder for programmet.

Det lyder som en kode eller alien-snak, men i virkeligheden er det almindelig russisk eller engelsk, det er bare, at synthesizeren taler med en utrolig hastighed for det utrænede øre.

"Det var ikke svært at lære det her. Først arbejdede jeg på Windows og brugte skærmlæseren Jaws. Jeg brugte det og tænkte: "Herre, hvordan kan du arbejde med så langsom en hastighed." Jeg zoomede ind og indså, at ørerne var krøllet til et rør. Jeg returnerede det tilbage og begyndte gradvist at øge det med 5-10 procent hver uge. Jeg accelererede synthesizeren til hundrede ord, så endnu mere, og igen og igen. Nu taler han tusind ord i minuttet.”

Zhenya skriver i en almindelig teksteditor - Gedit eller Nano. Kopierer kilder fra Github, starter skærmlæseren og lytter til koden. For at sikre, at den let kan læses og forstås af andre udviklere, bruger den linters og konfigurationer hele vejen igennem. Men Zhenya kan ikke bruge udviklingsmiljøer, fordi de er utilgængelige for blinde på grund af deres implementering.

”De er lavet på en sådan måde, at deres vindue er bestemt af systemet, og alt inde i vinduet ses ikke af skærmlæseren, fordi den ikke kan få adgang til det. Jeg har nu kontaktet JetBrains direkte for at prøve at lave nogle patches til deres miljøer. De sendte mig PyCharm-kilderne. IDE er implementeret på Intellij Idea, så alle ændringer kan anvendes både der og der."

En anden barriere er den manglende overholdelse af almindelige webstandarder. For eksempel ser vi en stor overskrift på en side. Mange udviklere implementerer dette ved hjælp af et span-tag for at stramme skrifttypen til den ønskede størrelse, og det ender med at se fint ud. Men da teksten ikke er en titel for systemet, genkender skærmlæseren den ikke som et menuelement og tillader ikke interaktion.

Zhenya bruger nemt mobilversionen af ​​VKontakte, men undgår Facebook: "VK er praktisk for mig, fordi den har en separat liste over navigationsmenuer. Den har elementer og overskrifter, der for mig er den semantiske opdeling af siden. For eksempel overskriften på første niveau, hvor mit kaldenavn er angivet - jeg ved, at dette er titlen på siden. Jeg ved, at "beskeder"-headeren deler siden op, og nedenfor er der en liste over dialoger.

Facebook fremmer tilgængelighed, men i virkeligheden er alt så dårligt, at det er umuligt at forstå noget som helst. Jeg åbner den – og programmet begynder at fryse, siden er frygtelig langsom, alt hopper rundt for mig. Der er alle knapper overalt, og jeg tænker, "hvordan arbejder jeg overhovedet med det her?!" Jeg vil kun bruge det, hvis jeg afslutter min klient eller forbinder en tredjepart."

forskning

Zhenya bor i Vladivostok på et almindeligt universitetskollegium. Der er badeværelse på værelset, to skabe, to senge, to borde, to hylder, et køleskab. Ingen specielle gadgets, men ifølge ham er de ikke nødvendige. "Synsnedsættelse betyder ikke, at jeg ikke kan gå eller ikke kan finde en vej. Men jeg kunne og ville med glæde udstyre mig med et smart hjem, hvis jeg havde forbrugsstofferne. Jeg har simpelthen ikke penge til at købe komponenter. Det er meget urentabelt for en studerende at bruge fem tusinde på honorarer bare for at finde rundt i hende.

Zhenya bor sammen med en pige, hun hjælper på mange måder rundt i huset: "smøre sandwich, hæld te, vaske tøj. Derfor havde jeg mere tid til at slappe af og gøre de ting, jeg elsker.”

For eksempel har Zhenya en musikalsk gruppe, hvor han spiller på elektrisk guitar. Det lærte han også efter skaden. I 2016 tilbragte han tre måneder på et rehabiliteringscenter, hvor han bad en lærer om at hjælpe ham med hans guitar. Først legede jeg med en skjortesøm vendt vrangen ud. Så byggede jeg en mediator.

”Jeg tog en forbinding for at styrke hånden, som for eksempel bruges af karatekaer, klippede den op de steder, hvor fingrene er adskilt, og trak den op på underarmen. Der er en skumpude der, der beskytter børsten mod skader - til den syede jeg en pick, som min bror skar ud af en plastikspatel til mig. Det viste sig at være sådan en lang plastiktunge, som jeg bruger til at spille på strengene – plukker og klimprer.”

Eksplosionen blæste hans trommehinder ud, så Zhenya kan ikke høre lave frekvenser. Hans guitar har ikke den sjette (laveste) streng, og den femte er anderledes stemt. Han spiller for det meste solopartier.

Men hovedaktiviteterne er fortsat udvikling og forskning.

Håndprotese

Hvordan det er at lytte til kode med 1000 ord i minuttet

Et af projekterne er udvikling af en overekstremitetsprotese med et smart kontrolsystem. I 2016 kom Zhenya til den person, der udviklede protesen, og begyndte at hjælpe ham med at teste. I 2017 deltog de i Neurostart hackathon. I et team på tre personer programmerede Zhenya lavniveau-controllere. To mere konstruerede selv modellerne og underviste i neurale netværk til kontrolsystemet.

Nu har Zhenya overtaget hele softwaredelen af ​​projektet. Den bruger Myo-armbåndet til at aflæse muskelpotentialer, bygger masker baseret på dem og anvender neurale netværksmodeller på toppen for at genkende bevægelser - det er det, kontrolsystemet er bygget på.

"Armbåndet har otte sensorer. De overfører potentielle ændringer til enhver inputenhed. Jeg rensede deres SDK med mine egne hænder, dekompilerede alt, hvad der var nødvendigt, og skrev min egen lib i Python for at læse data. Selvfølgelig er der ikke nok data. Selvom jeg sætter en milliard sensorer på min hud, vil det stadig ikke være nok. Huden bevæger sig over musklerne, og dataene bliver blandet sammen."

I fremtiden planlægger Zhenya at installere flere sensorer under huden og musklerne. Han ville prøve det nu - men sådanne operationer er forbudt i Rusland. Hvis en kirurg implanterer ucertificeret udstyr under en persons hud, mister han sit eksamensbevis. Zhenya syede dog en sensor ind i sin hånd - et RFID-mærke, som i elektroniske nøgler, for at åbne et samtaleanlæg eller en hvilken som helst lås, som nøglen vil blive knyttet til.

Kunstigt øje

Sammen med Bogdan Shcheglov, en biokemiker og biofysiker, arbejder Zhenya på en prototype af et kunstigt øje. Bogdan er engageret i 3D-modellering af øjeæblet og forbinder alle mikrokredsløbene i en tredimensionel model med synsnerven, Zhenya bygger en matematisk model.

"Vi studerede et væld af litteratur om eksisterende analoger, teknologier, der var på markedet og er nu, og indså, at billedgenkendelse ikke er relevant. Men vi lærte, at der tidligere var blevet skabt en matrix til registrering af fotoner og deres energi. Vi besluttede at udvikle en lignende matrix i en reduceret størrelse, som ville være i stand til at registrere mindst et minimumssæt af fotoner og bygge en elektrisk impuls på basis af dem. På denne måde slipper vi for det mellemliggende lag af et klart billede og dets genkendelse - vi arbejder bare direkte."

Resultatet bliver et syn, der ikke er helt i klassisk forstand. Men som Zhenya siger, skal resten af ​​synsnerven opfatte tilførslen af ​​elektriske impulser på samme måde som fra et rigtigt øje. I 2018 diskuterede de projektet med rektor for Marine Technical University, Gleb Turishchin, og Skolkovo-mentor Olga Velichko. De bekræftede, at dette problem kan løses ved hjælp af teknologier, der allerede findes i verden.

"Men denne opgave er endnu sværere end at udvikle proteser. Vi kan ikke engang udføre et eksperiment på frøer for at kontrollere, hvor godt nethinden genererer impulser, hvordan de er afhængige af forskelligt lys, hvilket område der genererer mere, hvilket mindre. Vi har brug for finansiering, der vil give os mulighed for at leje et laboratorium og ansætte folk til at nedbryde opgaver og reducere deadlines. Plus omkostningerne til alle de nødvendige materialer. Som regel handler det hele om penge.”

Bureaukrati

Bogdan og Zhenya ansøgte Skolkovo om finansiering, men fik afslag - kun færdige produkter med kommercielt potentiale kommer dertil, og ikke forskningsprojekter på det begyndende stadium.

På trods af al originaliteten i Zhenyas historie, på trods af hans evner og inspirerende succeser, bliver man overrasket over den mærkelige bureaukratiske uheld. Det er især irriterende at høre om dette på baggrund af nyhederne. Her er et andet "produkt, som folk har brug for" (en fotoapplikation, annonceoptimering eller nye typer chats), der modtager sine millioner af dollars i omsætning og investering. Men en ukendt entusiast ved ikke, hvad han skal stille op med sine ideer.

I år vandt Zhenya et gratis seks måneders studie i Østrig under et partnerskabsprogram mellem universiteter - men han kan ikke tage dertil. For at bekræfte et visum skal der garanteres for, at han har penge til bolig og liv i Salzburg.

"At appellere til midler gav ikke resultater, fordi der kun ydes midler til fulde diplomprogrammer," siger Zhenya, "At appellere til universitetet i Salzburg selv gjorde det heller ikke - universitetet har ikke sine egne sovesale og kan ikke hjælpe os med overnatning.

Jeg skrev til ti fonde, og kun tre eller fire svarede mig. Desuden svarede de, at min videnskabelige grad ikke passede dem - de havde brug for mestre og højere. Mine videnskabelige præstationer i bachelorstudier værdsættes ikke af dem. Hvis du læser på et lokalt universitet, har du en bachelorgrad og beskæftiger dig med teknisk forskning, så kan du søge inden for universitetet. Men for en person fra udlandet har de desværre ikke dette.

Jeg kontaktede omtrent det samme antal russiske fonde. I Skolkovo sagde de til mig: undskyld, men vi arbejder kun med mestre. Andre fonde fortalte mig, at de ikke har midler i seks måneder, eller de arbejder kun med diplomuddannelser, eller de finansierer ikke enkeltpersoner. Og Prokhorov- og Potanin-fondene svarede mig ikke engang.

Jeg modtog et brev fra Yandex om, at de er engageret i stor velgørenhed, og at virksomheden i øjeblikket ikke har finansiering, men de ønsker mig alt det bedste.

Jeg sagde endda ja til kontraktrettet finansiering, som ville give mig mulighed for at gå og studere, og som et resultat ville jeg bringe noget til virksomheden. Men alt stopper ved et lavt kommunikationsniveau. Jeg forstår, hvad det her handler om. Folk, der arbejder med telefonopkald og post, arbejder simpelthen efter dokumenter. De ser, at der er kommet en ansøgning, det kan endda være fedt. Men de vil skrive: undskyld, nej, for enten er ansøgningsfristen udløbet, eller også kvalificerer du dig ikke efter din status. Men jeg har ikke mulighed for at nå et højere sted end ejerne af fonden, jeg har simpelthen ikke sådanne kontakter.”

Men indlæg om Zhenyas problem begyndte hurtigt at sprede sig over sociale netværk. I de første par dage samlede vi omkring 50 rubler - ud af de nødvendige 000 euro. Der er ikke meget tid til at blive klar, men mange mennesker skriver allerede til Zhenya om støtte. Måske vil alt ordne sig.

Jeg ville være glad for at afslutte denne lange tekst om heltens tilbagevenden fra Østrig med en ny og kraftfuld oplevelse. Eller at få et tilskud til et af projekterne og et foto fra det nye laboratorium. Men teksten stoppede i et kollegieværelse, hvor der er to skabe, to senge, to borde, to hylder, et køleskab.

Det forekommer mig, at der skal store faglige fællesskaber til for at hjælpe hinanden. Nekrasovs kone har brug for penge, nyttige kontakter, ideer, råd, hvad som helst. Lad os hæve vores karma.

Zhenyas kontakter og andre vigtige personere-mail: [e-mail beskyttet]
Телефон: +7-914-968-93-21
Telegram og WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Detaljer for overførsel af midler:
Kortnummer: 4276 5000 3572 4382 eller telefonnummer +7-914-968-93-21
Yandex tegnebog med telefonnummer +7-914-968-93-21

Adressat: Nekrasov Evgeniy

Kilde: www.habr.com

Tilføj en kommentar