来LeetCode快两年了,从354场周赛开始打,后来刷到300多题,再后来进了灵神的群,再后来上了Knight,到现在连续450+天的打卡,我们盲人用户,可能在LeetCode中的比例会无线趋近于0,所以,今天,我打算介绍一下我们。
我的视力现在是0.01,大概的程度是离着屏幕1厘米的地方,用一个电子放大镜放大两倍才能看清屏幕上的文字的程度,我裸眼看到的事物,就是一些大片的色块。原谅我有一些标题党,因为我们被称为”低视力人士“,这种称呼很尴尬,或许盲人会让大家更好接受一些。当然,我身边的很多同学,都是盲人。
首先要介绍的当然是盲人如何进行编码工作的,我们获取信息的主要渠道是听,所以,我们需要一个名为“屏幕阅读器”的软件,简单来说,就是将屏幕上的文本播报出来。但是,为了提高浏览效率,我们一般会将屏幕阅读器的语速设置得极为迅速,一般是正常交流语速的四倍,以下我将通过LC第一题(这个我两年都没做过的题),来演示我们编码的过程,请看屏幕阅读器编码演示。
屏幕阅读器一般会提供给我们一个焦点,当我们按上下光标,或者tab键的时候,焦点会在不同元素之间切换,提取元素的text标签中的内容,并播报出来。大家应该能看到,在我浏览的过程中,屏幕上会有一个黑框在不同的元素之间切换,那就是焦点。但是,有时候仅仅靠上下光标,浏览效率会极慢,这也是我为什么讨厌手速长的原因,很吃亏,所以,我们会有一些加速浏览的方式,比如,我们会有一些快捷键,可以在同一类元素之间切换,比如在按钮之间切换,或者在编辑框之间切换,这在LC的问题页面是很好用的,一般我只要按一下字母E(Edit),我会先跳转到评论的编辑框,再按一次E,就能跳转到编写Solution的编辑框,而如果我按上下光标,我就必须先经过运行按钮、提交按钮、题目描述、视力、提示等部分,换句话说,在使用屏幕阅读器后,所有的元素就变成了线性排列,我们需要像访问链表一样,逐个逐个节点的向后搜索。
我喜欢用白板的原因,是因为在编码过程中,不会有任何干扰。以VSCode为例,当我在编码的过程中,会经常出现代码提示,屏幕阅读器在监测到这些提示后就不再播报我输入的内容,而是转去播报代码提示菜单中的内容。当然,我完全可以把代码提示关掉,不过在平时的开发过程中,它还是很有用处的,比如ClassPathXmlApplicationContext这种东西就不要再手写了~
第一个问题就是手速场,以前在我不知道不提交算没参加这样的潜规则的时候,我真的对1250、1400、 1600、2800的场次很无奈,正如大家所见,我一般都会在本地进行测试,中间有很多看起来很浪费时间的步骤,比如手动实例化,比如print的时候复制方法名,比如在cmd和txt之间切换,但如果我使用网页版的测试环境的话,速度可能会更慢,所以现在提交之前,都会看看通过用户数,然后再做打算。当然也是我懒,可能用习惯LC提供的测试环境有可能会快一些,但每次比赛开始之后都跟打了鸡血一样,实在不想浪费时间去做实验。
另一个问题就是打开思路的过程,一般大家可能都会准备一张草稿纸,来手动模拟一下,或者写一些样例在纸上手动跑一遍代码的逻辑。而我们就需要在心里面把一些模拟的过程想象出来,然后用手比划比划,不过我觉得,熟练了以后,其实这样也很快,因为一般需要想象的结构,无非就是数组,滑窗,数,图,位运算,柱状图这些东西,所以掌握了套路以后其实效果也不错。
总体而言,算法赛真的对我们来说很友好,因为只涉及到编码工作,对视觉的要求并不高,我自认为自己的优势在于逻辑的严谨性。最有感触的是线段树,在写它的时候,我每写完一行,都需要好好检查一下,都会在脑子里说一遍这句代码的意义是什么,因为对于我们来说,如果出现一些语言本身的异常,比如把max错写成min,这样的排查是很浪费时间的,正常用眼睛扫描整个代码可能也花不了太多时间,但如果我们逐字遍历整个代码,那消耗的时间会非常恐怖。但这样的好处就是,我WA的频率会少一些,有好几次都是在群里面看到扣友们哇了五六次,而我无伤AC的情况。
我其实是非科班的学生,但大一的时候我开始自学了C语言,之后就自己把计算机组成原理、操作系统、计算机网络、数据结构与算法、高等腧学这些科班需要学习的内容都自学了一遍。高等腧穴我花了两年才过玩第一遍,因为学这门课不看图很难学会,所以必须看视频课,但我每次拿着放大镜盯着屏幕看大概半个小时,眼睛就会非常酸痛,必须出去走一走再回来看,所以我学习的效率就不是很高,而且放大镜每次只能照一片很小的区域,所以一般我都需要经常暂停,从上到下把整个黑板照一遍才知道老师在讲什么。
但其实最大的问题,并不是学习效率和资源的问题,而是我们身边的环境。现在社会对我们从事这个行业的认可度还没有建立起来,我们很难得到一次实习,甚至面试的机会。这两天我在尝试寻找实习,有一个人主动问我要简历,我说明了自己是视障人士的情况,到现在一直都没有回复。
之前问我一个快30岁的朋友,问他在过去的日子里有没有在马路上看到过盲人,他思索再三,回答说没有。在我们这个群体中,很多人其实是不敢自己拿着盲杖出门,走到马路上,走进社会,去和别人交流的。有一次我咨询一个老师有关实习的事情,她问我的第一个问题就是:你能不能自己走去上班的地方,会不会很危险。当然,我一个人在外地求学快7年了,可以说拿着盲杖想去哪里就去哪里,但我很难让他们相信这一点。
花了大概两个小时写完了这篇文章,我比较的坦诚,我发这篇文章当然有我的小心思,为自己谋个实习的差事。我希望有更多人可以看见我们这群人,看见我们不太一样的一面,看见我们改变的一面。我也希望如果看见的朋友是HR,请在以后的日子里,如果遇到了视障的求职者,给予它们一次面试的机会,因为哪怕是这样的经验,对于它们来说也非常的可贵。我们有自信可以成为一个卓越的程序员,但我们也需要你们的帮助。