我今年24岁,即将失明,还能继续写代码吗?

一位 24 岁的程序员,两年前被诊断出尤塞氏综合症(又称遗传性耳聋-色素性视网膜炎综合征)。随着时间的推移,这一疾病可能会逐渐夺走他的听力、视力。那么,以后的职业生涯该怎么办?还能继续写代码吗?这位年轻的全栈工程师在 HackerNews 上发出了求助信息。

这位工程师表示,他有 7 年工作经验,主要从事 JavaScript 项目,还有一些 PHP。对于一个没有正规教育经历的年轻人来说,他走到这一步实属不易。急速下降的视力让他不得不考虑以后的人生,但在编程方面已经付出了那么多,他也不想轻易放弃。

因此,他想知道:

  1. 有盲人前端工程师吗?

  2. 什么样的软件工程适合视力受限的人?后端吗?

  3. 除了屏幕朗读器,还有哪些工具能帮助视力受损的程序员?

  4. 你所在的公司会雇佣盲人程序员吗?如果会,效果怎么样?他们都做哪种编程项目?

身患先天性疾病是一件令人悲伤的事,但生活还是要继续。作者的提问在 HackerNews 上获得了不少暖心的回复,并迅速被顶到了 3000+的热度:我们很少看到会有如此意见一致的情况。在这其中,也有盲人程序员现身说法。

用户 @kolanos 的回答获得了最多的点赞:

你绝对可以继续担任软件工程师,我就是活生生的例子。这并不简单,尤其是在一开始。有一段时间你会觉得自己需要付出双倍的努力才能跟得上自己的同行。但最终你会发现随着自己越来越习惯使用辅助工具,你将掌握一些别人不具备的能力。

例如如果你熟悉了屏幕朗读功能,你可以把语音的速率调到 1.75 到 2 倍——这样一来你就成了唯一能够听懂屏幕阅读器在说什么的人。你会成为团队中阅读、打字速度最快的人(因为打错了字母听起来不对劲),就像聆听一首熟悉的歌曲,然后在旋律中敲出每一个音符一样。

另外, 由于代码不再以块的形式呈现在眼前,你会发现自己构建的代码越来越接近于脑中所想。 视力正常的人也会事先思考,但它们在脑中的构想仍然趋向于视觉化。如果放弃了 2D 表达,你会发现非视觉构想图更加没有界限。你会惊讶于没有视觉局限时,自己的记忆力有多么出色。

闭着眼写的代码反而更接近脑中所想?这一说法也得到了其他盲人开发者的共鸣。网友 @TriNetra 表示, 其实写代码是一件在脑海里进行的工作

我是一名全栈工程师,在前端和后端系统方面都有着丰富的经验。我在 Windows 上用 Jaws 屏幕朗读器工作,而且经常使用 AutoHotkey 来提高自己的生产力。我曾在微软等公司工作,从 2016 年开始经营自己的咨询及产品公司。

对于第一个问题,你可以做前端编程,但肯定需要一些帮助来验证 UI 设计。在任何一个像样的项目中,我更喜欢让能看见的同事处理看和感受方面的事情(主要是 CSS,虽然我懂 CSS),因为我觉得把时间花在这上面不太划算。你最好有一个 UI 专家帮你。软件开发者有很多其他的事情要做,尤其是基于 SPA 的项目。

对于第三个问题,Visual studio 非常适合开发和 debug(至少适用于.net 相关的语言)。如果你用的是 Windows 系统,尝试使用 autohotkey,用快捷键和热字符串将一些重复性操作和文本自动化。

另一件重要的事是找到同事正在使用的 UI 工具的替代品。不要仅仅因为你的团队在用某个工具就跟风,毕竟别人只会根据你的交付能力而不是工具来评价你。

最后,我非常同意 @kolanos 的说法。编程是一项在脑海中进行的活动,每个人都必须先在大脑中构思程序的表现形式,然后再付诸于代码。

这个答案同时也回答了有没有人雇佣盲人程序员的问题。还有人表示自己 80 年代在贝尔实验室工作的时候就见过一位视力有障碍的大神,「 他的编码速度比其他人都慢,但在某种程度上,这是他的秘密力量,因为他的代码几乎从未在测试中失败过。 」可见,身体上的障碍并没有将程序员的职业生涯堵死。

对于盲人程序员身上这种「神秘的力量」,亚马逊零售无障碍软件工程师 Michael Forzano(也是一位盲人)解释说,视力正常的人们通常是视觉动物,他们仰赖白板以及绘制图表,透过视觉学习和理解。但盲人没有这些视觉工具,因此 他们必须在脑中建立心智图,借以记忆代码结构、系统特定的组件甚至是文档位置,也因此对于系统的整体架构有了独特理解 。很多时候,Michael Forzano 的同事还需要他来说明特定系统运作的方式。

在工具方面,暖心的网友们也给出了不少建议。

一位用户名为 ddevault 的网友(也在经历视力下降)推荐使用平铺窗口管理器,有助于用更加逻辑化的方式组织窗口:https://git.sr.ht/~sircmpwn/dotfiles/tree/master/bin/swaytalk。

此外,ta 还写了一些带有语音合成功能的 Vim、Weechat(IRC chat)使用插件:https://git.sr.ht/~sircmpwn/dotfiles/tree/master/lib/vim/vimspeak.vim、https://git.sr.ht/~sircmpwn/dotfiles/tree/master/.weechat/python/talkative.py。

还有人推荐了 谷歌盲人科学家 T. V. Raman 写的语音桌面工具 Emacspeak,这款工具可以让盲人上网变得更加方便。T. V. Raman 是谷歌颇具传奇色彩的盲人科学家,他 14 岁时就因为青光眼失去了视力。由于自己就是盲人,T.V.Raman 非常了解盲人的需求,他改进了计算机朗读软件,让多项应用变得对盲人更加友好,为这个人群带来了巨大的便利。

除了针对盲人开发的工具以外,目前还有一些适合其他身体障碍人士的工具。

谷歌 2019 年曾经发布一款名为 Live Transcribe 的语音识别引擎,可在手机端上使用人工智能算法为对话带来实时字幕,为听障人士提供方便。

该项目的主要负责人, 谷歌研究科学家迪米特里·卡维斯基 (Dimitri Kanvesky)也是一名聋哑人。他出生于俄罗斯,1 岁失去了听力。但在美国期间他还学会了使用英语说话。

迪米特里现在可以使用自己发明的技术与他人实现接近完美的交流。

在看了这么多建议之后,这位年轻的工程师表示,他会努力尝试这些机会,并设法接触一些盲人编程社区的成员,为自己的下一步做好准备。

参考链接:https://news.ycombinator.com/item?id=22918980