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

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

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

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

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

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

文章来源:

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

往期精彩回顾

我是一个线程

C语言:春节回家,就我没有对象!

学习面向对象的令狐冲

我是一个Java Class

面向对象圣经

函数式编程圣经

TCP/IP之大明邮差

CPU阿甘

我是一个网卡

我是一个路由器

一个故事讲完HTTPs

编程语言的巅峰

Java:一个帝国的诞生

JavaScript:一个屌丝的逆袭

负载均衡的原理

阅读源码的三种境界

编程fi什么意思_盲人程序员如何编程?全靠每分钟450个单词相关推荐

  1. 大写的服!用耳朵也能写代码?盲人程序员自学编程成为全栈工程师

    作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 蔡勇斌幼年失明,靠着顽强的毅力和不服输的精神自学编程,成为了一名全栈工程师.作为一名盲人,为了让全中国的其他盲 ...

  2. 盲人程序员的编程生涯

    本文来自于Stackoverflow上的一个问题,下面确实有很多盲人程序员作出回答,笔者感触颇深,故整理成文. 具体技术细节不必深究,主要了解一下他们的工作状态,以期让更多的朋友关注残障人士的生活与工 ...

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

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

  4. java可以写a手机app吗_‎JAVA程序员自学编程 a l’App Store

    *****Java程序员的给力助手***** -----本应用是一款java程序员自学参考手册,内容涵盖了所有java自学入门教程.高级教程以及数十道java经典面试题及代码答案,十分适合java开发 ...

  5. 数控g71编程实例带图_数控程序中g71编程实例

    可选中1个或多个下面的环节词,搜刮相关材料.也可间接点"搜刮材料"搜刮整个问题. 为了满足设想.制造.维修和普及的需要,在输入代码.坐标系统,加工指令.辅助功能及法式格局等方面,国 ...

  6. 自学电脑编程_程序人生:盲人程序员蔡勇斌——用耳朵打开盲人的程序世界 - 沐歌爱编程...

    有句话说:没有你想不到,只有你做不到.今天想为大家介绍一位程序员界中的励志人物,他就是蔡勇斌. 蔡勇斌幼年失明,靠着顽强的毅力和不服输的精神自学编程,成为了一名全栈工程师. 他是阿里"多隆奖 ...

  7. 讨厌程序员_我是程序员但讨厌编程

    讨厌程序员 Did I spark your curiosity? Maybe you have come to the conclusion that you dislike programming ...

  8. Q新闻丨Java 9正式版恐再延期;顺丰菜鸟口水战涉及阿里云;编程语言排行榜Python第四;盲人程序员背百万字符,用耳朵编程...

    编辑|小智 本周要闻:Java 9 正式版有可能被推迟到 9 月 21 号发布:顺丰.菜鸟口水战始末,或涉及阿里云:Node.js 发布 v8.0.0:Visual Studio for Mac 版本 ...

  9. 盲人如何学计算机编程,你知道盲人程序员是如何写代码的吗?

    原标题:你知道盲人程序员是如何写代码的吗? 程序员生涯以困难模式开局:出生在伊朗,生下来就看不见.14岁学VB编程.大学读计算机专业.是PHP程序员.一开始在工作中被歧视.始终热爱编程.很励志. 这是 ...

最新文章

  1. linux5.4iso,Redhat Linux5.4/5.5/5.8/6.0/6.3 ISO镜像文件下载
  2. 北上广Java开发月薪20K往上,该如何做,需要会写什么
  3. 疫情之下,哪些行业正在逆势爆发?
  4. java 重复代码优化_利用注解 + 反射消除重复代码(Java项目)
  5. 开源 java CMS - FreeCMS2.8 数据对象 site
  6. 三个版本Eclipse区别
  7. 程序员的世界有 10 种人,你是哪一种?
  8. centos长ping输出日志的脚本
  9. 利用DiskGenius对硬盘无损分区大小调整+无损分割新分区。
  10. H5打包成app的在线工具
  11. 立方单位换算计算机,体积单位换算
  12. 【物联网方案】智慧鸡舍功能及特点
  13. Dell R730xd 安装显卡后风扇转速高 解决方法
  14. ⑴配置1-5_Telnet_Isolate_Vlan_Hybrid_MAC-Vlan
  15. python中用pygame创建一个精致的窗口
  16. idea本地项目上传至远程仓库及一些常见问题的解决办法
  17. 线性表长度(线性表实训)
  18. tf.matmul函数用法
  19. 教务系统自动评教_PHP版正方教务系统一键评教(已修改BUG)
  20. 智慧城市井盖运营商业方案

热门文章

  1. 宽度自适应实现方法(转)
  2. RTT的IPC机制篇——邮箱
  3. python元组和集合的区别_python 元组与list的区别
  4. 资源放送丨《OGG日常运维及故障处理》PPT视频
  5. 二月技术通讯.pdf丨核心数据库一波三折异常重启分析
  6. 企业级分布式 HTAP 数据库管理系统,腾讯 TBase 正式开源 ​
  7. 数据库流行度9月排行榜:Oracle 的老骥伏枥和 MongoDB 逆风飞扬
  8. 带你了解极具弹性的Spark架构的原理
  9. Kafka生成消息时的3种分区策略
  10. 618 技术特辑(一)不知不觉超预算3倍,你为何买买买停不下来?