盲人程序员是如何编程的?

  我是一个程序员,我也是一个盲人。我的世界中从来没有任何画面,我生来就看不见任何东西。

  每次新同事——那些从来没有经历过任何形式视力障碍的人——听说了我的事迹,常常会跑来问我以下这些问题:

  那么,你怎么读取别人的代码?

  哇!你是怎么做到写代码的呢?

  或,最普遍的一个——你会做梦吗?

  我总是一次又一次地被问及这些问题。所以今天的主题主要就是回答这三个问题。我会尽量解答大家最大的困惑——盲人究竟是如何写代码的。

  关于如何打字

  在很多人的印象里,盲人需要使用经过特殊改装的电脑。甚至有些同样有视力障碍的人也赞同这一观点。

  那么,现在就让我来揭穿这个秘密吧。上面你看到的字以及下面我将写下来的字都是用一个非常平常的戴尔 Inspiron 15r SE 笔记本打出来的,你可以在任何戴尔笔记本商店中买到它。该机运行的是 Windows 8(这是预装的)。我只需要做一件事,那就是安装一个开源的屏幕阅读器名为 NVDA(www.nvaccess.org)。

  屏幕阅读器,基本上要做的就是——等待它——读取屏幕上的内容。它将屏幕的文本内容通过类似 Siri 的语音完成从文本到语音的转换。

  屏幕阅读器还允许使用盲文显示器,盲文显示器这个设备上面的盲文系统单元可以根据屏幕上的高亮内容不断地刷新形成新的字母。

  所有有视力障碍的计算机用户只需要适应这些就够了。这个程序,可以让我做很多事情,很多你闭上眼睛可能完全不能想象的事情,如:

  使用 Firefox 浏览网页

  使用 Microsoft Word 写报告,然后按照大学教授的严格要求整理格式

  写博客文章,就像本文

  录制、编辑、混音和发布音频(唱歌和制做音乐也是我的爱好之一)

  使用制作音频的 app,如 Reaper、Goldwave、Audacity 和 Sonar

  使用 Eclipse、Visual Studio 和古老的 NotePad++ 编码网站和 app

  我之所以将这些技术一一列举出来是为了说明,我也可以和你们一样使用它们。

  关于如何编码

  比如下面这段代码:

  if(x=5){

  print ("hello world!")

  }

  读出来的效果就是:If 左括号x等于 5 右括号左大括号 print 左括号引号 hello world 惊叹号引号右括号右大括号。

  这是一个典型的 if 模块 Java 编程语言,听到我耳朵里的就是上面这么冗长的一句话。我倾向于先关闭括号和括号中的语音通知,直到后面需要括号匹配调试的时候再关注括号中的内容,这样我就不会因为描述过于冗长而听得云里雾里不知所以。有的人喜欢将默认的“左大括号”替换成“花括号”或者“开始”,只是为了节省几毫秒的时间。老实说,这语速对于不习惯的人而言那是相当快滴。

  也许你不相信,但是我确实是通过语音阅读用 NotePad++ 写下了这篇博客文章。

  所以,我的编码方式可能和你们的并没有什么本质的区别,也不用将我想象的有多么的牛逼。唯一的区别是,我不用鼠标,我用的是快捷键和命令行。

  不过不幸的是,在盲人编程这个领域,一切都没有得到很好的完善。程序员每天都在使用主要工具,如 IntelliJ 编辑器,以及它所有的衍生产品(PHPStorm、WebStorm、PyCharm),我都没办法使用。因为这些程序的开发人员没有遵守无障碍原则,正如在修建公园的时候没有设置一个无障碍通道一样。SourceTree 也同样如此,虽然它有在慢慢改善,但是直到现在每次用的时候,依然让我异常痛苦。

  因此,我不得不不断地寻找可用的教程、程序和工具,而不能像在超市货架上随便挑一个现成的就可以。

  关于我如何做梦

  我也会做梦,和你们是一样的。大致就是白天接收过的信息,晚上再将这些经历和神经兴奋反馈到梦里。所不同的是,我实际上是看不到任何东西的。

  不过,我可以听到、闻到、感觉到一切,就像在现实生活中。原因很简单:梦里面的视觉形象是在已存储的视觉知识上来构建的。由于我打从娘胎以来就一直没看到过东西,所以我没有任何可参考的视觉框架。例如,我的梦中曾碰到过一个大大的 404 error:但是没有图片的。

  参考资料http://zhidao.baidu.com/question/200091994091382685.html
http://zhidao.baidu.com/question/489453852244345172.html
http://zhidao.baidu.com/question/1755320451253035788.html
http://zhidao.baidu.com/question/1755320514741383788.html
http://zhidao.baidu.com/question/304952540611099404.html
http://zhidao.baidu.com/question/489453916520558332.html

时间: 2024-11-09 20:45:29

盲人程序员是如何编程的?的相关文章

程序员教流浪汉编程,开发APP

