Bring your karma
Join the waitlist today
HUMBLECAT.ORG

Blind and Visually Impaired Community

Full History - 2020 - 11 - 25 - ID#k0zvqj
24
I'm a blind programmer / developer. #AMA (self.Blind)
submitted by zersiax
I have never done one of these before.

I am genuinely curious if anyone stumbling across this may have questions to a person doing programming entirely without sight, so ...there's a place to do that now. This one, in fact.

I guess other topics may include going through college, messing with language learning and other such fun shenanigans. I shall respond to every query, but if the question is suitably off-topic my answers may be similarly so :P
Prefect316 3 points 2y ago
What kinds of beginner tutorials are out there for blind people aspiring to dip into programming? I'm talking those of us who have never written a line of code in our lives, a little HTML on WordPress notwithstanding.
zersiax [OP] 4 points 2y ago
If you want my take, which I am assuming you do given you asked the question here, I think you should try to let go of the idea of blind-specific programming resources entirely. They don't exist, nor do they really need to. That sounds odd, maybe even a little ablist but hear me out.

Programming, at it's core, is writing down lines of text into a file and converting that text into instructions the computer understands. HTML does this by being opened in a browser, and your magic incantations in the form of HTML tags get turned into links, images, headings etc.

Now, you could have technically written these incantations in SuperDuperMegaIDE version 20.0, or in good old Notepad. For the end result, it really doesn't matter all that much. And that's where my point comes in.

For many programing languages out there, you can google for " language name tutorial", find an article and just ...start reading and coding. You may not always be able to use the exact same tools as being mentioned in the tutorial, but that's a different issue entirely. You can learn about the syntax, the libraries, you can find a tutorial on how to build a reddit clone yourself and generally you should be able to follow along.

So in that sense, you can pick up any old programming tutorial and get cracking. What you WILL need to know, will is in all caps to denote stress, is if the programming language you have picked out requires specific tooling and in what way that is going to be a problem accessibility-wise. In practice, this rarely happens, but it does still happen. Delphi, for example, is definitely very tied to it's IDE which is pretty inaccessible last time I checked. Most of the .NET languages ($1, f#, c# etc) work best in Visual Studio 2019, which is reasonably accessible and usable especially if you make sure you have your NVDA up to date and enable the UIA settings in NVDA's advanced settings. I am pretty sure JAWS doesn't require this.

Python comes with Idle, which is inaccessible, but can easily be programmed in Notepad, or Visual Studio Code, or anything really. Just don't use a rich text editor like WordPad or MS Word, that will blow up.

SO in short ...do I think you should look for blind-specific programming tutorials? No, please don't. You will limit yourself far too much by doing that. However, there is certainly a nitch for programmers who are blind sharing their workflow here. Explaining how they navigate code, how they deal with indentation, things like that. It is for that reason that I do things like this AMA.

If you'd like to discuss this more, please send me a private message. I can probably point you in the right direction, and I actually teach coding myself as well, but that I'd have to charge you for :)
tylandlannister 1 points 2y ago
Hi. I have a question that is more professional related than programming.

I'm a self taught developer who is about to start applying for junior positions. Due to the pandemic, the majority of interviews will be over zoom, skype, etc.

My question is are there any tools to help me know if the camera is correctly focused on me. As someone who stays alone, hitting up someone sighted before every meeting to ask if my posiitioning is accurate seems rather counter productive.

I know Seeing AI on Iphone for instance has an app that tells you if you are in focus. Do you know of any windows pc equivalent? If not, do you have any suggestions?

​

​

Thanks
zersiax [OP] 1 points 2y ago
I do not, but what you can do is use your webcam to snap a picture of what it's seeing before you have your interview and see if your face is visible on it with something that describes images. iPhone, Google Chrome's image descriptions,things like that. At that point, if it sees a face, you're good. You don't need to be front and center, as long as you're visible :)
tylandlannister 1 points 2y ago
That sounds good. Thanks.
impablomations 1 points 2y ago
You might want make your question a seperate post, it will have a much better chance of getting an answer than in a two month old thread.
ModernistMelancholic 1 points 2y ago
Do you have any recommendations for a text editor that works well with JAWS? I have a blind student interested in taking my HTML and CSS classes that I teach over Zoom, for a local college. I'm not concerned with teaching the content. Just figuring out the accessibility of the tooling involved.
zersiax [OP] 1 points 2y ago
Sorry for the late reply.
I myself do not currently use JAWS, but I would say Notepad++ and Visual Studio Code are good ones to try. I'd say Notepad++ if your student is less technical, as VS Code can take some geting used to and does a lot more for you under the hood.
I'd say the intricacies of CSS will be a trickier obstacle to overcome than the choice of text editor. Feel free to poke me if you have any other questions regarding that or anything else your student runs into.
ModernistMelancholic 1 points 2y ago
Thank you! Classes don't resume until later in January so I have a little time to figure this out. This student doesn't have any previous programming experience so I have recommended Notepad++. CSS does seem like it will be the trickier obstacle. I am willing to work with them outside of class time, to ensure they get value out of the class. I have been surprised by how many of my new students come in without any sense of how files and folders and paths work.
zersiax [OP] 1 points 2y ago
Yeah ...that is why I wouldn't say something like Visual Studio Code will add all that much quite yet. I love it, and it is very accessible, but I think at this stage it would take attention and cognitive space away from what you're actually trying to teach.
Really curious how you get on :)
Orinks 1 points 2y ago
I've recently thought of jumping into Cybersecurity, being very new to it but interested as it involves networking etc.

