Hoe dit is om na kode te luister teen 1000 woorde per minuut

Die verhaal van 'n klein tragedie en groot oorwinnings van 'n baie goeie ontwikkelaar wat hulp nodig het

Hoe dit is om na kode te luister teen 1000 woorde per minuut

By die Federale Universiteit van die Verre Ooste is daar 'n sentrum vir projekaktiwiteite - daar vind meesters en baccalaureus ingenieursprojekte wat reeds kliënte, geld en vooruitsigte het. Lesings en intensiewe kursusse word ook daar gehou. Ervare spesialiste praat oor moderne en toegepaste dinge.

Een van die intensiewe kursusse is gewy aan die gebruik van die Docker-houerstelsel vir verspreide rekenaars en orkestrasie. Dit is bygewoon deur meesters- en nagraadse studente van toegepaste wiskunde, ingenieurswese, sagtewarevoorbereiding en ander tegniese rigtings.

Die onderwyser was ’n ou met ’n donkerbril, ’n modieuse kapsel, ’n serp, gesellig en te selfversekerd – veral vir ’n 21-jarige tweedejaarstudent. Sy naam is Evgeny Nekrasov, hy het net twee jaar gelede by FEFU ingeskryf.

Wonderkind

“Ja, hulle was ouer en het meer status gehad, maar ek kan nie sê hulle was meer ervare nie. Daarbenewens het ek soms lesings vir my klasmaats vir ons onderwyser gegee. Op 'n stadium het ons besef dat hy my niks meer oor objekgeoriënteerde programmering kon gee nie, so ek het van tyd tot tyd vir hom lesings gegee oor OOP, moderne ontwikkeling, GitHub en die gebruik van weergawebeheerstelsels.

Hoe dit is om na kode te luister teen 1000 woorde per minuut

Evgeniy kan skryf in Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C en Assembler. “Ek ken JavaScript beter, die res is 'n vlak of twee laer. Maar terselfdertyd kan ek 'n beheerder in Rust of C++ in 'n uur programmeer. Ek het hierdie tale nie doelbewus bestudeer nie. Ek het hulle bestudeer vir die take wat aan my opgedra is. Ek kan by enige projek aansluit deur die dokumentasie en handleidings te bestudeer. Ek ken die sintakse van die tale, en watter een om te gebruik maak nie regtig saak nie. Dit is dieselfde met raamwerke en biblioteke - lees net die dokumentasie en ek verstaan ​​hoe dit werk. Alles word deur die vakgebied en die taak bepaal.”

Evgeniy studeer sedert 2013 intensief programmering. ’n Hoërskool rekenaarwetenskaponderwyser wat heeltemal blind was, het hom in rekenaarwetenskap laat belangstel. Die pad het begin met die web - HTML, JavaScript, PHP.

"Ek is net nuuskierig. Ek slaap nie baie nie – ek is gedurig besig met iets, lees iets, studeer iets.”

In 2015 het Evgeniy aansoek gedoen vir die "Umnik"-kompetisie om tegniese projekte van jong wetenskaplikes ouer as agtien jaar te ondersteun. Maar hy was nie agtien nie, so hy kon nie die kompetisie wen nie - maar Evgeniy is deur die plaaslike ontwikkelaargemeenskap opgemerk. Hy het Sergei Milekhin ontmoet, wat op daardie oomblik konferensies in Vladivostok gereël het as deel van die Google Developer Fest. “Hy het my daarheen genooi, ek het gekom, geluister, ek het daarvan gehou. Die volgende jaar het ek weer gekom, mense al hoe meer leer ken, gekommunikeer.”

Andrey Sitnik van die VLDC-gemeenskap het Evgeniy met sy webprojekte begin help. "Ek moes 'n multi-threaded web socket-toepassing bou. Ek het baie lank gedink oor hoe om dit in PHP te doen, en na Andrey gewend. Hy het vir my gesê: “Neem node.js, npm-pakkette wat op die internet is, en moenie jou kop breek nie. En oor die algemeen is dit gaaf om oopbron te beweeg.” So ek het my Engels verbeter, dokumentasie begin lees en projekte op GitHub geplaas.”

