以每分钟 1000 字的速度听代码是什么感觉

一个需要帮助的优秀开发人员的小悲剧和大胜利的故事

以每分钟 1000 字的速度听代码是什么感觉

远东联邦大学有一个项目活动中心 - 硕士和学士在那里寻找已经拥有客户、资金和前景的工程项目。 讲座和强化课程也在那里举行。 经验丰富的专家谈论现代和应用的事物。

其中一门强化课程致力于使用 Docker 容器化系统进行分布式计算和编排。 参加会议的有应用数学、工程、软件编写等技术领域的硕士和研究生。

这位老师是一位戴着墨镜、留着时尚发型、系着围巾、善于交际、过于自信的人——尤其对于一名 21 岁的二年级学生来说。 他的名字叫叶夫根尼·涅克拉索夫 (Evgeny Nekrasov),两年前刚进入远东联邦大学。

少年得志

“是的,他们年纪更大,地位更高,但我不能说他们更有经验。 此外,我有时还为老师给同学们讲课。 在某些时候,我们意识到他无法再给我更多关于面向对象编程的知识,所以我时不时地给他讲授 OOP、现代开发、GitHub 和版本控制系统的使用。”

以每分钟 1000 字的速度听代码是什么感觉

Evgeniy 可以使用 Scala、Clojure、Java、JavaScript、Python、Haskell、TypeScript、PHP、Rust、C++、C 和 Assembler 进行编写。 “我对 JavaScript 比较了解,其他的都低一两级。 但与此同时,我可以在一小时内用 Rust 或 C++ 编写控制器。 我不是故意学习这些语言的。 我研究了它们以完成分配给我的任务。 我可以通过研究文档和手册来加入任何项目。 我知道这些语言的语法,使用哪一种并不重要。 框架和库也是如此——只需阅读文档,我就明白它是如何工作的。 一切都是由主题领域和任务决定的。”

Evgeniy 自 2013 年以来一直在深入学习编程。 一位完全失明的高中计算机科学老师让他对计算机科学产生了兴趣。 该路径始于网络 - HTML、JavaScript、PHP。

“我只是好奇。 我睡得不多——我总是忙着做某事,读一些东西,研究一些东西。”

2015年,Evgeniy申请了“Umnik”竞赛,以支持XNUMX岁以上年轻科学家的技术项目。 但他还不满十八岁,因此未能赢得比赛——但 Evgeniy 引起了当地开发者社区的注意。 他遇到了 Sergei Milekhin,当时他正在符拉迪沃斯托克组织会议,作为 Google 开发者节的一部分。 “他邀请我去那里,我来了,听了,我喜欢它。 第二年我又来了,认识的人越来越多,交流也越来越多。”

来自 VLDC 社区的 Andrey Sitnik 开始帮助 Evgeniy 完成他的 Web 项目。 “我需要构建一个多线程 Web 套接字应用程序。 我思考了很长时间如何用 PHP 来做到这一点,然后转向 Andrey。 他告诉我,“拿一下互联网上的 Node.js、npm 包,不要伤透了你的头脑。 总的来说,转向开源是很酷的。” 所以我提高了英语水平,开始阅读文档并在 GitHub 上发布项目。”

2018 年,Evgeniy 已经在 Google Dev Fest 上发表了演讲,谈论了无障碍接口、上肢假肢、神经接口和非接触式门禁系统领域的发展。 现在,Evgeniy 正在攻读软件工程学士学位的第二年,但他已经成功完成了学业,正在完成最后的工作。

“我被告知要在哈希表中实现数据结构。 这是大学里给每个人的标准东西。 我最终得到了 12 行代码和一堆拐杖,”Evgeniy 笑着说,“我用 JavaScript 构建了一个哈希表及其修改后的结构,以便更快地读取数据。 老师说:“我需要你写出对我来说更容易的内容,以便我进行评估。” 这很烦人。”

叶夫根尼的个人项目看起来更有趣。 第一个是为身体残疾人士制定网络标准。 他希望创建一种资源,提供开箱即用的辅助技术,以便有视力障碍的人可以轻松使用它,而不必担心错过某些信息。 叶夫根尼很清楚这个问题,因为他自己也失明了。

受伤

“我曾经是一个普通的青少年,四肢都在原地。 2012年,我引爆了自己。 我和朋友出去散步,在街上捡到一个圆柱体,它在我手里爆炸了。 我的右手被扯断,左手被打残,视力受损,听力受损。 六个月来我一直躺在手术台上。

左手被组装成零件,安装了板和织针。 五个月后,我可以为她工作。

受伤后,我什么也看不见了。 但医生设法恢复了光感。 我的眼睛除了外壳什么也没有剩下。 里面的所有东西都被更换了——玻璃体、晶状体。 一切皆有可能。”

2013年,热尼亚去一所视力障碍儿童惩教学校学习。 那位完全失明的计算机科学老师又教他如何使用计算机。 为此,使用特殊程序 - 屏幕阅读器。 它们访问操作系统 API 来访问接口并稍微改变它们的控制方式。

zhenya 称自己是一名狂热的 Linux 用户;他使用 Debian。 他使用键盘在界面元素中导航,语音合成器会说出正在发生的事情。