There's a degree program I can take, but would it be worth it as a blind student to go for it? Or will I not be able to complete it due to inaccessibility.

​

I'd love to get a programming job or even career, but when those topics come up, everybody thinks computer science. I'm primarily interested in coding, not the baggage that comes along with a CS degree.
zersiax [OP] 1 points 2y ago
Coding and computer science are not necessarily interlinked. If you want to be a web developer for example, having a computer science degree might often be overkill in my opinion. Companies often still appreciate you having such a degree, but having a well-filled portfolio/github profile is becoming way more important very rapidly.
As for cybersecurity ... I'm not sure if currently pursuing a degree in that is the smartest option, mostly due to the time crunch you'd be under. A lot of tools of the trade (burpsuite, OWASP ZAP, etc) are either not at all, or only in a very limited fashion accessible, so you'd constantly be hunting for other tools to do the same things. And while that doesn't necessarily have to be a problem, it will be if you have some hardass professor who only lets you use the one tool the class uses and won't cooperate with you to find a better one. Which in college life is quite common. So ...I guess yes you technically could, but if you would want to is a different matter.
soundwarrior20 2 points 2y ago
Hi thanks very much I have some questions. What do you think of the current level of accessibility of Discord on iOS? Do you think rust is worth learning as a first-time language? Also what would your advice be for someone that is blind that wants to get into cyber security? Thank you very much for your time and happy Reddit cake day :-)
zersiax [OP] 1 points 2y ago
:) Discord for iOS is ...usable, last time I checked. Not sure if I'd call it a pleasant experience, but it can be used. I like it far better on Windows though to be honest.
As for rust as a first-time language ... it really depends on your goals. I think for a vast majority of cases, Rust might be overkill for what you want to do. It's not a bad language at all, and could be a very good first language, but you have to ask yourself what kind of things you want to build first, before you start looking at what language would work well for that purpose.
As for cyber security, you can absolutely get started with it. I'd recommend working with a combination of resources to get various takes on the topics you are looking at, that way you can look into alternatives for inaccessible tooling and inaccessible learning materials a little easier.
soundwarrior20 1 points 2y ago
Hi mate thanks very much :-) what cyber security resources would you recommend?
rumster 1 points 2y ago
Very cool! Do you have anything that you can share with us?
spacelibby 1 points 2y ago
Ooh, I have several questions. For background I'm a PhD student in CS, and have been programming for a while. I still have enough usable vision to read, however that may change in the future, so I've been practicing with a screen reader recently.

It sounds like you primarily use windows, so you may not be able to answer this, but do you know of any resources for getting up to speed with Linux screen readers? I've been playing around with orca, but I haven't gotten it to work with Firefox at all, and it hasn't played well with the terminal or vim. I've been looking into fenrir, but that's been silently failing on me.

I'm also curious how you deal with code layout in python. I imagine most of the time you can just let vscode format it for you, but if there's a syntax error, that sounds like a nightmare to fix audio only.
zersiax [OP] 1 points 2y ago
Hmm ...the hopeful answer would be to keep trying Orca, Speakup and Fenrir. Orca should work with Firefox, for as far as I know, and it is for me when I use Kali in my cybersecurity pursuits, so something might be borked there. As for vim, I honestly never tried it on Linux so I really don't know :)

Emacspeak, obviously based on emacs, has quite the learning curve, but people do report success with it as their main code editor. Perhaps give that a look?