In 2018 het Evgeniy reeds aanbiedings by Google Dev Fest gelewer en gesels oor ontwikkelings op die gebied van toeganklike koppelvlakke, boonste ledemaat-prosteses, die ontwikkeling van neurale koppelvlakke en kontaklose toegangsbeheerstelsels. Nou is Evgeniy in sy tweede jaar van 'n baccalaureusgraad in sagteware-ingenieurswese, maar hy het dit reeds suksesvol voltooi en voltooi sy finale werk.

"Ek is aangesê om die datastruktuur in 'n hash-tabel te implementeer. Dit is 'n standaard ding wat aan almal by die universiteit gegee word. Ek het geëindig met 12 duisend reëls kode en 'n klomp krukke,” sê Evgeniy laggend, “ek het 'n hash-tabel en sy gewysigde struktuur in JavaScript gebou om data vinniger te lees. En die onderwyser sê: "Ek het nodig dat jy skryf wat vir my makliker is sodat ek dit kan evalueer." Dit was baie irriterend.”

Evgeniy se persoonlike projekte lyk baie interessanter. Die eerste hiervan is die ontwikkeling van webstandaarde vir mense met fisieke gestremdhede. Hy wil 'n hulpbron skep wat hulptegnologie uit die boks verskaf sodat mense met gesiggestremdheid dit maklik kan gebruik sonder om bekommerd te wees dat hulle inligting mis. Evgeniy ken hierdie probleem goed, want hy het self sy sig verloor.

Besering

“Ek was vroeër 'n gewone tiener, met al my ledemate in plek. In 2012 het ek myself opgeblaas. Ek het saam met 'n vriend gaan stap, 'n silinder op straat opgetel, en dit het in my hande ontplof. My regterhand is afgeskeur, my linkerhand was kreupel, my sig was beskadig en my gehoor was verswak. Vir ses maande het ek net op operasietafels gelê.

Die linkerhand is in dele aanmekaargesit, borde en breinaalde is geïnstalleer. Ná vyf maande kon ek vir haar werk.

Ná die besering kon ek glad niks sien nie. Maar dokters het daarin geslaag om ligpersepsie te herstel. Daar was niks van my oog oor nie, behalwe die dop. Alles binne is vervang - die glasagtige liggame, die lense. Alles moontlik.”

In 2013 het Zhenya by 'n korrektiewe skool vir kinders met gesiggestremdheid gaan studeer. Daardie rekenaarwetenskaponderwyser, wat heeltemal blind was, het hom weer geleer hoe om 'n rekenaar te gebruik. Vir hierdie doel word spesiale programme gebruik - skermlesers. Hulle kry toegang tot bedryfstelsel-API's om toegang tot die koppelvlak te kry en verander die manier waarop hulle beheer word effens.

Zhenya noem homself 'n ywerige Linux-gebruiker; hy gebruik Debian. Deur die sleutelbord te gebruik, navigeer hy deur die koppelvlak-elemente, en 'n spraaksintetiseerder stem uit wat aan die gebeur is.

"Nou sal jy net spasie hoor," sê hy vir my voordat hy die program aanskakel.

Dit klink soos 'n kode of uitheemse gesels, maar in werklikheid is dit gewone Russies of Engels, dit is net dat die sintetiseerder teen 'n ongelooflike spoed vir die onopgeleide oor praat.

“Dit was nie moeilik om dit te leer nie. Ek het eers op Windows gewerk en die skermleser Jaws gebruik. Ek het dit gebruik en gedink: "Here, hoe kan U teen so 'n stadige spoed werk." Ek het ingezoem en besef dat die ore in 'n buis gekrul is. Ek het dit teruggegee en geleidelik begin om dit elke week met 5-10 persent te verhoog. Ek het die sintetiseerder tot honderd woorde versnel, toe nog meer, en weer en weer. Nou praat hy duisend woorde per minuut.”

Zhenya skryf in 'n gewone teksredigeerder - Gedit of Nano. Kopieer bronne van Github, begin die skermleser en luister na die kode. Om te verseker dat dit maklik deur ander ontwikkelaars gelees en verstaan ​​kan word, gebruik dit regdeur linters en konfigurasies. Maar Zhenya kan nie ontwikkelingsomgewings gebruik nie, want dit is weens die implementering daarvan ontoeganklik vir blindes.