“现在你只会听到太空声,”他在打开程序之前告诉我。

听起来像是密码或外星人的喋喋不休,但实际上是普通的俄语或英语,只是合成器对未经训练的耳朵来说以令人难以置信的速度说话。

“学这个并不难。 起初我在 Windows 上工作并使用屏幕阅读器 Jaws。 我一边用一边想:“主啊,你的工作速度怎么可以这么慢呢?” 我放大后发现耳朵卷成了管子。 我把它退回来,并逐渐开始每周增加 5-10%。 我将合成器加速到一百个单词,然后甚至更多,一次又一次。 现在他每分钟说一千个字。”

zhenya 使用常规文本编辑器(Gedit 或 Nano)进行编写。 从 Github 复制源代码,启动屏幕阅读器并收听代码。 为了确保其他开发人员可以轻松阅读和理解它,它始终使用 linter 和配置。 但是,Zhenya 无法使用开发环境,因为盲人无法使用它们。

“它们的制作方式是,它们的窗口由系统决定,屏幕阅读器看不到窗口内的所有内容,因为它无法访问它。 我现在已直接联系 JetBrains,尝试对其环境进行一些修补。 他们给我发了 PyCharm 源代码。 IDE 是在 Intellij Idea 上实现的,因此所有更改都可以随时随地应用。”

另一个障碍是缺乏对通用网络标准的遵守。 例如,我们在页面上看到一个大标题。 许多开发人员使用 span 标签来实现这一点,将字体收紧到所需的大小,最终看起来不错。 但由于文本不是系统的标题,屏幕阅读器不会将其识别为菜单元素,并且不允许交互。

Zenya 可以轻松使用 VKontakte 的移动版本,但避开 Facebook:“VK 对我来说很方便,因为它有单独的导航菜单列表。 它的元素和标题对我来说是页面的语义划分。 例如,指示我的昵称的第一级标题 - 我知道这是页面的标题。 我知道“消息”标题划分了页面,下面有一个对话列表。

Facebook 提倡可访问性,但实际上一切都很糟糕,以至于无法理解任何事情。 我打开它 - 程序开始冻结,页面非常慢,一切都在为我跳跃。 到处都是按钮,我想,“我该如何使用它?!” 只有当我完成我的客户或连接第三方时我才会使用它。”

研究

热尼亚住在符拉迪沃斯托克的一所普通大学宿舍里。 房间里有卫生间,两个衣柜,两张床,两张桌子,两个架子,一台冰箱。 没有特殊的小玩意,但据他说,不需要它们。 “视力障碍并不意味着我无法行走或找不到路。 但如果我有消耗品,我可以而且很乐意为自己配备一个智能家居。 我根本没有钱购买组件。 一个学生花五千学费,只是为了逗她玩,太不划算了。”

热尼亚和一个女孩住在一起,她在家里做很多事:“铺三明治、倒茶、洗衣服。 因此,我有更多的时间放松并做我喜欢的事情。”

例如,Zhenya 有一个音乐团体,他在其中演奏电吉他。 受伤后他也学会了。 2016年,他在康复中心呆了三个月,在那里他请老师帮助他弹吉他。 起初,我把衬衫的接缝翻过来玩。 然后我建立了一个调解者。

“我拿了一条绷带来加强手部,例如空手道运动员会使用绷带,在手指分开的地方将其切开,然后将其拉到前臂上。 那里有一个泡沫垫,可以保护刷子免受损坏 - 我在上面缝了一把我哥哥用塑料抹刀为我剪下来的镐。 事实证明,这是一个很长的塑料舌头,我用它来弹奏和弹奏琴弦。”

爆炸震破了热尼亚的耳膜,因此他听不到低频。 他的吉他没有第六弦(最低)弦,第五弦的调音也不同。 他主要演奏独奏部分。

但主要活动仍然是开发和研究。

假手

以每分钟 1000 字的速度听代码是什么感觉

其中一个项目是开发带有智能控制系统的上肢假肢。 2016年,热尼亚找到了正在开发假肢的人,并开始帮助他进行测试。 2017 年,他们参加了 Neurostart 黑客马拉松。 在一个三人团队中,Zhenya 编写了低级控制器的程序。 另外两个人自己构建了模型并教授了控制系统的神经网络。

现在Zhenya已经接管了该项目的整个软件部分。 它使用 Myo Armband 读取肌肉电位,根据肌肉电位构建掩模,并在顶部应用神经网络模型来识别手势——这就是控制系统的构建基础。

“手环有八个传感器。 它们将潜在的变化传输到任何输入设备。 我亲手拆毁了他们的 SDK,反编译了所需的所有内容,并用 Python 编写了自己的 lib 来读取数据。 当然,目前还没有足够的数据。 即使我在皮肤上安装十亿个传感器,仍然不够。 皮肤在肌肉上移动,数据就会变得混乱。”

未来,热尼亚计划在皮肤和肌肉下安装多个传感器。 他现在就想尝试一下——但此类操作在俄罗斯是被禁止的。 如果外科医生将未经认证的设备植入人的皮肤下,他将失去文凭。 然而,热尼亚在他的手上缝了一个传感器——一个RFID标签,就像电子钥匙一样,可以打开对讲机或任何与钥匙相连的锁。

