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

Historien om en liten tragedie og store seire til en veldig god utvikler som trenger hjelp

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

Ved Far Eastern Federal University er det et senter for prosjektaktiviteter - der finner mastere og bachelorer ingeniørprosjekter som allerede har kunder, penger og prospekter. Der holdes også forelesninger og intensivkurs. Erfarne spesialister snakker om moderne og anvendte ting.

Et av de intensive kursene var viet bruken av Docker containeriseringssystem for distribuert databehandling og orkestrering. Det ble deltatt av master- og hovedfagsstudenter i anvendt matematikk, ingeniørfag, programvareforberedelse og andre tekniske områder.

Læreren var en fyr med mørke briller, en moteriktig hårklipp, et skjerf, sosial og for selvsikker - spesielt for en 21 år gammel andreårsstudent. Han heter Evgeny Nekrasov, han kom inn i FEFU for bare to år siden.

Wunderkind

"Ja, de var eldre og hadde mer status, men jeg kan ikke si at de var mer erfarne. I tillegg holdt jeg noen ganger foredrag for klassekameratene mine for læreren vår. På et tidspunkt innså vi at han ikke kunne gi meg noe mer om objektorientert programmering, så fra tid til annen foreleste jeg for ham om OOP, moderne utvikling, GitHub og bruken av versjonskontrollsystemer.»

Hvordan det er å 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 kjenner JavaScript bedre, resten er et nivå eller to lavere. Men samtidig kan jeg programmere en kontroller i Rust eller C++ på en time. Jeg studerte ikke disse språkene med vilje. Jeg studerte dem for oppgavene som ble tildelt meg. Jeg kan bli med på ethvert prosjekt ved å studere dokumentasjonen og manualene. Jeg kjenner syntaksene til språkene, og hvilken som skal brukes spiller ingen rolle. Det er det samme med rammeverk og biblioteker - bare les dokumentasjonen og jeg forstår hvordan det fungerer. Alt bestemmes av fagområdet og oppgaven.»

Evgeniy har studert intensivt programmering siden 2013. En lærer i informatikk på videregående som var helt blind, fikk ham til å interessere seg for informatikk. Veien begynte med nettet - HTML, JavaScript, PHP.

"Jeg er bare nysgjerrig. Jeg sover ikke mye - jeg er konstant opptatt med noe, leser noe, studerer noe."

I 2015 søkte Evgeniy om "Umnik"-konkurransen for å støtte tekniske prosjekter til unge forskere over atten år. Men han var ikke atten, så han klarte ikke å vinne konkurransen - men Evgeniy ble lagt merke til av det lokale utviklermiljøet. Han møtte Sergei Milekhin, som i det øyeblikket arrangerte konferanser i Vladivostok som en del av Google Developer Fest. «Han inviterte meg dit, jeg kom, lyttet, jeg likte det. Det neste året kom jeg igjen, ble mer og mer kjent med folk, kommuniserte.»

Andrey Sitnik fra VLDC-fellesskapet begynte å hjelpe Evgeniy med nettprosjektene hans. "Jeg trengte å bygge en multi-threaded web socket-applikasjon. Jeg tenkte veldig lenge på hvordan jeg skulle gjøre dette i PHP, og henvendte meg til Andrey. Han sa til meg, "ta node.js, npm-pakker som er på Internett, og ikke knekk hodet. Og generelt er det kult å flytte åpen kildekode." Så jeg forbedret engelsken min, begynte å lese dokumentasjon og legge ut prosjekter på GitHub.»

I 2018 holdt Evgeniy allerede presentasjoner på Google Dev Fest, og snakket om utviklingen innen tilgjengelige grensesnitt, proteser for øvre lemmer, utvikling av nevrale grensesnitt og kontaktløse adgangskontrollsystemer. Nå går Evgeniy sitt andre år på en bachelorgrad i programvareteknikk, men han har allerede fullført det og fullfører sitt siste arbeid.

"Jeg ble bedt om å implementere datastrukturen i en hashtabell. Dette er en standard ting som gis til alle på universitetet. Jeg endte opp med 12 tusen linjer med kode og en haug med krykker," sier Evgeniy med en latter, "jeg bygde en hash-tabell og dens modifiserte struktur i JavaScript for å lese data raskere. Og læreren sier: «Jeg trenger at du skriver det som er lettere for meg, slik at jeg kan vurdere det.» Det var veldig irriterende."

Evgeniys personlige prosjekter ser mye mer interessante ut. Den første av disse er utviklingen av nettstandarder for personer med fysiske funksjonshemninger. Han ønsker å lage en ressurs som gir hjelpemidler ut av esken slik at personer med synshemninger enkelt kan bruke den uten å bekymre seg for å gå glipp av noe informasjon. Evgeniy kjenner godt til dette problemet, fordi han selv mistet synet.

