Wie es ist, Code mit 1000 Wörtern pro Minute anzuhören

Die Geschichte einer kleinen Tragödie und der großen Siege eines sehr guten Entwicklers, der Hilfe braucht

Wie es ist, Code mit 1000 Wörtern pro Minute anzuhören

An der Far Eastern Federal University gibt es ein Zentrum für Projektaktivitäten – dort finden Master und Bachelor Ingenieurprojekte, die bereits Kunden, Geld und Perspektiven haben. Dort finden auch Vorlesungen und Intensivkurse statt. Erfahrene Spezialisten sprechen über moderne und angewandte Dinge.

Einer der Intensivkurse war der Nutzung des Docker-Containerisierungssystems für verteiltes Rechnen und Orchestrieren gewidmet. An der Veranstaltung nahmen Master- und Doktoranden der angewandten Mathematik, des Ingenieurwesens, der Softwarevorbereitung und anderer technischer Bereiche teil.

Der Lehrer war ein Typ mit dunkler Brille, modischem Haarschnitt, Schal, kontaktfreudig und zu selbstbewusst – vor allem für einen 21-jährigen Zweitklässler. Sein Name ist Evgeny Nekrasov, er ist erst vor zwei Jahren in die FEFU eingetreten.

Wunderkind

„Ja, sie waren älter und hatten mehr Status, aber ich kann nicht sagen, dass sie erfahrener waren. Außerdem hielt ich manchmal Vorträge für unseren Lehrer vor meinen Klassenkameraden. Irgendwann wurde uns klar, dass er mir nichts mehr zum Thema objektorientierte Programmierung sagen konnte, also hielt ich ihm von Zeit zu Zeit einen Vortrag über OOP, moderne Entwicklung, GitHub und den Einsatz von Versionskontrollsystemen.“

Wie es ist, Code mit 1000 Wörtern pro Minute anzuhören

Evgeniy kann in Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C und Assembler schreiben. „Ich kenne JavaScript besser, der Rest ist ein oder zwei Level tiefer. Aber gleichzeitig kann ich in einer Stunde einen Controller in Rust oder C++ programmieren. Ich habe diese Sprachen nicht absichtlich gelernt. Ich habe sie für die mir zugewiesenen Aufgaben studiert. Ich kann an jedem Projekt teilnehmen, indem ich die Dokumentation und Handbücher studiere. Ich kenne die Syntax der Sprachen und es spielt keine Rolle, welche ich verwenden soll. Das Gleiche gilt auch für Frameworks und Bibliotheken – lesen Sie einfach die Dokumentation und ich verstehe, wie es funktioniert. Alles wird durch das Themengebiet und die Aufgabe bestimmt.“

Evgeniy beschäftigt sich seit 2013 intensiv mit Programmierung. Ein völlig blinder Informatiklehrer an der High School weckte sein Interesse für Informatik. Der Weg begann mit dem Web – HTML, JavaScript, PHP.

"Ich bin nur Neugierig. Ich schlafe nicht viel – ich bin ständig mit etwas beschäftigt, lese etwas, lerne etwas.“

Im Jahr 2015 bewarb sich Evgeniy für den „Umnik“-Wettbewerb zur Unterstützung technischer Projekte junger Wissenschaftler über XNUMX Jahre. Da er jedoch noch keine XNUMX Jahre alt war, konnte er den Wettbewerb nicht gewinnen – doch Evgeniy wurde von der örtlichen Entwicklergemeinschaft wahrgenommen. Er traf Sergei Milekhin, der zu diesem Zeitpunkt im Rahmen des Google Developer Fest Konferenzen in Wladiwostok organisierte. „Er hat mich dorthin eingeladen, ich bin gekommen, habe zugehört, es hat mir gefallen. Im nächsten Jahr kam ich wieder, lernte immer mehr Menschen kennen, kommunizierte.“