“Hulle is so gemaak dat hul venster deur die stelsel bepaal word, en alles binne die venster word nie deur die skermleser gesien nie omdat dit nie toegang daartoe kan kry nie. Ek het JetBrains nou direk gekontak om 'n paar pleisters aan hul omgewings te probeer maak. Hulle het vir my die PyCharm-bronne gestuur. Die IDE is geïmplementeer op Intellij Idea, so alle veranderinge kan beide daar en daar toegepas word.”

Nog 'n hindernis is die versuim om aan algemene webstandaarde te voldoen. Ons sien byvoorbeeld 'n groot opskrif op 'n bladsy. Baie ontwikkelaars implementeer dit deur 'n span-etiket te gebruik om die lettertipe tot die verlangde grootte vas te maak, en dit lyk uiteindelik goed. Maar aangesien die teks nie 'n titel vir die stelsel is nie, herken die skermleser dit nie as 'n kieslyselement nie en laat nie interaksie toe nie.

Zhenya gebruik maklik die mobiele weergawe van VKontakte, maar vermy Facebook: “VK is gerieflik vir my omdat dit 'n aparte lys navigasie-spyskaarte het. Dit het elemente en opskrifte wat vir my die semantiese verdeling van die bladsy is. Byvoorbeeld, die eerste vlak opskrif waar my bynaam aangedui word - ek weet dat dit die titel van die bladsy is. Ek weet dat die "boodskappe" kop die bladsy verdeel, en onder is daar 'n lys van dialoë.

Facebook bevorder toeganklikheid, maar in werklikheid is alles so sleg dat dit onmoontlik is om iets te verstaan. Ek maak dit oop – en die program begin vries, die bladsy is vreeslik stadig, alles spring vir my rond. Daar is alle knoppies oral, en ek is soos, "hoe werk ek selfs hiermee?!" Ek sal dit net gebruik as ek my kliënt klaarmaak of ’n derde party koppel.”

navorsing

Zhenya woon in Vladivostok in 'n gewone universiteitskoshuis. Daar is 'n badkamer in die kamer, twee kaste, twee beddens, twee tafels, twee rakke, 'n yskas. Geen spesiale gadgets nie, maar volgens hom is dit nie nodig nie. "Gesiggestremdheid beteken nie dat ek nie sal kan loop of nie 'n manier sal vind nie. Maar ek kon en sou myself gelukkig met 'n slim huis toerus as ek die verbruiksgoedere het. Ek het eenvoudig nie die geld om komponente te koop nie. Vir ’n student om vyfduisend aan fooie te spandeer net om haar rond te steek, is baie nutteloos.”

Zhenya woon saam met 'n meisie, sy help op baie maniere om die huis: "smeer toebroodjies, skink tee, wasgoed was. Daarom het ek meer tyd gehad om te ontspan en die dinge te doen waarvoor ek lief is.”

Byvoorbeeld, Zhenya het 'n musikale groep waar hy die elektriese kitaar speel. Hy het ook ná die besering geleer. In 2016 het hy drie maande in 'n rehabilitasiesentrum deurgebring, waar hy 'n onderwyser gevra het om hom met sy kitaar te help. Ek het eers gespeel met die naat van 'n hemp omgedraai. Toe bou ek 'n bemiddelaar.

“Ek het 'n verband geneem om die hand te versterk, wat byvoorbeeld deur karatekas gebruik word, dit oopgesny op die plekke waar die vingers geskei is en dit op die voorarm getrek. Daar is ’n skuimkussing wat die kwas teen skade beskerm – daaraan het ek ’n pik vasgewerk wat my broer vir my uit ’n plastiekspatel gesny het. Dit blyk so ’n lang plastiektong te wees wat ek gebruik om op die snare te speel – pluk en tokkel.”

Die ontploffing het sy oordromme uitgeblaas, sodat Zhenya nie lae frekwensies kan hoor nie. Sy kitaar het nie die sesde (laagste) snaar nie, en die vyfde is anders gestem. Hy speel meestal solo-partye.

Maar die hoofaktiwiteite bly ontwikkeling en navorsing.

Prostetiese arm

Hoe dit is om na kode te luister teen 1000 woorde per minuut