Skade

«Jeg pleide å være en vanlig tenåring, med alle lemmer på plass. I 2012 sprengte jeg meg selv i luften. Jeg gikk ut på tur med en venn, plukket opp en sylinder på gaten, og den eksploderte i hendene mine. Høyre hånd ble revet av, venstre hånd var forkrøplet, synet ble skadet og hørselen min ble svekket. I seks måneder lå jeg bare på operasjonsbord.

Venstre hånd ble satt sammen i deler, plater og strikkepinner ble installert. Etter fem måneder kunne jeg jobbe for henne.

Etter skaden kunne jeg ikke se noe i det hele tatt. Men legene klarte å gjenopprette lysoppfatningen. Det var ingenting igjen av øyet mitt bortsett fra skallet. Alt inni ble byttet ut - glasslegemene, linsene. Alt mulig."

I 2013 gikk Zhenya for å studere ved en kriminalomsorgsskole for barn med synshemming. Den informatikklæreren, som var helt blind, lærte ham hvordan han skulle bruke en datamaskin igjen. Til dette formål brukes spesielle programmer - skjermlesere. De får tilgang til operativsystemets APIer for å få tilgang til grensesnittet og endre måten de kontrolleres litt på.

Zhenya kaller seg selv en ivrig Linux-bruker; han bruker Debian. Ved hjelp av tastaturet navigerer han gjennom grensesnittelementene, og en talesyntese gir uttrykk for hva som skjer.

"Nå vil du bare høre mellomrom," forteller han meg før han slår på programmet.

Det høres ut som en kode eller romvesenprat, men i virkeligheten er det vanlig russisk eller engelsk, det er bare at synthesizeren snakker med en utrolig hastighet for det utrente øret.

«Det var ikke vanskelig å lære dette. Først jobbet jeg på Windows og brukte skjermleseren Jaws. Jeg brukte det og tenkte: "Herre, hvordan kan du jobbe i så lav hastighet." Jeg zoomet inn og skjønte at ørene var krøllet til et rør. Jeg returnerte den og begynte gradvis å øke den med 5-10 prosent hver uke. Jeg akselererte synthesizeren til hundre ord, så enda mer, og igjen og igjen. Nå snakker han tusen ord i minuttet.»

Zhenya skriver i en vanlig tekstredigerer - Gedit eller Nano. Kopierer kilder fra Github, starter skjermleseren og lytter til koden. For å sikre at den lett kan leses og forstås av andre utviklere, bruker den linters og konfigurasjoner hele veien. Men Zhenya kan ikke bruke utviklingsmiljøer fordi de er utilgjengelige for blinde på grunn av implementeringen.

"De er laget på en slik måte at vinduet deres bestemmes av systemet, og alt inne i vinduet blir ikke sett av skjermleseren fordi den ikke får tilgang til det. Jeg har nå kontaktet JetBrains direkte for å prøve å lage noen patcher til deres miljøer. De sendte meg PyCharm-kildene. IDE er implementert på Intellij Idea, så alle endringer kan brukes både der og der."

En annen barriere er mangelen på overholdelse av vanlige nettstandarder. For eksempel ser vi en stor overskrift på en side. Mange utviklere implementerer dette ved å bruke en span-tag for å stramme skriften til ønsket størrelse, og det ender opp med å se bra ut. Men siden teksten ikke er en tittel for systemet, gjenkjenner ikke skjermleseren den som et menyelement og tillater ikke interaksjon.

Zhenya bruker enkelt mobilversjonen av VKontakte, men unngår Facebook: «VK er praktisk for meg fordi den har en egen liste over navigasjonsmenyer. Den har elementer og overskrifter som for meg er den semantiske inndelingen av siden. For eksempel overskriften på første nivå der kallenavnet mitt er angitt - jeg vet at dette er tittelen på siden. Jeg vet at "meldinger"-overskriften deler siden, og nedenfor er det en liste over dialoger.

Facebook fremmer tilgjengelighet, men i virkeligheten er alt så dårlig at det er umulig å forstå noe som helst. Jeg åpner den - og programmet begynner å fryse, siden er fryktelig treg, alt hopper rundt for meg. Det er alle knapper overalt, og jeg tenker "hvordan jobber jeg med dette?!" Jeg vil bare bruke den hvis jeg fullfører klienten min eller kobler til en tredjepart."

forskning