Andrey Sitnik von der VLDC-Community begann, Evgeniy bei seinen Webprojekten zu helfen. „Ich musste eine Multithread-Web-Socket-Anwendung erstellen. Ich habe sehr lange darüber nachgedacht, wie man das in PHP macht, und habe mich an Andrey gewandt. Er sagte mir: „Nehmen Sie node.js- und npm-Pakete, die im Internet verfügbar sind, und zerbrechen Sie sich nicht den Kopf.“ Und im Allgemeinen ist die Umstellung auf Open Source cool.“ Also verbesserte ich mein Englisch, begann Dokumentationen zu lesen und Projekte auf GitHub zu veröffentlichen.“

Im Jahr 2018 hielt Evgeniy bereits Vorträge beim Google Dev Fest und sprach über Entwicklungen im Bereich barrierefreier Schnittstellen, Prothesen für die oberen Gliedmaßen, die Entwicklung neuronaler Schnittstellen und kontaktloser Zugangskontrollsysteme. Jetzt befindet sich Evgeniy im zweiten Jahr seines Bachelorstudiums in Software Engineering, hat es jedoch bereits erfolgreich abgeschlossen und beendet seine Abschlussarbeit.

„Mir wurde gesagt, ich solle die Datenstruktur in einer Hash-Tabelle implementieren. Dies ist eine Standardsache, die jedem an der Universität gegeben wird. Am Ende hatte ich 12 Zeilen Code und eine Menge Krücken“, sagt Evgeniy lachend. „Ich habe eine Hash-Tabelle und ihre modifizierte Struktur in JavaScript erstellt, um Daten schneller zu lesen. Und der Lehrer sagt: „Du musst aufschreiben, was für mich einfacher ist, damit ich es bewerten kann.“ Es war sehr ärgerlich.

Evgeniys persönliche Projekte sehen viel interessanter aus. Die erste davon ist die Entwicklung von Webstandards für Menschen mit körperlichen Behinderungen. Er möchte eine Ressource schaffen, die sofort einsatzbereite Hilfstechnologie bereitstellt, sodass Menschen mit Sehbehinderungen sie problemlos nutzen können, ohne befürchten zu müssen, Informationen zu verpassen. Evgeniy kennt dieses Problem gut, denn er selbst hat sein Augenlicht verloren.

Verletzung

„Früher war ich ein gewöhnlicher Teenager, mit allen meinen Gliedmaßen. 2012 habe ich mich in die Luft gesprengt. Ich ging mit einem Freund spazieren, hob auf der Straße eine Flasche auf und sie explodierte in meinen Händen. Meine rechte Hand wurde abgerissen, meine linke Hand war verkrüppelt, meine Sehkraft war beeinträchtigt und mein Gehör war beeinträchtigt. Sechs Monate lang lag ich einfach auf Operationstischen.

Die linke Hand wurde in Einzelteilen zusammengebaut, Platten und Stricknadeln eingebaut. Nach fünf Monaten konnte ich für sie arbeiten.

Nach der Verletzung konnte ich überhaupt nichts mehr sehen. Den Ärzten gelang es jedoch, die Lichtwahrnehmung wiederherzustellen. Außer der Schale war von meinem Auge nichts mehr übrig. Alles im Inneren wurde ersetzt – die Glaskörper, die Linsen. Alles möglich."

Im Jahr 2013 besuchte Zhenya eine Justizvollzugsanstalt für Kinder mit Sehbehinderungen. Dieser völlig blinde Informatiklehrer brachte ihm wieder bei, wie man einen Computer bedient. Zu diesem Zweck werden spezielle Programme eingesetzt – Screenreader. Sie greifen auf die APIs des Betriebssystems zu, um Zugriff auf die Schnittstelle zu erhalten und die Art und Weise ihrer Steuerung geringfügig zu ändern.

Zhenya bezeichnet sich selbst als begeisterten Linux-Benutzer; er verwendet Debian. Mit der Tastatur navigiert er durch die Elemente der Benutzeroberfläche, und ein Sprachsynthesizer verkündet, was gerade passiert.