Een van die projekte is die ontwikkeling van ’n boonste ledemaat-prostese met ’n slim beheerstelsel. In 2016 het Zhenya na die persoon gekom wat besig was om die prostese te ontwikkel en hom met toetse begin help. In 2017 het hulle aan die Neurostart-hackaton deelgeneem. In 'n span van drie mense het Zhenya laevlakbeheerders geprogrammeer. Nog twee het die modelle self ontwerp en neurale netwerke vir die beheerstelsel geleer.

Nou het Zhenya die hele sagteware-deel van die projek oorgeneem. Dit gebruik die Myo Armband om spierpotensiale te lees, bou maskers op grond daarvan, en pas neurale netwerkmodelle bo-op toe om gebare te herken—dit is waarop die beheerstelsel gebou is.

“Die armband het agt sensors. Hulle stuur potensiële veranderinge na enige invoertoestel. Ek het hul SDK met my eie hande vernietig, alles wat nodig was gedekompileer en my eie lib in Python geskryf om data te lees. Natuurlik is daar nie genoeg data nie. Selfs al sit ek 'n biljoen sensors op my vel, sal dit steeds nie genoeg wees nie. Die vel beweeg oor die spiere en die data word deurmekaar.”

In die toekoms beplan Zhenya om verskeie sensors onder die vel en spiere te installeer. Hy sou dit nou probeer – maar sulke operasies word in Rusland verbied. As 'n chirurg ongesertifiseerde toerusting onder 'n persoon se vel inplant, sal hy sy diploma verloor. Zhenya het egter een sensor in sy hand vasgewerk - 'n RFID-etiket, soos in elektroniese sleutels, om 'n interkom of enige slot oop te maak waaraan die sleutel gekoppel sal word.

Kunsmatige oog

Saam met Bogdan Shcheglov, 'n biochemikus en biofisikus, werk Zhenya aan 'n prototipe van 'n kunsoog. Bogdan is besig met 3D-modellering van die oogbal en verbind al die mikrokringe in 'n driedimensionele model met die optiese senuwee, Zhenya bou 'n wiskundige model.

“Ons het 'n klomp literatuur bestudeer oor bestaande analoë, tegnologieë wat op die mark was en nou is, en besef dat beeldherkenning nie relevant is nie. Maar ons het geleer dat 'n matriks voorheen geskep is vir die opname van fotone en hul energie. Ons het besluit om 'n soortgelyke matriks in 'n verkleinde grootte te ontwikkel, wat in staat sou wees om ten minste 'n minimum stel fotone te registreer en 'n elektriese puls op hulle basis te bou. Op hierdie manier raak ons ​​ontslae van die tussenlaag van ’n duidelike beeld en die herkenning daarvan – ons werk net direk.”

Die resultaat sal visie wees wat nie heeltemal in die klassieke sin is nie. Maar soos Zhenya sê, die res van die optiese senuwee moet die toevoer van elektriese impulse op dieselfde manier waarneem as van 'n regte oog. In 2018 het hulle die projek met die rektor van die Mariene Tegniese Universiteit, Gleb Turishchin, en Skolkovo-mentor Olga Velichko bespreek. Hulle het bevestig dat hierdie probleem opgelos kan word met tegnologie wat reeds in die wêreld bestaan.

“Maar hierdie taak is selfs moeiliker as om prostetika te ontwikkel. Ons kan nie eers 'n eksperiment op paddas uitvoer om te kyk hoe goed die retina impulse genereer, hoe hulle van verskillende lig afhanklik is, watter area meer genereer, watter minder nie. Ons het befondsing nodig wat ons in staat sal stel om 'n laboratorium te huur en mense aan te stel om take te ontbind en spertye te verminder. Plus die koste van al die nodige materiaal. As ’n reël kom dit alles neer op geld.”

Burokrasie

Bogdan en Zhenya het by Skolkovo aansoek gedoen vir befondsing, maar is geweier – slegs voltooide produkte met kommersiële potensiaal gaan daarheen, en nie navorsingsprojekte in die beginstadium nie.

Ten spyte van al die oorspronklikheid in Zhenya se verhaal, ten spyte van sy vermoëns en inspirerende suksesse, word mens verras deur die vreemde burokratiese ongeluk. Dit is veral irriterend om teen die agtergrond van die nuus hiervan te hoor. Hier is nog 'n "produk wat mense nodig het" ('n foto-toepassing, advertensie-optimalisering of nuwe soorte geselsies) wat sy miljoene dollars aan inkomste en belegging ontvang. Maar ’n onbekende entoesias weet nie wat om met sy idees te doen nie.

