Qu'est-ce que ça fait d'écouter du code à 1000 mots par minute

L'histoire d'une petite tragédie et de grandes victoires d'un très bon développeur qui a besoin d'aide

Qu'est-ce que ça fait d'écouter du code à 1000 mots par minute

À l'Université fédérale d'Extrême-Orient, il existe un centre d'activités de projet - les maîtres et les bacheliers y trouvent des projets d'ingénierie qui ont déjà des clients, de l'argent et des prospects. Des conférences et des cours intensifs y sont également organisés. Des spécialistes expérimentés parlent de choses modernes et appliquées.

L'un des cours intensifs était consacré à l'utilisation du système de conteneurisation Docker pour l'informatique distribuée et l'orchestration. Y ont participé des étudiants de maîtrise et d'études supérieures en mathématiques appliquées, en ingénierie, en préparation de logiciels et dans d'autres domaines techniques.

Le professeur était un gars avec des lunettes noires, une coupe de cheveux à la mode, un foulard, sociable et trop confiant - surtout pour un étudiant de deuxième année de 21 ans. Il s'appelle Evgeny Nekrasov, il est entré à la FEFU il y a à peine deux ans.

Enfant prodige

« Oui, ils étaient plus âgés et avaient plus de statut, mais je ne peux pas dire qu’ils étaient plus expérimentés. De plus, je donnais parfois des cours à mes camarades de classe pour notre professeur. À un moment donné, nous avons réalisé qu'il ne pouvait rien m'apprendre de plus sur la programmation orientée objet, alors de temps en temps, je lui ai donné des conférences sur la POO, le développement moderne, GitHub et l'utilisation des systèmes de contrôle de version.

Qu'est-ce que ça fait d'écouter du code à 1000 mots par minute

Evgeniy peut écrire en Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C et Assembler. «Je connais mieux JavaScript, le reste est un niveau ou deux inférieur. Mais en même temps, je peux programmer un contrôleur en Rust ou en C++ en une heure. Je n'ai pas étudié ces langues volontairement. Je les ai étudiés pour les tâches qui m'étaient assignées. Je peux rejoindre n'importe quel projet en étudiant la documentation et les manuels. Je connais la syntaxe des langages, et laquelle utiliser n’a pas vraiment d’importance. C'est la même chose avec les frameworks et les bibliothèques - il suffit de lire la documentation et je comprends comment cela fonctionne. Tout est déterminé par le domaine et la tâche.

Evgeniy étudie intensivement la programmation depuis 2013. Un professeur d'informatique au lycée complètement aveugle l'a amené à s'intéresser à l'informatique. Le chemin a commencé avec le Web - HTML, JavaScript, PHP.

"Je suis juste curieux. Je ne dors pas beaucoup – je suis constamment occupé avec quelque chose, je lis quelque chose, j’étudie quelque chose.

En 2015, Evgeniy a postulé au concours « Umnik » pour soutenir les projets techniques de jeunes scientifiques de plus de dix-huit ans. Mais il n'avait pas dix-huit ans, il n'a donc pas réussi à remporter le concours - mais Evgeniy a été remarqué par la communauté des développeurs locaux. Il a rencontré Sergei Milekhin, qui organisait à ce moment-là des conférences à Vladivostok dans le cadre du Google Developer Fest. « Il m'a invité là-bas, je suis venu, j'ai écouté, j'ai aimé. L’année suivante, je suis revenu, j’ai fait de plus en plus connaissance avec les gens et j’ai communiqué.»

Andrey Sitnik de la communauté VLDC a commencé à aider Evgeniy dans ses projets Web. «J'avais besoin de créer une application socket Web multithread. J'ai réfléchi très longtemps à la façon de procéder en PHP et je me suis tourné vers Andrey. Il m'a dit : « prenez les packages node.js, npm qui sont sur Internet, et ne vous cassez pas la tête. Et en général, migrer vers l’open source, c’est cool. J'ai donc amélioré mon anglais, commencé à lire de la documentation et à publier des projets sur GitHub.