„Jetzt hören Sie nur noch Leerzeichen“, sagt er mir, bevor er das Programm einschaltet.

Es klingt wie ein Code oder ein außerirdisches Geschwätz, aber in Wirklichkeit ist es gewöhnliches Russisch oder Englisch, nur dass der Synthesizer für das ungeübte Ohr mit einer unglaublichen Geschwindigkeit spricht.

„Es war nicht schwer, das zu lernen. Zuerst habe ich unter Windows gearbeitet und den Screenreader Jaws verwendet. Ich benutzte es und dachte: „Herr, wie kannst du so langsam arbeiten?“ Ich zoomte hinein und stellte fest, dass die Ohren zu einer Röhre zusammengerollt waren. Ich gab es zurück und begann, es jede Woche schrittweise um 5-10 Prozent zu steigern. Ich beschleunigte den Synthesizer auf hundert Wörter, dann noch mehr und immer wieder. Jetzt spricht er tausend Wörter pro Minute.“

Zhenya schreibt in einem normalen Texteditor – Gedit oder Nano. Kopiert Quellen von Github, startet den Screenreader und hört sich den Code an. Um sicherzustellen, dass es von anderen Entwicklern leicht gelesen und verstanden werden kann, werden durchgehend Linters und Konfigurationen verwendet. Allerdings kann Zhenya Entwicklungsumgebungen nicht nutzen, da diese aufgrund ihrer Implementierung für Blinde unzugänglich sind.

„Sie sind so gestaltet, dass ihr Fenster vom System bestimmt wird und alles innerhalb des Fensters vom Bildschirmleser nicht gesehen wird, weil er nicht darauf zugreifen kann.“ Ich habe JetBrains jetzt direkt kontaktiert, um zu versuchen, einige Patches für ihre Umgebungen zu erstellen. Sie haben mir die PyCharm-Quellen geschickt. Die IDE ist auf Intellij Idea implementiert, sodass alle Änderungen sowohl dort als auch dort angewendet werden können.“

Ein weiteres Hindernis ist die mangelnde Einhaltung allgemeiner Webstandards. Beispielsweise sehen wir eine große Überschrift auf einer Seite. Viele Entwickler implementieren dies mithilfe eines Span-Tags, um die Schriftart auf die gewünschte Größe zu reduzieren, und am Ende sieht sie gut aus. Da der Text aber kein Titel für das System ist, erkennt ihn der Screenreader nicht als Menüelement und lässt keine Interaktion zu.

Zhenya nutzt problemlos die mobile Version von VKontakte, meidet aber Facebook: „VK ist für mich praktisch, weil es eine separate Liste mit Navigationsmenüs hat. Es enthält Elemente und Überschriften, die für mich die semantische Unterteilung der Seite darstellen. Zum Beispiel die Überschrift der ersten Ebene, in der mein Spitzname angegeben ist – ich weiß, dass dies der Titel der Seite ist. Ich weiß, dass die Überschrift „Nachrichten“ die Seite unterteilt und darunter eine Liste mit Dialogen ist.

Facebook fördert die Barrierefreiheit, aber in Wirklichkeit ist alles so schlecht, dass man nichts verstehen kann. Ich öffne es – und das Programm fängt an einzufrieren, die Seite ist furchtbar langsam, bei mir springt alles hin und her. Es gibt überall Knöpfe und ich frage mich: „Wie soll ich damit überhaupt arbeiten?!“ Ich werde es nur verwenden, wenn ich meinen Kunden fertigstelle oder einen Dritten verbinde.“

Forschung

Zhenya lebt in Wladiwostok in einem gewöhnlichen Studentenwohnheim. Im Zimmer gibt es ein Badezimmer, zwei Kleiderschränke, zwei Betten, zwei Tische, zwei Regale, einen Kühlschrank. Keine besonderen Gadgets, aber seiner Meinung nach werden sie auch nicht benötigt. „Eine Sehbehinderung bedeutet nicht, dass ich nicht laufen kann oder keinen Weg finde. Aber ich könnte und würde mir gerne ein Smart Home ausstatten, wenn ich die entsprechenden Verbrauchsmaterialien hätte. Mir fehlt einfach das Geld, um Komponenten zu kaufen. Es ist sehr unrentabel, wenn eine Studentin fünftausend Dollar für Studiengebühren ausgibt, nur um sie herumzustochern.“

