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

有句话说:没有你想不到,只有你做不到。今天想为大家介绍一位程序员界中的励志人物,他就是蔡勇斌。

蔡勇斌幼年失明,靠着顽强的毅力和不服输的精神自学编程,成为了一名全栈工程师。

他是阿里“多隆奖”首位盲人获得者,十年间,他开发的PC秘书,安卓秘书等,广泛应用于互联。

他说:只要环境无障碍了,这世界就不存在残疾人。

c8341a157e8050341172ad2aea5bad6a.png

不愿做盲人按摩师的盲人少年

蔡勇斌于1988年出生在广东省东莞市。6岁那年,蔡勇斌家里装修,他因为好奇和贪玩,不小心被石灰灼伤了眼睛,仅存一点光感,视力几近为零。由于视力存在严重的障碍,蔡勇斌一直到13岁才得以去了深圳元平特殊教育学校读书。到中考前,蔡勇斌因为需要做手术而辍学,前前后后,他只上过4年的学。

当时考虑到以后的生计问题,家人最初给蔡勇斌安排的出路是学习按摩,将来做一名盲人按摩师,但蔡勇斌并不喜欢按摩。

蔡勇斌在深圳特殊学校上学时,一次偶然的机会接触到了互联网,当时有一款功能简单的读屏软件,可以帮助蔡勇斌接触外面的世界,但由于那时的读屏软件功能单一,仅仅限于读写功能,因此没能带给他带去太多的帮助。

后来,功能更强大的读屏软件诞生了,蔡勇斌可以通过它浏览互联网、下载资料、进行QQ聊天等等。第一次听到QQ的咳嗽声,蔡勇斌非常的兴奋,就像是打开了新世界的大门一样,从此蔡勇斌不可自拔地愛上了网络。

997a7c869f91e7860edfbe22901c0777.png

动手重装系统

上高中时,蔡勇斌有一回在家里琢磨电脑时,不小心把哥哥电脑上的系统软件给删除了。他既紧张又害怕,担心被哥哥责罚的他决定靠自己摸索,给电脑重装系统。眼睛看不见的蔡勇斌只能靠着耳朵听声音来判断系统重装到了哪一步。就这样,经过无数次的摸索和学习,蔡勇斌终于学会靠听声音就能熟练给电脑安装系统软件的本领。

蔡勇斌从这件事之中获得了很大的成就感,同时也启发了自己:何不学会使用电脑来改善生活。他不禁想到这世上还有无数和他一样身处黑暗之中的盲人,他们使用电脑时肯定存在许多不便。蔡勇斌就想着有没有可能开发出一些电脑软件给他们使用,让他们也可以和正常人一样使用网络来学习并且和外界交流。

09dfd1e95bb518f3d38c85f2d34a89ca.png

自学编程

有了这个想法之后,蔡勇斌开始想办法学习电脑编程。尽管蔡勇斌身处互联网科技先进发达的深圳,但对于一个眼睛看不见的少年来说,学习编程又谈何容易。

因为看不见相关的教材,蔡勇斌便找到学校的计算机老师央求他教自己编程。一开始,老师被蔡勇斌的想法给惊呆了,一个盲人竟然想学习编程?这简直是天方夜谭!出于好心,老师劝蔡勇斌不要折腾,不如趁早放弃这个念头。但蔡勇斌却异常地坚定执着,他一次次地去找老师,向他虚心求教,最终被他的执着所感动的老师同意试着教蔡勇斌。

虽然有老师帮忙,但蔡勇斌的编程学习之路却并不顺利。因为看不见的缘故,很多的代码都要靠背诵来识记。有时候为了写一小段程序,蔡勇斌却不得不把所有的代码都背诵下来,不仅为了查找方便,还为了修改时不需要别人帮助就可以自己更正。除了这些,因为很多编程书籍没有盲文版,蔡勇斌只好花高价钱请人把编程书籍翻译成语音版的。

反复地背诵,不断地练习,一次次地自我纠错,蔡勇斌不知道在黑暗中摸索了多久,他曾经从早上六点就坐在电脑面前自学,一直到晚上八点才恋恋不舍地离开。靠着不懈的坚持和惊人的毅力,蔡勇斌牢牢记住了几百万字的程序代码,也学会了如何编程。