En 2018, Evgeniy a déjà fait des présentations au Google Dev Fest, parlant des développements dans le domaine des interfaces accessibles, des prothèses des membres supérieurs, du développement des interfaces neuronales et des systèmes de contrôle d'accès sans contact. Evgeniy est actuellement en deuxième année de licence en génie logiciel, mais il l'a déjà terminée avec succès et termine ses derniers travaux.

«On m'a dit d'implémenter la structure des données dans une table de hachage. C'est une chose standard qui est donnée à tout le monde à l'université. Je me suis retrouvé avec 12 XNUMX lignes de code et un tas de béquilles », explique Evgeniy en riant. « J'ai construit une table de hachage et sa structure modifiée en JavaScript pour lire les données plus rapidement. Et le professeur dit : « J’ai besoin que vous écriviez ce qui est plus facile pour moi afin que je puisse l’évaluer. » C'était très ennuyeux."

Les projets personnels d'Evgeniy semblent beaucoup plus intéressants. Le premier d’entre eux est le développement de standards Web pour les personnes handicapées physiques. Il souhaite créer une ressource fournissant une technologie d'assistance prête à l'emploi afin que les personnes ayant une déficience visuelle puissent facilement l'utiliser sans craindre de manquer certaines informations. Evgeny connaît bien ce problème, car il a lui-même perdu la vue.

Blessure

« J’étais un adolescent ordinaire, avec tous mes membres en place. En 2012, je me suis fait exploser. Je suis sorti me promener avec un ami, j'ai ramassé un cylindre dans la rue et il a explosé dans mes mains. Ma main droite a été arrachée, ma main gauche est paralysée, ma vision a été endommagée et mon audition a été altérée. Pendant six mois, je suis resté allongé sur des tables d'opération.

La main gauche a été assemblée en plusieurs parties, des plaques et des aiguilles à tricoter ont été installées. Au bout de cinq mois, j'ai pu travailler pour elle.

Après la blessure, je ne pouvais plus rien voir du tout. Mais les médecins ont réussi à restaurer la perception de la lumière. Il ne restait plus rien de mon œil à part la coquille. Tout à l’intérieur a été remplacé : les corps vitrés, les lentilles. Tout est possible."

En 2013, Zhenya est allée étudier dans une école correctionnelle pour enfants malvoyants. Ce professeur d’informatique, complètement aveugle, lui a réappris à utiliser un ordinateur. À cette fin, des programmes spéciaux sont utilisés - des lecteurs d'écran. Ils accèdent aux API du système d'exploitation pour accéder à l'interface et modifier légèrement la façon dont ils sont contrôlés.

Zhenya se considère comme un fervent utilisateur de Linux ; il utilise Debian. À l'aide du clavier, il navigue dans les éléments de l'interface et un synthétiseur vocal exprime ce qui se passe.

"Maintenant, vous n'entendrez que l'espace", me dit-il avant d'allumer le programme.

Cela ressemble à un code ou à un bavardage extraterrestre, mais en réalité c'est du russe ou de l'anglais ordinaire, c'est juste que le synthétiseur parle à une vitesse incroyable pour une oreille non entraînée.

« Ce n’était pas difficile d’apprendre cela. Au début, je travaillais sous Windows et utilisais le lecteur d'écran Jaws. Je l'ai utilisé et j'ai pensé : « Seigneur, comment peux-tu travailler à une vitesse aussi lente. » J'ai zoomé et j'ai réalisé que les oreilles étaient enroulées dans un tube. Je l'ai rendu et j'ai progressivement commencé à l'augmenter de 5 à 10 pour cent chaque semaine. J'ai accéléré le synthétiseur jusqu'à cent mots, puis encore plus, et encore et encore. Maintenant, il prononce mille mots par minute.

Zhenya écrit dans un éditeur de texte classique - Gedit ou Nano. Copie les sources de Github, lance le lecteur d'écran et écoute le code. Pour garantir qu'il peut être facilement lu et compris par les autres développeurs, il utilise des linters et des configurations partout. Mais Zhenya ne peut pas utiliser les environnements de développement car ils sont inaccessibles aux aveugles en raison de leur implémentation.