Zhenya lebt mit einem Mädchen zusammen, sie hilft auf vielfältige Weise im Haushalt: „Sandwiches verteilen, Tee einschenken, Wäsche waschen. Dadurch hatte ich mehr Zeit, mich zu entspannen und die Dinge zu tun, die ich liebe.“

Zhenya hat zum Beispiel eine Musikgruppe, in der er E-Gitarre spielt. Er hat auch nach der Verletzung gelernt. 2016 verbrachte er drei Monate in einem Rehabilitationszentrum, wo er einen Lehrer bat, ihm mit seiner Gitarre zu helfen. Zuerst habe ich mit der umgestülpten Naht eines Hemdes gespielt. Dann habe ich einen Mediator aufgebaut.

„Ich habe einen Verband zur Stärkung der Hand genommen, der zum Beispiel von Karatekas verwendet wird, habe ihn an den Stellen, an denen die Finger getrennt sind, aufgeschnitten und über den Unterarm gezogen. Dort befindet sich eine Schaumstoffunterlage, die den Pinsel vor Beschädigungen schützt – daran habe ich einen Plektrum angenäht, den mein Bruder für mich aus einem Plastikspatel ausgeschnitten hat. Es stellte sich heraus, dass es eine so lange Plastikzunge war, mit der ich auf den Saiten spiele – zupfen und klimpern.“

Die Explosion hat sein Trommelfell gesprengt, sodass Zhenya tiefe Frequenzen nicht hören kann. Seine Gitarre hat keine sechste (tiefste) Saite und die fünfte ist anders gestimmt. Er spielt hauptsächlich Soloparts.

Die Hauptaktivitäten bleiben aber weiterhin Entwicklung und Forschung.

Prothetische Hand

Wie es ist, Code mit 1000 Wörtern pro Minute anzuhören

Eines der Projekte ist die Entwicklung einer Prothese für die oberen Gliedmaßen mit einem intelligenten Steuerungssystem. Im Jahr 2016 kam Zhenya zu der Person, die die Prothese entwickelte, und begann, ihm beim Testen zu helfen. 2017 nahmen sie am Neurostart-Hackathon teil. In einem Team von drei Leuten programmierte Zhenya Low-Level-Controller. Zwei weitere konstruierten die Modelle selbst und trainierten neuronale Netze für das Steuerungssystem.

Nun hat Zhenya den gesamten Softwareteil des Projekts übernommen. Es nutzt das Myo-Armband, um Muskelpotentiale abzulesen, baut darauf basierende Masken auf und wendet darüber hinaus neuronale Netzwerkmodelle an, um Gesten zu erkennen – darauf basiert das Steuerungssystem.

„Das Armband verfügt über acht Sensoren. Sie übermitteln mögliche Änderungen an jedes Eingabegerät. Ich habe ihr SDK mit meinen eigenen Händen entkernt, alles Notwendige dekompiliert und meine eigene Bibliothek in Python geschrieben, um Daten zu lesen. Natürlich gibt es nicht genügend Daten. Selbst wenn ich eine Milliarde Sensoren auf meiner Haut anbringen würde, wäre das immer noch nicht genug. Die Haut bewegt sich über die Muskeln und die Daten geraten durcheinander.“

Zukünftig plant Zhenya, mehrere Sensoren unter der Haut und den Muskeln zu installieren. Er würde es jetzt versuchen – doch solche Operationen sind in Russland verboten. Wenn ein Chirurg nicht zertifizierte Geräte unter die Haut einer Person implantiert, verliert er sein Diplom. Allerdings hat Zhenya einen Sensor in seine Hand genäht – einen RFID-Tag, wie bei elektronischen Schlüsseln, um eine Gegensprechanlage oder ein beliebiges Schloss zu öffnen, an das der Schlüssel gekoppelt wird.

