盲人程序员是怎样炼成的

一个星期前,本网站根据劳工部残疾人就业政策办公室(Office of Disability Employment Policy)的报道,编发了一篇文章“通讯手段为所有人提供机会”,介绍为国防部制作网页的盲人程序员张海伦,引起了人们的惊叹,一位读者赞扬张海伦 “了不起,技术难度赶上贝多芬”,另一位则表示“简直难以置信,但是不得不信”。但是也有一些人发出疑问,对盲人竟能制作网页表示不解,认为这是在“糊弄人” ,甚至是“典型假大空的新闻”。

其实,盲人,甚至像张海伦这样出生即丧失视力的人,只要自强不息,在现代科技手段的支持下,掌握像开发网页这样高技术含量的工作,已经不是神话。

毕业于德州大学奥斯汀分校计算机科学系的张海伦,现在为一家联邦政府合同商工作,负责为国防部开发定制系统软件和网站

盲人使用计算机,还要做到像正常人那样在虚拟空间漫游,同网友交流,与同事研究工作,最基本的就是要能够“阅读”屏幕上所显示的内容。早在个人计算机的萌芽阶段,一些大公司就开始研发供盲人和弱视者的读屏工具,其开创者是吉姆•撒切尔(Jim Thatcher)。

与许多正常人卷入残障事务一样,撒切尔也是因为他在个人生涯里遇上了残疾人:当他在密歇根大学读书的时候,他的论文导师杰西•莱特(Jesse Wright)就是一个盲人。1963年,那时计算机科学还处在萌芽状态,撒切尔就取得了该学科的博士学位,后来他和莱特都作为数学家进入IBM公司工作。个人计算机刚一问世,莱特和撒切尔师生二人就开始研发配套的语音接入系统,到1986年,IBM发布了最早的DOS屏幕阅读器之一:第一代IBM读屏器。后来,撒切尔又领导开发了二代读屏器,它是具有个人计算机图形用户接口的第一种读屏器。撒切尔还积极参与了IBM主页阅读器的研发,使得盲人可以与常人一样上网。

还有一项技术进展对盲人得以融入信息时代起了重要作用,那就是雷蒙德•库茨威尔(Raymond Kurzweil)开发的系统,将全方位光学字符识别与文本到语音合成结合起来,使得盲人可以“听读”正常人的阅读文本。这项技术自从1976年问世以来,经过几代人的努力,已经成为盲人与正常人一样获取海量信息的有力工具。

现在,接受过专业训练的盲人程序员利用读屏器、光学字符识别、电子盲文记事本以及盲文触摸屏等工具,弱视者利用操作系统内嵌的放大工具或插件,完全可以在Windows、Mac和Linux等系统平台上,熟练地使用C/C++、Java等各种编程语言编写程序,制作网页。一些原本对盲人程序员不太 “友好”的语言环境,例如python等,也在改进它们的代码程式,剔除妨碍盲人程序员读写的某些障碍。

盲人能够从事编写制作网页这种对技术要求很高的工作,还需要社会上广泛的支持。政府在公共政策上为残疾人提供保障,教育机构为他们入学和学业创造条件,也是出现盲人计算机程序员的重要原因。

在美国,根据联邦1973年康复法(Rehabilitation Act of 1973)的504条款,以及1990年美国残疾人法案(Americans with Disabilities Act of 1990)的第2章,加上这两个法律的修订条款,保证了所有的中小学和大专院校都不得对残疾人士入学加以歧视,州和地方政府机构以及一定规模(15人)以上的私营企业都不得在雇用员工的时候歧视残疾人。有的地方政府立法甚至更为严厉,例如加州法律就将在雇用员工时禁止歧视残疾人的范围,扩大到5人以上的私营企业。

美国的法律不仅在入学和招工时禁止歧视残疾人,而且规定大专院校和企业必须在合理的范围内为残疾人的学习和工作提供便利,其中就包括盲人学生。美国教育部估计,全国高等院校和职业学校有75000名视障学生。在帮助残疾学生的学习和生活所需的常规辅助措施之外,对视障学生,学校还会提供语音教材,屏幕放大、盲文转录或图像触摸转换软件,以及读屏器等工具。现在教育和学校生活越来越多地向虚拟世界转移,对学校向视障学生提供协助带来了新的挑战,以后我们会有文章讨论这方面的问题。

回到本文的开头。那些对盲人可以制作网页、编写软件持怀疑态度的读者,如果仍然觉得上面的解说缺乏说服力,可以上网键入“盲人程序员”几个字进行搜索,很容易就能查到一位名叫拉蒙的盲人,他现在是谷歌的软件工程师。拉蒙出生在印度,先后在印度和美国接受教育,差不多两年前,他到北京出席谷歌的创新论坛,中国的许多报刊和网站都对他进行了报道。另外,中国盲人协会网站也在数天前刊登了一篇报道,讲述菲律宾首位盲人电脑程序员的故事。希望这些可以进一步解除那部分读者的疑虑。

时间: 2024-09-28 13:01:14

盲人程序员是怎样炼成的的相关文章

盲人程序员靠键盘和耳机编程 背 300 行代码