06241a50ccfe49efb854a637f6224d22.png

成为全栈工程师

为了能跟上技术的更迭,蔡勇斌逼着自己学习了C语言、C++,为了自己的软件能有一个发布平台,他还学习了建站技术、PHP、Javascript等编程语言。如今的蔡勇斌已经成了一名具有十几年开发经验的全栈工程师,Web端、移动端、PC端都有涉及,不管是前端还是后端都有做过代码相关的工作。

对于这些经历,蔡勇斌并不觉得痛苦,他总是能在苦中作乐。

在学习html语言时,由于视觉障碍的关系,蔡勇斌起先怎么也不能理解tr(表格的行)、td(表格的列)到底有什么区别。于是,利用自己的一点残存的一点光感,蔡勇斌将电脑屏幕调到最亮,把脸凑得很近,以此来分辨tr和td的区别。

蔡勇斌曾调侃自己:“当时我的电脑是完全没有灰尘的,大概是凑得太近,眉毛把灰尘全清理掉的缘故吧。”

用耳朵写代码

人们也许会好奇,眼睛看不见的话,怎么能写出代码?

对蔡勇斌来说,写代码是用耳朵来完成的。和一般的程序员不同,他工作时不需要打开电脑屏幕,而是通过读屏软件听取每一个字符代码来进行程序编写,因此一个主机、一个键盘、再戴一个耳机就可以了。至于写代码,则通过记事本。对于像蔡勇斌这样的程序员来说,记事本是一个很好的编程环境,因为它的无障碍效果最好,不管是快速查找、跳转、或者浏览,都是一个非常便捷的工具。

同时,蔡勇斌编写程序时追求越简洁越好,不追求过多的排版。排版是相对于视觉而言,对于听觉而言,则完全没有必要。

3ab3d87bde9ce0384ca47d015e14b64f.png

积极通过互联网改善盲人的生活

成为一个出色的程序员之后,蔡勇斌加入了深圳信息无障碍学会。这是一个致力于用电脑和网络等新型技术来改善残疾人生活的协会。深知盲人生活的不便的蔡勇斌决定用自己的特长来改善盲人的生活。

为了让盲人的生活变得方便起来,蔡勇斌决定从互联网着手,他先后与阿里巴巴、百度等知名互联网公司合作,一步一步改善盲人的生活。他从自己学习编程时靠耳朵和语音达到与正常人学习速度的经历中受到启发,决定让所有盲人软件都逐步实现“语音化”、“智能化”。

蔡勇斌利用自己身为盲人的特点,设身处地地为他们着想,亲自参与各种软件的设计。在他的努力下,手机天猫、无障碍版的通讯软件钉钉、手机百度等盲人版相继上市。同时为了让视觉障碍者们能够顺畅地学会使用这些软件,他还一次次地深入全国各地的盲人学校,亲自教他们如何使用。

互联网给普通人带来了便利,也给残障人士带来了许多不可替代的解决方案。蔡勇斌说,“只要这个产品‘无障碍’了,这个世界上是不存在所谓的‘残疾人’的。互联网成为了我们身体的延伸。”

123a40e9492048cd1094cc650858eec2.png

荣获“多隆奖”

2018年5月,五四青年节社区发起了来晒晒属于你的“第83行”的活动,活动中邀请业界的大牛、大神们来晒代码或者Review代码!最终,由网友和大牛共同评选出了获得点赞和大牛评分最高的2位参与者,其中一位正是蔡勇斌。对于蔡勇斌晒出的代码,阿里巴巴系统软件事业部高级研究员多隆评价称:“简洁,这可能是盲人工程师特点。”

29日,多隆在第二届研发效能嘉年华(云效)直播间为其颁发了“多隆奖”。他的获奖评语为,“作为一个拥有10年PC开发经验的盲人程序员,他不仅参与了钉钉无障碍版本的测试,还编写过很多帮助盲人使用电脑之类的软件。他带我们走进了属于他的代码视听世界,让更多盲人看见。”

结语