panpan @ 2013.10.05 , 09:34 am 一天,Patrick McConlogue宣布他将要教一个流浪汉学Java语言,帮助他开发一个属于他自己的app.今年23岁的Patrick是一名软件工程师,每天在去上班的路上他都会遇见那个流浪汉,然后他就决定践行自己的一个主意,看看他会不会是那个人. “这个主意很简单.”Patrick在自己的网站上写道: 1.我明天再路过时给你100美元.2.我明天再路过时给你三本JavaScript教程(入门级.高级.专家级)和一台便宜的笔记本.

至少50%程序员不会编程

50%以上的程序员不会编程,只是懂点语法而已,50%是保守数字.或许有80%,从我身边人来看,一家较大的上市公司,码农千余人. 就像大多数学生学了十年英语,背了堆单次,但写不出来英语作文一样 程序=算法+数据结构 而对于嵌入式程序员,不止如此 嵌入式程序=x*算法+y*数据结构+z*计算机体系结构+t*操作系统 计算机体系结构泛指各种硬件体系结构,比如磁盘.内存.usb总线,pcie总线.sata控制器,网卡,gpio,i2c,等等等等,当然包括CPU指令集,外设接口,各种控制器,寄存器,甚至汇

在程序员联盟除了编程,你还能学到这些

在程序员联盟除了编程,你还能学到这些 在程序员联盟,你绝对不仅能学到编程.这里是你加油充电,获取各种知识,得到正面能量的地方. 只要你有一颗愿意学习,彼此互助的心,你要学以下这些都可以,而且完全免费(小编私下免费帮过很多人): 外语:指导英语,法语,西班牙语的学习 烹饪 健身:游泳,练腹肌,胸肌,等等 翻译 查找资料能力 等等. 而且小编有很多学习资料,不仅限于编程.也知道很多精品网站,大牛,论坛.我可以帮你快速制定个人学习的最佳计划. 当然,小编也有很多不足的,盼望彼此学习,多多指教~ 而且,

程序员生存定律--编程的起点与可能的失足

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------- 从大环境来看,想不写程序直接去做管理工作是很难的.大多时候都要在开发上做出一定成绩,接下来才有选择技术还是管理的机会.因此即使是希望选择管理方向,技术上的基本功还是需要的.所以下面这节的内容和选择做管理方向还是技术方向关联不大,只要是想做程序员,大致上都有

黑马程序员_Java网络编程

1,IP地址和InetAddress IP地址是互联网上每台计算机都有的自己的标记,IP地址分为5类,A类保留给政府,B类给中等规模的公司,C类给任何需要的人,D类用于组播,E类用于实验. A类  1.0.0.1-126.255.255.254  B类  128.0.0.1-191.255.255.254   C类  192.0.0.1-223.255.255.254  D类 244.0.0.1-239.255.255.254 E类 240.0.0.1-255.255.255.254 在以后开发

黑马程序员__GUI_网络编程

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- GUI 1.事件处理就是处理用户的一个操作这个事件,在事件发生的时候程序应做出什么反应.当事件发生在哪个组件上, 哪个组件就可以说是事件源.给事件源添加一个监听器对象,监听器对象中包含若干事件处理方法.如果事件发生了, 事件处理方法就会自

【转载】程序员:增加编程经验的3种途径

最近,有位论坛会员陷入了一个与许多入门级程序员相同的尴尬局面中:企业们不喜欢雇佣没有经验的人,并且多数都不愿意提供培训.如果那么多的企业都不雇佣没有经验的人,那么这些人要从哪寻得他们所需的经验呢?不幸的是,这种局面是大多数IT人士所面临的主要问题. 通过与这位会员长期的交流与反复的讨论,就加快他的职业生涯发展,除了给他<开始编程生涯的5个建议>之外,我另外还提出了三条建议,以助他积累增加编程经验. 1. 无偿工作(或几乎免费) 企业界通常可能并不想雇佣经验少或没有经验的人,而非盈利界通常乐意(

老程序员:当编程属于第二职业的时候

Liz Beigle-Bryant是在1973年接触到她人生的第一门编程课,BASIC.那个时候,电脑还是数学部门而非工程部的组成部分,她回忆说.并且由于她的家族有着艺术背景,所以每个人都劝阻她不要去学习编程. Beigle-Bryant,现年已经57岁了,自从几年前学习免费在线php教程之后,又开始投入了编程怀抱.那时虽然没有直接的报酬,但是她发现学习技能有助于缓解求职过程中不可避免的沮丧感. “我觉得我是在做一些有意义的东西,而不是在Facebook和手机游戏上浪费时间,”她说. 2011年

程序员OR非程序员,有些编程的事需要知道

我们的日常生活深受软件和Web开发的影响.越来越多的人意识到了软件的重要性,例如,假如你想前往巴西看世界杯,你应该首先在网上预订机票,订机票时应该用你的信用卡支付费用,成功预订机票后,你的电子邮箱会收到一个电子机票.当你到达机场时,你的身份证信息会被移民数据库系统检测,当这些都OK了,登机飞往巴西.猜猜怎么着,整个过程涉及到计算机上的软件.许多人持有这样的观点:每个人应该学习如何编程.这很吸引人,但是不切实际.然而即使你不知道如何编程,这里还是有一些关于编程的事情你需要知道. 编程是一个难以置信