对于编程而言,写程序事小,Debug才是关键,因此有一双善于发现BUG的慧眼是必备技能.那么眼睛看不见也能编程吗?是的,钉钉盲人版的测试程序员蔡勇斌就是一位盲人,盲人程序员的电脑屏幕是不用打开的,靠键盘和耳机完成工作. 他负责对互联网产品进行适用于视觉障碍者的改造,他靠"背"代码来编程,最多的时候背过300多行代码.因为身体缘故,他能发现一些明眼工程师发现不了的BUG. 本文来自开源中国社区 [http://www.oschina.net]

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

我是一个程序员,我也是一个盲人.我的世界中从来没有任何画面,我生来就看不见任何东西. 每次新同事--那些从来没有经历过任何形式视力障碍的人--听说了我的事迹,常常会跑来问我以下这些问题: 那么,你怎么读取别人的代码? 哇!你是怎么做到写代码的呢? 或,最普遍的一个--你会做梦吗? 我总是一次又一次地被问及这些问题.所以今天的主题主要就是回答这三个问题.我会尽量解答大家最大的困惑--盲人究竟是如何写代码的. 关于如何打字 在很多人的印象里,盲人需要使用经过特殊改装的电脑.甚至有些同样有视力障碍的人

优秀程序员需要磨炼的技能

一个优秀的程序员是如何炼成的?问一下自己这个问题会很有意思.这能让你好好思考一下软件开发的过程.拿它来问一下同事也不错,这能引起一些关于如何一起协作的很有意思的讨论.下面是我认为成为一名优秀的程序员所必需的5个技能.   问题分解   编程讲的是如何解决问题.但在你开始写代码之前,你需要清楚如何解决问题.一个好的程序员应该拥有这样的技能,他能将问题分解成子问题,直到每个子问题都可以很轻松地进行解决.不过要找到一个解决问题的方式可不是件简单的事.好的程序员能够很好的对问题进行建模,这样写出来的程序

帅的程序员选择专业,丑的程序员泛泛涉猎

程序员分为两种:帅的和丑的--帅的程序员技术精深,可堪重任,是某个领域的专家:丑的程序员泛泛涉猎,一知半解,啥都会一点却都是半瓶水.当然首先要声明,我是属于那种很丑的程序员,不过我还年轻,通过不懈的努力,有朝一日一定会成为一名很帅的程序员! 特别声明:虽然绝大多数程序员长得都很帅,但是长得帅并不代表就是"帅的程序员". 一·丑的程序员 列夫托尔斯泰曾经说过:"帅的程序员都是相似的,丑的程序员各有各的丑法." 1.不爱学习的程序员不帅. 2.爱学习但不勤奋刻苦的程序员

为JavaScript程序员准备的10本免费书籍

你对你从事的职业中的各种概念掌握得越多,那你就越有优势.当你从事的是技术或者IT方面的工作时,你了解的信息越多,你的基本技 能和意识将越宽广.JavaScript就是这样一门编程语言,你需要掌握和学习的是永无止境的.它会时不时的增加或取消一些脚本,以提高网站建设质量. 一个利用JavaScript来设计网页.游戏或者其他图形的程序员应该知道并理解该编程语言所有重要方面的概念. JavaScript正在主宰这个世界,从创建一个简单的web应用到复杂的机器人,你都可以使用它.因此,很多作者和程序员把

[程序员面试题精选100题]1.把二叉查找树转变成排序的双向链表

[题目] 输入一棵二叉查找树,将该二叉查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向. 比如将二叉查找树                                            10                                          /    \                                        6       14                                      / 

java程序员用ssh+oracle怎么把一张用户数据大表拆分成几个表

问题描述 java程序员用ssh+oracle怎么把一张用户数据大表拆分成几个表,有没有现成的博客可以查看学习,例子demo 解决方案 解决方案二:可以利用view啊,把大表生成不同的view解决方案三:oracle分区解决方案四:这个不是用程序来做的,直接操作数据库.分区处理

[程序员面试题精选100 题]17.把字符串转换成整数

题目 输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析 这道题尽管不是很难,学过 C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程序员的思维和编程习惯,因此已经被包括微软在内的多家公司用作面试题.建议读者在往下看之前自己先编写代码,再比较自己写的代码和下面的参考代码有哪些不同. 我们需要考虑一下几个方面的问题: (1)正负问题: 由于整数可能不仅仅之含有数字,还有可能以'

c-自学成基础网络程序员

问题描述 自学成基础网络程序员 我是一名大二生,希望能去实习,做网络程序员,需要学哪些基础技能呢?谢谢 解决方案 建议你先打好基础,你什么都不会,即使去实习,也只能安排你在非技术岗位,你能学到什么?关键看自己用功. 解决方案二: 建议学习WAP或者java 解决方案三: 先学习一个编程语言,然后就是tcpip网络协议,计算机网络知识.操作系统等等. 解决方案四: 你可以参考一下网络工程师考试所需要掌握的知识.这样方向性更明确. 解决方案五: 基础还是很重要,先打好基础吧 解决方案六: 看你对哪方