«Ils sont fabriqués de telle manière que leur fenêtre est déterminée par le système et que tout ce qui se trouve à l'intérieur de la fenêtre n'est pas vu par le lecteur d'écran car il ne peut pas y accéder. J'ai maintenant contacté directement JetBrains pour essayer de créer des correctifs pour leurs environnements. Ils m'ont envoyé les sources PyCharm. L'EDI est implémenté sur Intellij Idea, de sorte que toutes les modifications peuvent être appliquées ici et là.

Un autre obstacle est le manque de respect des normes Web courantes. Par exemple, nous voyons un gros titre sur une page. De nombreux développeurs implémentent cela en utilisant une balise span pour resserrer la police à la taille souhaitée, et cela finit par paraître correct. Mais comme le texte n'est pas un titre pour le système, le lecteur d'écran ne le reconnaît pas comme un élément de menu et ne permet pas d'interaction.

Zhenya utilise facilement la version mobile de VKontakte, mais évite Facebook : « VK me convient car il a une liste séparée de menus de navigation. Il contient des éléments et des titres qui constituent pour moi la division sémantique de la page. Par exemple, la rubrique de premier niveau où est indiqué mon pseudo - je sais que c'est le titre de la page. Je sais que l'en-tête « messages » divise la page, et en dessous se trouve une liste de dialogues.

Facebook promeut l'accessibilité, mais en réalité tout va si mal qu'il est impossible d'y comprendre quoi que ce soit. Je l'ouvre - et le programme commence à se bloquer, la page est terriblement lente, tout saute pour moi. Il y a tous les boutons partout, et je me dis : « Comment puis-je travailler avec ça ?! » Je ne l'utiliserai que si je termine mon client ou si je connecte un tiers.

Recherche

Zhenya vit à Vladivostok dans une résidence universitaire ordinaire. Il y a une salle de bain dans la chambre, deux armoires, deux lits, deux tables, deux étagères, un réfrigérateur. Pas de gadgets spéciaux, mais selon lui, ils ne sont pas nécessaires. « La déficience visuelle ne signifie pas que je ne pourrai pas marcher ou que je ne trouverai pas de chemin. Mais je pourrais et serais heureux de m’équiper d’une maison intelligente si j’avais les consommables. Je n’ai tout simplement pas l’argent pour acheter des composants. Pour une étudiante, dépenser cinq mille dollars en frais de scolarité juste pour la fouiner n’est pas du tout rentable.

Zhenya vit avec une fille, elle aide de plusieurs manières dans la maison : « préparer des sandwichs, verser du thé, faire la lessive. J’ai donc eu plus de temps pour me détendre et faire les choses que j’aime.

Par exemple, Zhenya a un groupe musical où il joue de la guitare électrique. Il a également appris après la blessure. En 2016, il passe trois mois dans un centre de rééducation, où il demande à un professeur de l'aider avec sa guitare. Au début, j'ai joué avec la couture d'une chemise retournée. Ensuite, j'ai construit un médiateur.

« J'ai pris un bandage pour renforcer la main, qui est utilisé par exemple par les karatékas, je l'ai ouvert aux endroits où les doigts sont séparés et je l'ai tiré sur l'avant-bras. Il y a un tampon en mousse qui protège la brosse des dommages - j'y ai cousu une pioche que mon frère a découpée pour moi dans une spatule en plastique. Il s’est avéré qu’il s’agissait d’une très longue langue en plastique que j’utilise pour jouer sur les cordes – pincer et gratter.

L'explosion lui a fait sauter les tympans, de sorte que Zhenya ne peut pas entendre les basses fréquences. Sa guitare n'a pas de sixième corde (la plus basse) et la cinquième est accordée différemment. Il joue principalement des parties solo.

Mais les principales activités restent le développement et la recherche.

Main prothétique

Qu'est-ce que ça fait d'écouter du code à 1000 mots par minute

L'un des projets est le développement d'une prothèse de membre supérieur dotée d'un système de contrôle intelligent. En 2016, Zhenya est venue voir la personne qui développait la prothèse et a commencé à l'aider à réaliser les tests. En 2017, ils ont participé au hackathon Neurostart. Dans une équipe de trois personnes, Zhenya a programmé des contrôleurs de bas niveau. Deux autres ont construit eux-mêmes les modèles et enseigné les réseaux neuronaux pour le système de contrôle.