Zhenya bor i Vladivostok i en vanlig universitetshybel. Det er bad på rommet, to garderober, to senger, to bord, to hyller, kjøleskap. Ingen spesielle dingser, men ifølge ham trengs de ikke. "Synshemming betyr ikke at jeg ikke kan gå eller ikke finner en vei. Men jeg kunne og ville med glede utstyre meg med et smarthus hvis jeg hadde forbruksmateriellet. Jeg har rett og slett ikke penger til å kjøpe komponenter. Det er veldig ulønnsomt for en student å bruke fem tusen på honorarer bare for å stikke rundt henne.

Zhenya bor sammen med en jente, hun hjelper på mange måter rundt i huset: "spre smørbrød, hell te, vask. Derfor hadde jeg mer tid til å slappe av og gjøre tingene jeg elsker.»

For eksempel har Zhenya en musikalsk gruppe der han spiller elektrisk gitar. Han lærte også etter skaden. I 2016 tilbrakte han tre måneder på et rehabiliteringssenter, hvor han ba en lærer hjelpe ham med gitaren. Først lekte jeg med sømmen på en skjorte vendt ut. Så bygde jeg en mekler.

«Jeg tok en bandasje for å styrke hånden, som for eksempel brukes av karatekaer, klippet den opp ved fingerskillene og dro den opp på underarmen. Det er en skumpute der som beskytter børsten mot skade - til den sydde jeg en hakke som broren min skar ut av en plastspatel til meg. Det viste seg å være en så lang plasttunge, som jeg bruker til å spille på strengene - plukking og klimring.»

Eksplosjonen blåste ut trommehinnene hans, så Zhenya kan ikke høre lave frekvenser. Gitaren hans har ikke den sjette (laveste) strengen, og den femte er stemt annerledes. Han spiller for det meste solopartier.

Men hovedaktivitetene er fortsatt utvikling og forskning.

Armprotese

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

Et av prosjektene er utvikling av en overekstremitetsprotese med smart kontrollsystem. I 2016 kom Zhenya til personen som utviklet protesen og begynte å hjelpe ham med testing. I 2017 deltok de i Neurostart hackathon. I et team på tre personer programmerte Zhenya lavnivåkontrollere. To til konstruerte modellene selv og lærte nevrale nettverk for kontrollsystemet.

Nå har Zhenya overtatt hele programvaredelen av prosjektet. Den bruker Myo-armbåndet til å lese muskelpotensialer, bygger masker basert på dem, og bruker nevrale nettverksmodeller på toppen for å gjenkjenne bevegelser – dette er dette kontrollsystemet er bygget på.

"Armbåndet har åtte sensorer. De overfører potensielle endringer til enhver inngangsenhet. Jeg sløyd SDK-en deres med mine egne hender, dekompilerte alt som var nødvendig, og skrev min egen lib i Python for å lese data. Selvfølgelig er det ikke nok data. Selv om jeg setter en milliard sensorer på huden min, vil det fortsatt ikke være nok. Huden beveger seg over musklene og dataene blir blandet sammen.»

I fremtiden planlegger Zhenya å installere flere sensorer under huden og musklene. Han ville prøve det nå - men slike operasjoner er forbudt i Russland. Hvis en kirurg implanterer usertifisert utstyr under en persons hud, vil han miste vitnemålet. Imidlertid sydde Zhenya en sensor i hånden hans - en RFID-brikke, som i elektroniske nøkler, for å åpne en intercom eller en hvilken som helst lås som nøkkelen vil være knyttet til.

Kunstig øye

Sammen med Bogdan Shcheglov, en biokjemiker og biofysiker, jobber Zhenya med en prototype av et kunstig øye. Bogdan er engasjert i 3D-modellering av øyeeplet og kobler alle mikrokretsene i en tredimensjonal modell med synsnerven, Zhenya bygger en matematisk modell.

"Vi studerte massevis av litteratur om eksisterende analoger, teknologier som var på markedet og er nå, og innså at bildegjenkjenning ikke er relevant. Men vi lærte at det tidligere var laget en matrise for å registrere fotoner og deres energi. Vi bestemte oss for å utvikle en lignende matrise i redusert størrelse, som ville være i stand til å registrere minst et minimum sett med fotoner og bygge en elektrisk puls på basis av dem. På denne måten blir vi kvitt det mellomliggende laget av et klart bilde og dets gjenkjennelse - vi jobber bare direkte."

Resultatet blir syn som ikke er helt i klassisk forstand. Men som Zhenya sier, må resten av synsnerven oppfatte tilførselen av elektriske impulser på samme måte som fra et ekte øye. I 2018 diskuterte de prosjektet med rektor ved Marine Technical University, Gleb Turishchin, og Skolkovo-mentor Olga Velichko. De bekreftet at dette problemet kan løses ved hjelp av teknologier som allerede eksisterer i verden.