Vanjaar het Zhenya 'n gratis studie van ses maande in Oostenryk gewen onder 'n vennootskapsprogram tussen universiteite - maar hy kan nie daarheen gaan nie. Om 'n visum te bevestig, is waarborge nodig dat hy geld het vir behuising en lewe in Salzburg.

“Om ’n beroep op fondse te doen het nie resultate opgelewer nie, want befondsing word slegs vir volle diplomaprogramme verskaf,” sê Zhenya, “Om ’n beroep op die Universiteit van Salzburg self het ook nie – die universiteit het nie sy eie slaapsale nie en kan ons nie help met verblyf nie.

Ek het aan tien fondse geskryf, en net drie of vier het op my gereageer. Boonop het hulle geantwoord dat my wetenskaplike graad hulle nie pas nie – hulle het meesters en hoër nodig. My wetenskaplike prestasies in voorgraadse studies word nie deur hulle gewaardeer nie. As jy aan 'n plaaslike universiteit studeer, jy het 'n baccalaureusgraad en is besig met tegniese navorsing, dan kan jy binne die universiteit aansoek doen. Maar vir 'n persoon uit die buiteland het hulle dit ongelukkig nie.

Ek het ongeveer dieselfde aantal Russiese fondse gekontak. In Skolkovo het hulle vir my gesê: jammer, maar ons werk net met meesters. Ander stigtings het vir my gesê dat hulle vir ses maande nie finansiering het nie, of hulle werk net met diplomaprogramme, of hulle finansier nie individue nie. En die Prokhorov- en Potanin-stigtings het my nie eers geantwoord nie.

Ek het 'n brief van Yandex ontvang dat hulle besig is met groot liefdadigheid en die maatskappy het tans nie finansiering nie, maar hulle wens my alle sterkte toe.

Ek het selfs ingestem tot kontrakgerigte finansiering, wat my in staat sal stel om te gaan studeer, en gevolglik sal ek iets vir die maatskappy bring. Maar alles stop by 'n lae vlak van kommunikasie. Ek verstaan ​​waaroor dit gaan. Mense wat op telefoonoproepe en pos werk, werk eenvoudig volgens dokumente. Hulle sien dat 'n aansoek gekom het, dit kan selfs cool wees. Maar hulle sal skryf: jammer, nee, want óf die aansoektydperk het verstryk óf jy kwalifiseer nie volgens jou status nie. Maar ek het nie die geleentheid om iewers hoër as die eienaars van die fonds te bereik nie, ek het eenvoudig nie sulke kontakte nie.”

Maar plasings oor Zhenya se probleem het vinnig oor sosiale netwerke begin versprei. In die eerste paar dae het ons ongeveer 50 000 roebels ingesamel - uit die vereiste 12 000 euro. Daar is nie baie tyd om gereed te maak nie, maar baie mense skryf reeds aan Zhenya oor ondersteuning. Miskien sal alles uitwerk.

Ek sal bly wees om hierdie lang teks met die terugkeer van die held uit Oostenryk met 'n nuwe en kragtige ervaring af te sluit. Of om 'n toekenning vir een van die projekte te ontvang, en 'n foto van die nuwe laboratorium. Maar die teks het opgehou in 'n koshuiskamer, waar daar twee kaste, twee beddens, twee tafels, twee rakke, 'n yskas is.

Dit lyk vir my of groot professionele gemeenskappe nodig is om mekaar te help. Nekrasov se vrou het geld nodig, nuttige kontakte, idees, raad, enigiets. Kom ons verhoog ons karma.

Zhenya se kontakte en ander belangrike figuree-pos: [e-pos beskerm]
Телефон: +7-914-968-93-21
Telegram en WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Besonderhede vir die oordrag van fondse:
Kaartnommer: 4276 5000 3572 4382 of telefoonnommer +7-914-968-93-21
Yandex-beursie per telefoonnommer +7-914-968-93-21

Geadresseerde: Nekrasov Evgeniy

Bron: will.com

Voeg 'n opmerking