Désormais, Zhenya a repris toute la partie logicielle du projet. Il utilise le Myo Armband pour lire les potentiels musculaires, construit des masques basés sur ceux-ci et applique des modèles de réseau neuronal par-dessus pour reconnaître les gestes. C'est sur cela que repose le système de contrôle.

« Le bracelet possède huit capteurs. Ils transmettent les modifications potentielles à n’importe quel périphérique d’entrée. J'ai vidé leur SDK de mes propres mains, décompilé tout ce qui était nécessaire et écrit ma propre bibliothèque en Python pour lire les données. Bien entendu, il n’y a pas suffisamment de données. Même si je mets un milliard de capteurs sur ma peau, cela ne suffira toujours pas. La peau bouge sur les muscles et les données se mélangent.

À l'avenir, Zhenya prévoit d'installer plusieurs capteurs sous la peau et les muscles. Il essaierait de le faire maintenant, mais de telles opérations sont interdites en Russie. Si un chirurgien implante un matériel non certifié sous la peau d’une personne, celle-ci perdra son diplôme. Cependant, Zhenya a cousu un capteur dans sa main - une étiquette RFID, comme dans les clés électroniques, pour ouvrir un interphone ou toute serrure à laquelle la clé sera liée.

oeil artificiel

En collaboration avec Bogdan Shcheglov, biochimiste et biophysicien, Zhenya travaille sur un prototype d'œil artificiel. Bogdan est engagé dans la modélisation 3D du globe oculaire et connecte tous les microcircuits dans un modèle tridimensionnel avec le nerf optique, Zhenya construit un modèle mathématique.

«Nous avons étudié une tonne de littérature sur les analogues existants, les technologies qui étaient sur le marché et qui le sont encore, et nous avons réalisé que la reconnaissance d'images n'était pas pertinente. Mais nous avons appris qu'une matrice avait été créée auparavant pour enregistrer les photons et leur énergie. Nous avons décidé de développer une matrice similaire de taille réduite, qui serait capable d'enregistrer au moins un ensemble minimum de photons et de construire une impulsion électrique sur leur base. De cette façon, nous nous débarrassons de la couche intermédiaire d'une image claire et de sa reconnaissance - nous travaillons simplement directement.

Le résultat sera une vision qui n’est pas tout à fait au sens classique du terme. Mais comme le dit Zhenya, le reste du nerf optique doit percevoir l'apport d'impulsions électriques de la même manière que celui d'un œil réel. En 2018, ils ont discuté du projet avec le recteur de l'Université technique maritime, Gleb Turishchin, et la mentor de Skolkovo, Olga Velichko. Ils ont confirmé que ce problème peut être résolu grâce aux technologies qui existent déjà dans le monde.

« Mais cette tâche est encore plus difficile que le développement de prothèses. Nous ne pouvons même pas mener une expérience sur des grenouilles pour vérifier dans quelle mesure la rétine génère des impulsions, comment elles dépendent de différentes lumières, quelle zone en génère plus et laquelle en génère moins. Nous avons besoin de financements qui nous permettront de louer un laboratoire et d'embaucher du personnel pour décomposer les tâches et réduire les délais. Plus le coût de tous les matériaux nécessaires. En général, c’est une question d’argent.»

Bureaucratie

Bogdan et Zhenya ont demandé un financement à Skolkovo, mais ont été refusés : seuls les produits finis ayant un potentiel commercial y vont, et non les projets de recherche au stade naissant.

Malgré toute l’originalité de l’histoire de Zhenya, malgré ses capacités et ses succès inspirants, on est surpris par l’étrange malchance bureaucratique. C’est particulièrement ennuyeux d’entendre parler de cela dans le contexte de l’actualité. Voici un autre « produit dont les gens ont besoin » (une application photo, une optimisation publicitaire ou de nouveaux types de chats) qui reçoit ses millions de dollars de revenus et d'investissements. Mais un passionné inconnu ne sait que faire de ses idées.

