盲人程序员如何编程?全靠每分钟450个单词

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/coderising/article/details/101444300

640?wx_fmt=png

昨天有人给我发了一篇文章,我一看到图就觉得很奇怪,这个人坐在一个小隔间里,戴着耳机,敲着键盘,但是他的面前却没有屏幕, 他在干什么?

他叫Tuukka Ojala, 是一个Web开发程序员,他坐在那里编程。

但是,他是一个盲人。

如何使用电脑?

盲人使用电脑都很不容易,怎么编程呢?Tuukka Ojala使用了一个屏幕阅读器的软件,可以把屏幕上的文本变成布莱叶盲文(需要特殊的盲文显示设备)或者合成的语音。 

这种合成的语音语速非常快,每分钟要说450个单词,而正常的语速是120-150个单词。

大家感受下这疯狂的语速:

对普通人来说,这语速太快了,但是Tuukka Ojala已经练出来了,这速度不在话下。 

鼠标对Tuukka Ojala来说是没用的,他主要用键盘,用箭头键/Tab键在一个窗口内移动,用alt+tab在窗口之间切换。屏幕阅读器也有一些快捷键,可以读取窗口各个部分的文本。

但是当“阅读”网页的时候,他就和普通人不一样了,因为普通人可以快速地浏览,而他不得不一行一行地去听那些文本。 

Tuukka Ojala 在命令行上花费了很多时间,除了浏览器和编辑器之外,他很少使用GUI程序,他也发现命令行通常比GUI做事情更快。 

Tuukka Ojala 主要用Windows办公,既然主要用命令行,为啥不使用Linux?  这是因为Windows 有着最好的Accessibility (无障碍访问),并且有一个开源的,很活跃的屏幕阅读软件NVDA。虽然Windows有些固有的不足,但是通过使用Git Bash,也算是有了一些补偿。

如何编程?

那他到底怎么去编程呢?  比如怎么去阅读代码?  

实际上Tuukka Ojala 必须像听小说一样去听这些源代码,如果代码库很大,他是听不过来的,在这种情况下,他必须把一些代码在脑海中抽象一下:这个组件使用x作为输入,然后返回y, 而不考虑具体的实现细节。

我觉得这是很有难度的,普通程序员拥有在代码中导航的奢侈能力,但对于Tuukka Ojala来说只好尽可能把代码给记住,他自己也承认由于看不见,他的记忆力反而发达了。

你可能觉得像缩进和代码格式化对于盲人来说是什么用处的,实际上不是这样,当他使用布莱叶盲文来“阅读”代码的时候,这能给他一个很好的感觉,让他知道在什么地方,就像视力正常的程序员一样。

另外当他把一个代码块缩进的时候,也会有语音的提示,这让他在脑子中画出一张代码的地图,所以清晰良好的代码风格对Tuukka Ojala也是一件好事。

使用什么IDE?

一年前,他主要用Notepad++,一个轻量级、制作精良的编辑器, 虽然还有一些更高级的轻量级编辑器例如Sublime和Atom,但是他的屏幕阅读器和这些工具之间没法良好协作 --- Accessibility 是头等大事。 

后来由于要开始大型的Java项目,他开始转向了 IntelliJ IDEA,从此IDEA一直是他的首选。他是他对IDE有一种根深蒂固的反感,因为他觉得对Accessibility 支持不好,并且效率低下。 

作为盲人,怎么和前端代码打交道?

前端开发是可视化的,盲人很难参与,但是Tuukka Ojala 却做过相当一部分Angular和React工作,例如他曾经花了几个星期,对一个Angular应用增加了国际化的支持,他根本不需要视觉的支持。

像Bootstrap这样的库对他来说是天赐之物,利用其中的网格系统,他可以设计用户界面的粗略版本,当然,在真正交付之前,还需要经过人眼确认一遍。这至少说明,他可以开发前端代码到一定的程度,只要不触及太多的表示层。 

刚看到这篇文章的时候觉得惊奇,看完后就觉得震撼,我脑海中想象着他编程的场景:

一边听着屏幕阅读器发出的声音,一边在脑海中建立程序的结构,思考该如何写代码,输入代码,屏幕阅读器给他反馈,然后运行,出了问题还要去调试,还得靠听......  

看起来轻而易举的事情,对他来说得付出更多的努力才行。

最后再给这位帅哥来个正脸,向他致敬:

640?wx_fmt=jpeg

文章来源: 

https://www.vincit.fi/software-development-450-words-per-minute/

往期 精彩回顾

640?wx_fmt=jpeg

猜你喜欢

转载自blog.csdn.net/coderising/article/details/101444300