künstliches Auge

Zusammen mit Bogdan Shcheglov, einem Biochemiker und Biophysiker, arbeitet Zhenya an einem Prototyp eines künstlichen Auges. Bogdan beschäftigt sich mit der 3D-Modellierung des Augapfels und der Verbindung aller Mikroschaltkreise in einem dreidimensionalen Modell mit dem Sehnerv, Zhenya baut ein mathematisches Modell.

„Wir haben eine Menge Literatur zu bestehenden Analoga, Technologien, die auf dem Markt waren und jetzt sind, studiert und festgestellt, dass Bilderkennung nicht relevant ist. Wir erfuhren jedoch, dass zuvor eine Matrix zur Aufzeichnung von Photonen und ihrer Energie erstellt worden war. Wir beschlossen, eine ähnliche Matrix in reduzierter Größe zu entwickeln, die in der Lage wäre, zumindest eine minimale Menge an Photonen zu registrieren und auf ihrer Grundlage einen elektrischen Impuls aufzubauen. Auf diese Weise entledigen wir uns der Zwischenschicht eines klaren Bildes und seiner Erkennung – wir arbeiten einfach direkt.“

Das Ergebnis wird eine Vision sein, die nicht ganz im klassischen Sinne ist. Aber wie Zhenya sagt, muss der Rest des Sehnervs die Zufuhr elektrischer Impulse genauso wahrnehmen wie von einem echten Auge. Im Jahr 2018 diskutierten sie das Projekt mit dem Rektor der Marine Technical University, Gleb Turishchin, und der Skolkovo-Mentorin Olga Velichko. Sie bestätigten, dass dieses Problem mit Technologien gelöst werden kann, die es bereits auf der Welt gibt.

„Aber diese Aufgabe ist noch schwieriger als die Entwicklung von Prothesen. Wir können nicht einmal ein Experiment an Fröschen durchführen, um zu überprüfen, wie gut die Netzhaut Impulse erzeugt, wie sie von unterschiedlichem Licht abhängen, welcher Bereich mehr und welcher weniger erzeugt. Wir brauchen Finanzmittel, die es uns ermöglichen, ein Labor zu mieten und Leute einzustellen, die Aufgaben zerlegen und Fristen verkürzen. Zuzüglich der Kosten für alle notwendigen Materialien. In der Regel kommt es auf das Geld an.“

Bürokratie

Bogdan und Zhenya beantragten bei Skolkovo eine Finanzierung, wurden jedoch abgelehnt – dorthin gehen nur fertige Produkte mit kommerziellem Potenzial, nicht jedoch Forschungsprojekte in der Entstehungsphase.

Trotz aller Originalität in Zhenyas Geschichte, trotz seiner Fähigkeiten und inspirierenden Erfolge ist man von dem seltsamen bürokratischen Pech überrascht. Es ist besonders ärgerlich, dies vor dem Hintergrund der Nachrichten zu hören. Hier ist ein weiteres „Produkt, das die Menschen brauchen“ (eine Fotoanwendung, Werbeoptimierung oder neue Arten von Chats), das Einnahmen und Investitionen in Millionenhöhe erzielt. Doch ein unbekannter Enthusiast weiß nicht, was er mit seinen Ideen anfangen soll.

Dieses Jahr gewann Zhenya ein kostenloses sechsmonatiges Studium in Österreich im Rahmen eines Partnerschaftsprogramms zwischen Universitäten – aber er kann nicht dorthin gehen. Um ein Visum zu bestätigen, sind Garantien erforderlich, dass er Geld für Unterkunft und Leben in Salzburg hat.