"Men denne oppgaven er enda vanskeligere enn å utvikle proteser. Vi kan ikke engang gjennomføre et eksperiment på frosker for å sjekke hvor godt netthinnen genererer impulser, hvordan de er avhengige av forskjellig lys, hvilket område som genererer mer, hvilket mindre. Vi trenger finansiering som gjør at vi kan leie et laboratorium og ansette folk til å dekomponere oppgaver og redusere tidsfrister. Pluss kostnadene for alle nødvendige materialer. Som regel handler alt om penger.»

Byråkrati

Bogdan og Zhenya søkte Skolkovo om finansiering, men fikk avslag – kun ferdige produkter med kommersielt potensial går dit, og ikke forskningsprosjekter i begynnende stadium.

Til tross for all originaliteten i Zhenyas historie, til tross for hans evner og inspirerende suksesser, blir man overrasket over den merkelige byråkratiske uflaksen. Det er spesielt irriterende å høre om dette på bakgrunn av nyhetene. Her er et annet "produkt som folk trenger" (en fotoapplikasjon, annonseoptimalisering eller nye typer chatter) som mottar sine millioner av dollar i inntekter og investeringer. Men en ukjent entusiast vet ikke hva han skal gjøre med ideene sine.

I år vant Zhenya en gratis seks måneders studie i Østerrike under et partnerskapsprogram mellom universiteter - men han kan ikke gå dit. For å bekrefte visum trengs det garantier for at han har penger til bolig og liv i Salzburg.

"Å appellere til midler ga ikke resultater, fordi midler gis kun for fullverdige diplomprogrammer," sier Zhenya, "Å appellere til Universitetet i Salzburg selv gjorde det heller ikke - universitetet har ikke egne sovesaler og kan ikke hjelpe oss med overnatting.

Jeg skrev til ti fond, og bare tre eller fire svarte meg. Dessuten svarte de at min vitenskapelige grad ikke passet dem - de trengte mestere og høyere. Mine vitenskapelige prestasjoner i lavere studier blir ikke verdsatt av dem. Hvis du studerer ved et lokalt universitet, du har en bachelorgrad og er engasjert i teknisk forskning, så kan du søke innenfor universitetet. Men for en person fra utlandet har de dessverre ikke dette.

Jeg kontaktet omtrent like mange russiske fond. I Skolkovo sa de til meg: beklager, men vi jobber bare med mestere. Andre stiftelser fortalte meg at de ikke har midler på seks måneder, eller de jobber kun med diplomprogrammer, eller de finansierer ikke enkeltpersoner. Og Prokhorov- og Potanin-stiftelsene svarte meg ikke en gang.

Jeg mottok et brev fra Yandex om at de er engasjert i stor veldedighet og at selskapet for øyeblikket ikke har finansiering, men de ønsker meg alt godt.

Jeg gikk til og med med på kontraktsrettet finansiering, som ville tillate meg å gå og studere, og som et resultat ville jeg ta med noe til selskapet. Men alt stopper på et lavt kommunikasjonsnivå. Jeg forstår hva dette handler om. Folk som jobber med telefonsamtaler og post jobber rett og slett etter dokumenter. De ser at en søknad har kommet, det kan til og med være kult. Men de vil skrive: beklager, nei, for enten er søknadsfristen utløpt eller så kvalifiserer du ikke i henhold til statusen din. Men jeg har ikke mulighet til å nå et sted høyere enn eierne av fondet, jeg har rett og slett ikke slike kontakter.»

Men innlegg om Zhenyas problem begynte raskt å spre seg over sosiale nettverk. I løpet av de første dagene samlet vi rundt 50 000 rubler - av de nødvendige 12 000 euro. Det er ikke mye tid til å gjøre seg klar, men mange mennesker skriver allerede til Zhenya om støtte. Kanskje alt ordner seg.

Jeg vil gjerne avslutte denne lange teksten når helten kommer tilbake fra Østerrike med en ny og mektig opplevelse. Eller motta stipend til et av prosjektene, og et bilde fra det nye laboratoriet. Men teksten stoppet i en hybel, der det er to skap, to senger, to bord, to hyller, et kjøleskap.

Det virker på meg som det trengs store fagmiljøer for å hjelpe hverandre. Nekrasovs kone trenger penger, nyttige kontakter, ideer, råd, hva som helst. La oss heve karmaen vår.

Zhenyas kontakter og andre viktige figurere-post: [e-postbeskyttet]
Телефон: +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øring av midler:
Kortnummer: 4276 5000 3572 4382 eller telefonnummer +7-914-968-93-21
Yandex-lommebok på telefonnummer +7-914-968-93-21

Adressat: Nekrasov Evgeniy

Kilde: www.habr.com

Legg til en kommentar