As for indentation, honestly I'd probably leave the field entirely if I didn't have my braille display. Yes, fixing that kind of thing with audio only would be a nightmare to me, but I also know that plenty of people actually make it work for them by having the screenreader read or indicate the amount of indentation a line has. I do not know if Orca can do this, but I know that NVDA and JAWS, as well as VoiceOver on the mac (kinda), have facilities of letting the user know how far a line is indented. I have perfect pitch, so I can use NVDA to emit beeps at various pitches to keep me apprised of that if I ever code without a braille display. You know ...like ...when you're stuck in a pandemic and you're on the couch and really don't want to move to the other floor where the big braille display is ;)
AndAdapt 1 points 2y ago
Not the op but. On linux emacs with emacspeak is your only real option. Having said that it's a great option. I use it on my Mac for python development
spacelibby 1 points 2y ago
Shoot, between this and the haskell community, I'll probably actually need to learn emacs. Thanks though, that actually sounds like a good option.
Unlikely_Science 1 points 2y ago
Tabs or spaces? And how does it impact the readability of the code?

Thanks so much for doing this.
zersiax [OP] 2 points 2y ago
hah! :) Are you going to ask me vim or emacs next? ;)

Spaces for me, every time, although I might have my IDE convert tabs to spaces for a small productivity boost.

As for code readability, it doesn't matter a huge deal. On the braille display, they are rendered the same way but obviously one tab would only take one space whereas multiple spaces take ...well ...multiple spaces :) You could argue that using tabs in that case makes more characters fit on a braille display all at once and you'd be right, but I've never really found that to be a great decisive improvement really. I don't like that I need to look up how a tab is rendered and if it is analogous to two, four etc. spaces , so I tend to go with what I know :)
Rethunker 1 points 2y ago
Have you ever tried Xcode?
zersiax [OP] 2 points 2y ago
Yes, unfortunately. Xcode, in my opinion, is a good example of technically accessible, terrible to use regardless.

Don't get me wrong, you can absolutely create iOS and mac apps in Swift if you want to. You might get some extra grey hairs in the process, but it can be done. You can however also ...not do that and save yourself some time and energy by attacking that problem from a different angle.

These days, there are a lot of tools out there to leverage existing programming skills in order to not have to learn new programming languages. React-Native, NativeScript, ...I'm not sure if RubyMotion is still a thing but it might be. Those essentially let you develop in another programming language only to have your code turned into what is essentially native code, which means you can code in an environment that doesn't require you to do 25 steps for what should be a simple process, and only use xCode or a mac to build your app once you're done with it.

If you already are invested in the Swift ecosystem and really like the mac, it's probably easier to stick with that though. In that case, I would highly recommend swapping out InterfaceBuilder for SwiftUI. It is still in beta I am pretty sure, but should work heaps better for blind programmers :)
seperath 1 points 2y ago
Hello! Thank you for your time! Are you able to visualize at all, or were you without sight from birth?
zersiax [OP] 6 points 2y ago
I have always been blind. So any spatial awareness or visualization I am able to do is entirely cut loose from the visual. I realize that might sound odd but it's really the best description I can give :)
seperath 1 points 2y ago
Happy cake day!

I am fascinated and seeking understanding and empathy for non visual perspective - have you had success utilizing collaborative community style software or other digital communications tools like Skype for business, MS Teams, WebEx and Zoom. Do you utilize the speech voice synthesizer more, less, or equally as a Refrehable Braille Display or other Braille device?

Thank you for your time!!
zersiax [OP] 1 points 2y ago
I am not 100% sure I understand your question. For as far as I am aware, most of the collaboration on such platforms would happen over voice, so through a microphone. So I'm not sure where the speech synthesizer or braille display would come in? Do you mean in the chat window? Or perhaps when screen sharing?
That last thing is not accessible as a receiver, so strategies have to be figured out if what the screenshare is showing is necessary information.
[deleted] 1 points 2y ago
[deleted]
zersiax [OP] 2 points 2y ago
They have kept up improving accessibility of various parts of the interface and that is still an on-going project. Right now, for example, they are trying to tackle Jupyter notebooks working better.

Terminals work quite well these days although I tend to still do things from a commandline window regardless,just force of habit really.
[deleted] 1 points 2y ago
[deleted]
zersiax [OP] 2 points 2y ago
Yep, you can definitely say that the exodus to the web took everyone by surprise a bit where that's concerned. HTML doesn't have all the tools we'd like it to have for the GUIs to work well, and the tools it does have are more often than not misused and wrongly implemented. That's why you get told you have a new message 15 times in a row, rather than just once, on some pages.

It's being worked on ...it just takes a lot of time :)
vyoda 1 points 2y ago
How do you deal with implementing the layout and color from a wireframe to UI?
zersiax [OP] 7 points 2y ago
I don't. I have personnel for that ;)

In all seriousness, going from a mockup or wireframe to code is just not something a blind person can currently do. You'd need a textual description of some kind, and even then working with CSS can be so finicky that you'll almost always have to have someone who can see check over your work.