„Der Appell an Fördermittel hat keinen Erfolg gebracht, da die Finanzierung nur für Volldiplomstudiengänge vorgesehen ist“, sagt Zhenya. „Der Appell an die Universität Salzburg selbst hat auch nichts gebracht – die Universität verfügt über keine eigenen Wohnheime und kann uns bei der Unterbringung nicht helfen.“

Ich habe zehn Fonds angeschrieben und nur drei oder vier haben mir geantwortet. Außerdem antworteten sie, dass mein wissenschaftlicher Abschluss nicht zu ihnen passte – sie brauchten einen Master oder einen höheren Abschluss. Meine wissenschaftlichen Leistungen im Grundstudium werden von ihnen nicht gewürdigt. Wenn Sie an einer örtlichen Universität studieren, einen Bachelor-Abschluss haben und in der technischen Forschung tätig sind, können Sie sich innerhalb der Universität bewerben. Aber für jemanden aus dem Ausland ist das leider nicht der Fall.

Ich habe ungefähr die gleiche Anzahl russischer Fonds kontaktiert. In Skolkovo sagten sie mir: Entschuldigung, aber wir arbeiten nur mit Meistern. Andere Stiftungen sagten mir, dass sie für ein halbes Jahr keine Förderung haben, nur mit Diplomstudiengängen arbeiten oder keine Einzelpersonen finanzieren. Und die Stiftungen Prochorow und Potanin haben mir nicht einmal geantwortet.

Ich habe einen Brief von Yandex erhalten, dass sie sich für wohltätige Zwecke engagieren und das Unternehmen derzeit keine Finanzierung hat, aber sie wünschen mir alles Gute.

Ich stimmte sogar einer vertragsbezogenen Finanzierung zu, die es mir ermöglichte, zu studieren und als Ergebnis etwas für das Unternehmen mitzubringen. Aber auf einem niedrigen Kommunikationsniveau hört alles auf. Ich verstehe, worum es geht. Menschen, die Telefongespräche und Post bearbeiten, arbeiten einfach nach Dokumenten. Sie sehen, dass eine Bewerbung angekommen ist, vielleicht ist sie sogar cool. Aber sie werden schreiben: Entschuldigung, nein, denn entweder ist die Bewerbungsfrist abgelaufen oder Sie sind Ihrem Status nach nicht qualifiziert. Aber ich habe nicht die Möglichkeit, über die Eigentümer des Fonds hinauszugehen, ich habe einfach keine solchen Kontakte.“

Aber Beiträge über Zhenyas Problem verbreiteten sich schnell in den sozialen Netzwerken. In den ersten Tagen haben wir etwa 50 Rubel gesammelt – von den benötigten 000 Euro. Es bleibt nicht viel Zeit, sich vorzubereiten, aber viele Leute schreiben Zhenya bereits wegen der Unterstützung. Vielleicht klappt alles.

Ich würde diesen langen Text über die Rückkehr des Helden aus Österreich gerne mit einem neuen und kraftvollen Erlebnis beenden. Oder Sie erhalten ein Stipendium für eines der Projekte und ein Foto aus dem neuen Labor. Aber der Text endete in einem Schlafsaal, wo es zwei Schränke, zwei Betten, zwei Tische, zwei Regale und einen Kühlschrank gibt.

Mir scheint, dass große professionelle Gemeinschaften nötig sind, um sich gegenseitig zu helfen. Nekrasovs Frau braucht Geld, nützliche Kontakte, Ideen, Ratschläge, alles. Lasst uns unser Karma erhöhen.

Zhenyas Kontakte und andere wichtige PersönlichkeitenEmail: [E-Mail geschützt]
Телефон: +7-914-968-93-21
Telegramm und WhatsApp: +7-999-057-85-48
Github: github.com/Ravino
vk.com: vk.com/ravino_doul

Details zur Geldüberweisung:
Kartennummer: 4276 5000 3572 4382 oder Telefonnummer +7-914-968-93-21
Yandex-Wallet unter der Telefonnummer +7-914-968-93-21

Adressat: Nekrasov Evgeniy

Source: habr.com

Kommentar hinzufügen