中国有1731万视障者,如果蔡勇斌的App能打造成功,也便是让这些人有机会在互联网时代无障碍通行,“看见”全世界了。

在黑暗的世界里,他用各种方式自救,更像堂吉诃德面对风车一样,挑战着世俗的偏见。如果有一天,都市的写字楼里有盲人白领,咖啡店里有盲人老板,电视里有盲人主持人……到那时,也许不需要自救者联盟,盲人们都可以无障碍地与世界交流相处,并且有尊严地生活下去。

b3026be87c66c9f4e5af19c39f87451c.gif

最后,如果你也想成为程序员,想要快速掌握编程,这里为你分享一个学习企鹅圈子!

里面有资深专业软件开发工程师,在线解答你的所有疑惑~编程语言入门“so easy”

编程学习书籍:

d9cfb330bc0a4a9a5672f632c10edc54.png

编程学习视频:

7a0ef9e1aa1823fc502ca4d1bb6be2e7.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLite轻量级数据库,操作数据常用语句

2019独角兽企业重金招聘Python工程师标准>>> -----创建表---- ----------表格头英文换中文显示select name as 名字,age 年龄,class from student -----if not exists判断表存在否--字符串用char也行--- --如果用自增长,只能用包装类型integer,不能用int…

cuda编程_CUDA编程入门(四)并行归约算法

这一篇我们一起学习一下如何使用CUDA实现并行归约算法。首先我们要知道什么是并行归约。并行归约(Reduction)是一种很基础的并行算法,简单来说,我们有N个输入数据,使用一个符合结合律的二元操作符作用其上,…

csgo怎么控制电脑玩家_电脑怎么远程控制他人电脑,教您给电脑设置远程控制的方法...

有些时电脑出现了一些我们解决不了的问题时,这时我们一定第一时间想到就是让电脑高手帮忙看一下问题;但要对方在异地该办呢,那就通过电脑远程来解决了;那么问题又来了,电脑怎么远程控制他人电脑呢?小编下面…

div悬浮在固定位置_悬浮式超声波致动器概要及研究动向

作者:东京工业大学 中村 健太郎1. 序言以往的超声波马达是通过摩擦力驱动,固定片压电振子与转子接触,通过振动摩擦转子从而获得旋转力和推动力。虽然具有高转矩、高控制性等特点,从原理上讲其速度无法超过振子振动速度。压电振子的…

基于Java的设计开题报告_基于Java的电子邮件的收发系统的设计与实现开题报告...