Cette année, Zhenya a obtenu un séjour d'études gratuit de six mois en Autriche dans le cadre d'un programme de partenariat entre universités, mais il ne peut pas y aller. Pour confirmer un visa, il faut garantir qu'il dispose de l'argent nécessaire pour se loger et vivre à Salzbourg.

"L'appel aux fonds n'a pas donné de résultats, car le financement n'est fourni que pour les programmes menant à un diplôme complet", explique Zhenya, "l'appel à l'Université de Salzbourg elle-même n'a pas non plus donné de résultats - l'université n'a pas ses propres dortoirs et ne peut pas nous aider en matière de logement.

J'ai écrit à dix fonds, et seulement trois ou quatre m'ont répondu. De plus, ils ont répondu que mon diplôme scientifique ne leur convenait pas - ils avaient besoin d'un master et plus. Mes réalisations scientifiques au premier cycle ne sont pas valorisées par eux. Si vous étudiez dans une université locale, que vous êtes titulaire d’un baccalauréat et que vous êtes engagé dans la recherche technique, vous pouvez postuler au sein de l’université. Mais pour une personne étrangère, malheureusement, cela n’est pas le cas.

J'ai contacté à peu près le même nombre de fonds russes. A Skolkovo, ils m'ont dit : désolé, mais nous ne travaillons qu'avec des maîtres. D'autres fondations m'ont dit qu'elles n'avaient pas de financement pendant six mois, ou qu'elles ne travaillaient qu'avec des programmes diplômants, ou encore qu'elles ne finançaient pas les particuliers. Et les fondations Prokhorov et Potanine ne m'ont même pas répondu.

J'ai reçu une lettre de Yandex indiquant qu'ils sont engagés dans une grande œuvre caritative et que l'entreprise ne dispose actuellement pas de financement, mais ils me souhaitent tout le meilleur.

J'ai même accepté un financement ciblé sur contrat, qui me permettrait d'aller étudier et ainsi d'apporter quelque chose à l'entreprise. Mais tout s’arrête à un faible niveau de communication. Je comprends de quoi il s'agit. Les personnes qui travaillent sur les appels téléphoniques et le courrier travaillent simplement selon des documents. Ils voient qu’une candidature est arrivée, ça pourrait même être cool. Mais ils écriront : désolé, non, car soit la période de candidature est expirée, soit vous n'êtes pas éligible selon votre statut. Mais je n’ai pas la possibilité d’atteindre un niveau plus élevé que les propriétaires du fonds, je n’ai tout simplement pas de tels contacts.»

Mais les messages sur le problème de Zhenya ont commencé à se répandre rapidement sur les réseaux sociaux. Au cours des premiers jours, nous avons collecté environ 50 000 roubles, sur les 12 000 euros requis. Nous n’avons pas beaucoup de temps pour nous préparer, mais de nombreuses personnes écrivent déjà à Zhenya pour lui demander de l’aide. Peut-être que tout s'arrangera.

Je serais heureux de terminer ce long texte sur le retour du héros d'Autriche par une expérience nouvelle et puissante. Ou recevoir une subvention pour l'un des projets, et une photo du nouveau laboratoire. Mais le texte s'est arrêté dans un dortoir, où se trouvent deux placards, deux lits, deux tables, deux étagères, un réfrigérateur.

Il me semble qu’il faut de grandes communautés professionnelles pour s’entraider. La femme de Nekrasov a besoin d’argent, de contacts utiles, d’idées, de conseils, de n’importe quoi. Élevons notre karma.

Contacts de Zhenya et autres personnalités importantescourrier électronique: [email protected]
Телефон: +7-914-968-93-21
Télégramme et WhatsApp : +7-999-057-85-48
github : github.com/Ravino
vk.com : vk.com/ravino_doul

Détails pour le transfert de fonds :
Numéro de carte : 4276 5000 3572 4382 ou numéro de téléphone +7-914-968-93-21
Portefeuille Yandex par numéro de téléphone +7-914-968-93-21

Destinataire : Nekrasov Evgeniy

Source: habr.com

Ajouter un commentaire