查看原文
其他

双手无法敲代码的程序员,该如何编程?

Naomi Saphra CSDN 2019-10-30
对于程序员来说,敲代码是编程工作中不可缺少的“仪式”。那么如果是身患残疾、抑或是无法通过手部来编码的人群来说,又如何突破这道最基本的防线呢?本文的作者就是一位罹患手部疾病的开发人员,他通过自己的切身经历表明,借助外部工具,即使身体方面有所欠缺,也能够成为合格的技术人员!
声明:本文已获作者 Naomi Saphra 翻译授权。

作者 | Naomi Saphra

译者 | 王艳妮,责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下为译文:
2015年8月,我的手无法继续工作了。我仍可以控制自己的手,但是每个动作都会积累更多的痛感,所以每一步都很艰难:比如早上起来穿衣服,发条短信,甚至仅仅是拿起个杯子。
那年夏天我在谷歌实习,即将开始在苏格兰攻读博士学位,但整天写代码的生活让我痛苦不已。在诉说这个故事时,我经常提到,在我学会如何不用双手实现编程之前的很多个月,那段时间我没有事干,唯一能做的事就是去酒吧点一杯伏特加,还要用吸管来喝,现在想想挺好玩的。
我已经被疾病困扰四年了。

Talon

由于这种残疾,我无法用手打字或写字。很多人问过我,是哪些东西让我在手部疾病的限制下仍然保持高效工作的?我希望我的经验之谈对于那些症状比我更重和更轻的人都能有所帮助。那些症状比较轻的人往往只是有轻微的机械劳损,减少键盘的使用就能使他们的情况改善。
此处登场的明星就是Talon(https://talonvoice.com/)了,这个系统可以让你轻松编写自定义语法和脚本,与语音识别系统配套以实现编程。指令的范围从简单的常用符号别名到复杂的元命令,它们重复先前的话或改变听写模式。举个栗子,就括号而言,我对(,),(),和()⬅️都有单独的指令(将光标留在括号之间,以便我说的下一句话被括起来)。
每个Talon用户都有许多私人脚本。我写的最宝贵的脚本可能是我带索引的剪贴板:

用法很简单。在使用我的光标控制(my cursor control)命令选择一个特定的短语后,我会说“clip [foo]”(复制),每次我想输入相同的短语后,再说“paste [foo]”(粘贴)。因此,对于一个特别讨厌的变量名,我只需要录入一次。但是,这确实引入了一个新难题:每个变量都有两个名称,即其书面名称和口头名称。这种不幸的副作用加大了给变量命名的难度,这被称为“计算机科学中最难的问题”。
如果你是Vim或Emacs的高级用户,你可能会对这些感到熟悉。我有针对搜索、移动光标、选择和操纵剪贴板的指令。学习如何听写代码的过程非常类似于彻底地学习一个新的文本编辑器,都一样归结于自定义你的特定语言和需求这个挑战。
Talon社区有依据不同应用程序或编程语言生效的专用指令。比如,对于Perl用户,借鉴Emily Shea的设置可以作为一个不错的起点:

(完整版视频可点击:https://youtu.be/Mz3JeYfBTcY)

我的Talon设置的语音识别方面是依赖Dragon来进行的。不幸的是,Nuance已停止了OSX Dragon支持脚本语言的版本。
Talon背后的开发者,Ryan Hileman,正在着手一个合适的替代品,但在我写本文时,这个应用还未面世。
一个小插曲
人们经常问我疾病的诊断是什么,但严格来说这取决于我身处哪个国家。在初步假设是腕管的毛病后,美国的风湿病专家给了我第一个诊断:弯管综合征,俗称鼠标手,这个词在医生的词典里意思就是“你走吧”。
但我并没有走。一位神经科医生对我进行了皮肤活检,然后我在美国的官方诊断就变成了“特发性小纤维神经病变”(idiopathic small fiber neuropathy),意思就是说我缺少传递热量和疼痛的关键神经纤维,但却没有人知道病因。特发性(idiopathic)在医生的词典里也是“你走吧”的意思。
然后我去了英国。我带去了在美国的医疗记录,但我的英国神经科医生没有看我的医疗记录或给我进行体检。在简短的谈话之后,他给我一张写着他找不到任何生理原因的纸条,这就是我在英国的诊断,并且他“怀疑有重要的功能叠加”,这就是医学院里的老师教的,如何委婉表达某人有妄想症时的一套说辞。
我的全科医生看了纸条以后告诉我,他是不会给我开止痛药的,也不会让我去找神经科医生重新检查一次,也不会建议我去寻求任何其他专科医生的治疗。他只会介绍我去心理医生那里来帮助我“消解我痛苦背后的根源性问题”。
然后我说了句“NTM的”,他就把我从办公室里撵出去了。大堂里倒是的确挂着“禁止骂人”的标语。

装备

用语音听写的过程中,我使用的是两种不同的麦克风。在办公室,我用的是Sennheiser ME-3,而在旅途中,我用蓝牙耳机,Sennheiser MB Pro 2。
另一个对我来说很重要的设备是我的脚踏板,我用的是PageFlip Firefly。它可编程,所以我修改了设置,包括一个对于在Skim上阅读有用的设置,左踏板对应一下单击,右踏板对应一个下箭头。我可以用脚来控制滚动条,以及进行点击来注释。我添加的另一个踏板设置将某踏板操作对应到单击并shift + enter,这个设置对于Jupyter Notebook以及在Quiver中记录我的研究笔记和数学演算非常有用。
当我的手的情况变得异常糟糕时,我没法移动鼠标,我需要使用shortcat,它可以让我通过语音指示键盘而不必使用鼠标就能按下按钮。
最后一件必备的装备是一对大护腕。我的护腕主要用途是阻止我习惯性地去使用自己的手,我总是在会议上戴上它们,因为这样比不断地重复“我的手有残疾所以无法握手”这句话更简单一些。
另一个小插曲
我经常做各种噩梦,梦见我的大拇指断掉了,梦见我手上的每根骨头都断裂,梦见我的手臂上爆发出大片的流血伤口......然而每次睡觉醒来,留下来的疼痛感仍然像一场看不见的噩梦。

限制

也许有些讽刺的是,如果你开始用语音听写代码了,最让人担心的是你是否会使你的声道产生机械劳损。静静地说话实际上可能会造成更大的伤害,多喝水很重要,良好的姿势可以防止你的声音以及身体的其他部分受到伤害。我强烈建议去找一位,教演员和歌手如何保护自己声音的声乐教练。
工作间隙的休息时间是很重要的,而且你可能会觉得在工作之余,说话变成一件很累人的事情。
语音识别技术并不完美,如果你有特殊口音,错误率会更高。此外,每次出现感冒或喉咙痛时,你可能都无法编程。所以我对轻微的小感冒都很畏惧。
拥有一个私人空间来进行语音听写是很重要的。我无法在家高效工作,但是自从我有了一个私人办公室,我好几个研究项目的前进势头就迅猛了起来。我知道这对许多人来说是一个巨大的限制,因为当今兴的是那种破坏生产力、令人窒息的开放式办公。
如果你的工作场所已成为这一趋势的牺牲品,你可能也还有别的选择。在许多国家,如果你有残疾,大公司将有义务为你提供私人工作空间。
附录
我的残疾生活并不容易,但由于享乐适应原理以及令人满意的工作和爱好,我其实觉得过得挺开心的。如果你最近罹患某种残疾或慢性疼痛,可能会觉得你永远也无法适应患病的那种生活方式。这就是为什么我试图跟你讲述我遇到的挑战以及我的成功。对于那些已经克服逆境的人,人们往往有两种反应:“这件事情原本就不那么难”或“我永远也做不到”。你要越过这两种反应。这件事情确实很难——但你能做到。
如果你目前身体健全,请对身边的残疾人,不论是同事还是其他人,只要你有能力帮助他们,就对他们有价值且充实的工作给予支持吧。我鼓励其他残疾科学家和开发者在遇到任何问题时与我联系。
原文:http://nsaphra.github.io/post/hands/
作者:Naomi Saphra,爱丁堡大学机器学习PhD在读。

【END】

 热 文 推 荐 

☞ 重磅!全球首个可视化联邦学习产品与联邦pipeline生产服务上线

☞ 语音识别技术简史

☞ 物联网成网络安全防护新重点!

10 步教你接手同事的代码!

☞亚马逊首席科学家李沐国内首次亲授「深度学习实训营」
CSDN & 火星财经, 联手发起Libra超级节点竞选!
"学了阿里中台,却依然做不好系统?" 聊聊阿里的项目管理
如何写出让同事无法维护的代码?

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存