基于Java的电子邮件的收发系统的设计与实现开题报告 (8页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.90 积分开题报告 基于 Java 的电子邮件的收发系统的设计与实现 一、选题的背景、意义 1、 电…

Zookeeper-源码启动

源码启动zookeeper zookeeper源码下载地址: //选择分支3.5.8 https://github.com/apache/zookeeper.git 源码导入idea后,org.apache.zookeeper.Version类会报错,需要建一个辅助类 //全局搜索org.apache.zookeeper.Version这个类就找到了…

pandas 取excel 中的某一列_Excel快速分表(xlwings+pandas)

Excel总表快速分表:step1: 读取exel数据到DataFramestep2: dataframe中数据进行筛选step3:将筛选完的数据存储到excel中工作中应用实例step1:读取Excel的数据到pandas 的Dataframe方法1:采用pandas,读取sheet1的内容到…

通过点击切换文本框内容的脚本示例

定义一个字符串为内容的数组,每一行的多个文本框为一组,要求点击切换内容,且内容不重复. 代码 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">2 <html>3 <head>4 <title>New Document </title>5 <script>6 …

qmenu只在鼠标单击时消失_两种方法解决win10电脑无法使用无线鼠标问题

使用有线鼠标时用户们是否也都会被那条线控制住&#xff0c;有时需要大范围移动时并不行&#xff0c;现在很多用户都会选择使用无线鼠标&#xff0c;因为可以随意移动使用更加方便。但是在使用中也有用户遇到了麻烦&#xff0c;使用win10连接鼠标后无法使用&#xff0c;这是要怎…

线程的几个状态

Runnable&#xff1a;一般指该线程正在执行状态中&#xff0c;该线程占用了资源&#xff0c;正在处理某个请求&#xff0c;例如有可能在对某个文件操作&#xff0c;有可能进行数据类型等转换。Waiting on condition&#xff1a;等待资源&#xff0c;或等待某个条件的发生。具体…

c++ 数组的输入遇到特定字符停止输入_滑动窗口思维--挑战“无重复字符的最长子串”

文章来源&#xff1a; 饭饭的Python学习之路作者&#xff1a; 一粒米饭今天要挑战的是“无重复字符的最长子串”。难度&#xff1a;中等题目描述&#xff1a;给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例1:输入: "abcabcbb"输出: …

Effective C++ 读书笔记(八)

8 定制new和delete 条款49&#xff1a;了解new-handler的行为 new_handler set_new_handler (new_handler new_p) throw(); Sets new_p as the new handler function, the old one is returned. operator new抛出异常以反映一个未获满足的内存需求之前&#xff0c;它会先调…

docker 打包_Springboot2.0学习11 使用maven插件打包docker部署应用

一、本文目标使用Maven插件构建SpringBoot应用的docker镜像镜像推送至Docker Registry启动容器本文开发环境 &#xff1a;jdk1.8mavenideaSpringBoot2.2本文使用 com.spotify 的 docker-maven-plugin插件执行docker命令。据说官方不再推荐使用该插件&#xff0c;而是使用 docke…

[转帖]Mootools源码分析-49 -- Asset

原帖地址&#xff1a;http://space.flash8.net/space/?uid-18713-action-viewspace-itemid-410355 原作者&#xff1a;我佛山人 代码 //脚本,样式和图片的资源加载varAsset newHash({ //脚本资源的加载javascrīpt: function(source, properties) { //合并属性项…

桌面壁纸大全:50套高清 Mac 桌面壁纸背景【下篇】

这篇文章收集一组非常精美的 Mac 高清桌面壁纸分享给大家&#xff0c;这些都是仔细挑选的完美图片。挑选一张自己最喜欢的 Mac 高清桌面壁纸给你的电脑换上&#xff0c;让你的电脑看起来与众不同。 您可能还喜欢 分享18套精美的苹果风格免费图标素材10套精美的免费网站后台管理…

SpeedyCloud研发总监李孟:不要让底层细节被上层打败

随着互联网的发展&#xff0c;对于现代企业来说&#xff0c;DNS与CDN服务的作用正变得愈发重要&#xff0c;网络访问速度决定了前端客户体验&#xff0c;同时也影响着内部业务系统的运行。SpeedyCloud作为一家新晋IaaS云服务供应商&#xff0c;在DNS与CDN方面同样拥有丰富的实践…

springboot 关闭懒加载_SpringBoot新手入门篇

SpringBoot是干哈的介绍&#xff1a;springboot是由Pivotal团队提供的全新框架。spring的出现是为了解决企业级开发应用的复杂性&#xff0c;spring的通过注册bean的方式来管理类&#xff0c;但是随着业务的增加&#xff0c;使用xml配置bean的方式也显得相当繁琐&#xff0c;所…

NodeManager启动流程与服务

本文介绍了NodeManager的启动流程与服务. NodeManager主流程 在main方法中new一个 NodeManager, 然后初始化并启动. 这里主要看initAndStartNodeManager方法. 首先是增加一个shutDownHook, 即CompositeServiceShutdownHook, 它的目的是为了在NodeManager crash的时候停止compos…

Unity3D的断点调试功能

&#xfeff;&#xfeff;这篇文章介绍的调试工具是Unity自带的MonoDevelop, 假设要用VS&#xff0c;须要下载unityvs http://unityvs.com/. http://liweizhaolili.blog.163.com/blog/static/162307442013214485190/ 断点调试功能可谓是程序猿必备的功能了。Unity3D支持编写js…

python中if else语句用法_Python中if-else语句的多种写法

原博文 2017-02-06 10:24 − 初学Python在看程序时发现python中if-else的多种写法&#xff0c;故对其进行分析。 以下为网络内容&#xff1a; a, b, c 1, 2, 3 1.常规 if a>b: &nb... 相关推荐 2019-11-13 15:13 − if x A: do something for A elif x B: do somethi…