人工眼

热尼亚正在与生物化学家和生物物理学家博格丹·谢格洛夫 (Bogdan Shcheglov) 一起研究人造眼的原型。 Bogdan 从事眼球的 3D 建模,并将三维模型中的所有微电路与视神经连接起来,Zhenya 正在建立数学模型。

“我们研究了大量有关现有类似物、市场上和现在的技术的文献,并意识到图像识别并不相关。 但我们了解到,之前已经创建了一个矩阵来记录光子及其能量。 我们决定开发一个尺寸更小的类似矩阵,它能够记录至少一组最小的光子,并在其基础上构建电脉冲。 这样我们就摆脱了清晰图像及其识别的中间层——我们直接工作。”

结果将是不完全是经典意义上的愿景。 但正如热尼亚所说,视神经的其余部分必须以与真眼相同的方式感知电脉冲的供应。 2018年,他们与海洋技术大学校长Gleb Turishchin和斯科尔科沃导师Olga Velichko讨论了该项目。 他们证实,这个问题可以使用世界上已有的技术来解决。

“但这项任务比开发假肢还要困难。 我们甚至无法对青蛙进行实验来检查视网膜产生脉冲的能力如何,它们如何依赖不同的光线,哪个区域产生更多,哪个区域产生更少。 我们需要资金来租用实验室并雇用人员来分解任务并缩短期限。 加上所有必要材料的成本。 一般来说,一切都归结于金钱。”

官僚

博格丹和热尼亚向斯科尔科沃申请资金,但遭到拒绝——只有具有商业潜力的成品才会去那里,而不是处于初期阶段的研究项目。

尽管热尼亚的故事极具独创性,尽管他有能力并取得了鼓舞人心的成功,但人们还是对奇怪的官僚厄运感到惊讶。 在新闻背景下听到这个消息尤其令人恼火。 这是另一种“人们需要的产品”(照片应用程序、广告优化或新型聊天),获得了数百万美元的收入和投资。 但一个不知名的爱好者不知道如何处理他的想法。

今年,热尼亚根据大学之间的合作计划赢得了在奥地利进行为期六个月的免费学习的机会,但他不能去那里。 为了确认签证,需要保证他有足够的资金用于在萨尔茨堡的住房和生活。

“呼吁资金并没有取得成果,因为资金只提供给完整的文凭课程,”热尼亚说,“呼吁萨尔茨堡大学本身也没有结果——该大学没有自己的宿舍,无法帮助我们提供住宿。

我给十家基金写了信,只有三四家回复了我。 此外,他们回答说我的科学学位不适合他们——他们需要硕士或更高学位。 我本科期间的科研成果不被他们看重。 如果你在当地大学就读,拥有学士学位并且从事技术研究,那么你可以在大学内部申请。 但不幸的是,对于外国人来说,他们没有这个。

我联系了大约相同数量的俄罗斯基金。 在斯科尔科沃,他们告诉我:抱歉,我们只与大师合作。 其他基金会告诉我,他们在六个月内没有资金,或者他们只与文凭项目合作,或者他们不资助个人。 普罗霍罗夫和波塔宁基金会甚至没有回答我。

我收到Yandex的一封信,说他们正在从事伟大的慈善事业,公司目前没有资金,但他们祝我一切顺利。

我什至同意了合同定向融资,这样我就可以去读书,这样我就可以为公司带来一些东西。 但一切都停留在低水平的沟通上。 我明白这是怎么回事。 从事电话和邮件工作的人只是根据文件工作。 他们看到应用程序已经到达,甚至可能很酷。 但他们会写:抱歉,不,因为要么申请期限已过,要么根据您的身份,您不符合资格。 但我没有机会接触到比基金所有者更高的职位,我根本就没有这样的人脉。”

但有关热尼亚问题的帖子开始在社交网络上迅速传播。 最初几天,我们筹集到了大约 50 卢布——所需资金为 000 欧元。 准备时间不多,但很多人已经写信给热尼亚寻求支持。 也许一切都会好起来的。

我很高兴以英雄从奥地利归来的这篇长文结束,并带来一种新的、强有力的体验。 或者获得其中一个项目的资助,以及新实验室的照片。 但短信停在一间宿舍里,那里有两个壁橱、两张床、两张桌子、两个架子、一台冰箱。

在我看来,需要大型的专业社区来互相帮助。 涅克拉索夫的妻子需要钱、有用的人脉、想法、建议,任何东西。 让我们提高我们的业力。

热尼亚的联系人和其他重要人物电子邮件: [电子邮件保护]
Телефон: +7-914-968-93-21
电报和 WhatsApp:+7-999-057-85-48
github: github.com/Ravino
vk.com:vk.com/ravino_doul

转账详情:
卡号:4276 5000 3572 4382 或电话号码 +7-914-968-93-21
Yandex 钱包电话号码 +7-914-968-93-21

收件人:涅克拉索夫·叶夫根尼

来源: habr.com

添加评论