I mostly focus on back-end development, HTML and various templating engines, working with already existing CSS when I can.
YoYo31415 1 points 2y ago
Do you use a screen reader, or some type of Braille interface? If it’s a screen reader, is it reading every character you type/read? I’m really curious how you do this. I’m an EE who mostly uses Matlab scripting, but python is my next project. I use a combo of enlarged font and sometimes screen reader, but I’m reeeally new to the screen reading part. Not sure if some IDEs are better than others. (sorry, guess that was a lot of questions!)
zersiax [OP] 6 points 2y ago
Heh, I did say ask me anything :) Let's see:

\- Do you use a screen reader, or some type of Braille interface? If it’s a screen reader, is it reading every character you type/read?

I use both, actually. A braille interface can only work if it's being powered by a screenreader, so you are essentially always a screenreader user if you use braille, even if you don't use it's speech functions. :)

As for if it reads every character, it depends. I myself get really annoyed if I have to listen to code with full punctuation announcement enabled, so I tend to use braille to check the details and use speech to get the bigger picture when I'm skimming code.

I have heard of people abreviating various symbols to make them more brief though, right brace becoming race and left brace becoming lace. When reading at a significantly high speech rate, these abreviations can give an extra productivity boost, and if you don't have braille or vision to fall back on and speech is your only modality, every little bit helps in that sense.

I've written several articles about how I do various things, mostly on FCC news. I go into more detail there :)

As my IDE, I tend to prefer Visual Studio Code these days. It does quite a few things that other IDEs did not do for a long time and often times still don't do. Think accessible code suggestions, accessible debugging etc. :) Hope that answers your questions :) Feel free to ping me if you have more.
YoYo31415 1 points 2y ago
Thank you!
RunsOnBoltCoffee 1 points 2y ago
What languages are you proficient with? Are there any communities/subreddits geared towards blind programmers?
Any kb or documentation/advice for getting the most functionality with Eclipse and Java?
zersiax [OP] 8 points 2y ago
I mostly work with Python, Ruby, PHP, C#, JavaScript, Elixir and I intend to pick up Rust at some point. I just haven't had the time yet.
I am also working on figuring out a curriculum for cybersecurity enthusiasts, skirting around the various inaccessible tools in that space, but that is still a work in progress.

As for communities ...not really, honestly. There is a $1 mailing list called program-l that comes closest, and there's a Visual Studio Code accessibility channel on Gitter that has a lot of blind coders on it, but that's all I can think of.

People have tried, but afaik it never really got anywhere.

As for Java and Eclipse ...I'm afraid I severely dislike that particular programming language, and one of the reasons is definitely the hit-and-miss accessibility of it's development tools. Last time I checked Eclipse worked reasonably well in some areas, better in others, terrible in yet others. VS Code is my daily driver these days, using NVDA as my screenreader. So no, I know of no article or KB resource to get better at that, sorry :(
RunsOnBoltCoffee 1 points 2y ago
Nice. I appreciate the reply.
I’m currently Midway through a 36 week software development certificate program and have just been looking for ways to increase productivity.

We did concepts in Python, and I did enjoy using VS Code, but the INXS ability of the consul was a pain. I ended up writing code in VS, and then playing around with the different cursor‘s in JAWS to read basic output in IDLE.
Eclipse as a whole has actually been extremely accessible, complete with a fully functioning accessible consul. Keep in mind that I am still learning the basics, having just read the chapter on classes. I was really just looking for advice using the debugger, as I haven’t been able to figure out a way to functionally use it yet.
I am eventually looking to get into A11Y testing/engineering and figured Java would be good to know for native Android testing.
Mister-c2020 2 points 2y ago
Hey, I am in programming in college. We use Java and eclipse. I use NVDA and make sure the symbol levels is at most. I hope this helps! I’m sure me and you could exchange questions about how to use Java. I’m still relatively new to it but it seems pretty OK so far.
RunsOnBoltCoffee 1 points 2y ago
Nice. It’s been a pretty good experience so far. My favorite commands are:
Control + L : jump to specific line.
Control + shift + F : auto format/indent.
Control + shift + E : jump to text editor.
Alt + shift + Q then C: change view to console.
Have you had any luck with the debugger?
CloudsOfMagellan 2 points 2y ago
You can use emacs with emacspeak to interface with eclipse though I find lsp mode works better for Java anyway
RunsOnBoltCoffee 1 points 2y ago
This reply is currently > my pay grade. Lol
This nonprofit website is run by volunteers.
Please contribute if you can. Thank you!
Our mission is to provide everyone with access to large-
scale community websites for the good of humanity.
Without ads, without tracking, without greed.
©2023 HumbleCat Inc   •   HumbleCat is a 501(c)3 nonprofit based in Michigan, USA.