Bring your karma
Join the waitlist today
HUMBLECAT.ORG

Blind and Visually Impaired Community

Full History - 2021 - 01 - 21 - ID#l1vz6r
24
Blind programmers, which language to learn?? and any discord community for it? (self.Blind)
submitted by nekofluffy
Hello, I'm not totally blind yet but is relying on to screen reader more and makes me anxiety about the future.I would like to learn programming for new work. as my research there are many recommendation for Front end stuff that heavily relying on visuals. I think visual stuff would be very difficult to handle..So i was wondering what language did you choose or worked for you.

Also, I'm very shattered from society and visual help irl. If anyone knows a community for blind programming learners, or just community for visually impaired people on discord which i would feel more existence of humans, i'd be happy to join. I need some company if possible


Thank you all for a lot of advice and discussions.
I see you all use variety of languages!
I will try more of Python and look into Java
modulus 6 points 2y ago
Python is less problematic than many people think. NVDA has a pretty nifty feature (I think JAWS probably does too) to announce indentation through a tone. You can get that through NVDA -> document formatting -> Settings -> line indentation reporting.

That said, I like Rust a lot. It can do high and low-level stuff, and it doesn't use an unreasonable number of sigils or weird symbols. Also, cargo has a formatter that will autoindent the code for you, which is nice if you don't care to do it yourself and want to share with sighties.

No idea about blind discord communities. I'm around on IRC.
Winnmark 2 points 2y ago
Assembly language, of course.
MostlyBlindGamer 2 points 2y ago
The real questions is x86 or ATmega8.
Winnmark 2 points 2y ago
You and I seem to get along more often than not bro.
MostlyBlindGamer 2 points 2y ago
Looks like we have a similar sense of humor.

This sub is also small enough for us to keep bumping into each other.
Collierr 2 points 2y ago
Legally blind programmer here I would recommend Java as you don’t have to worry too much about memory management and once you get it down other programming languages will be easier to learn
nonniemous 2 points 2y ago
Hey there! As a VI programmer who also recently started relying more on screen readers and who has been studying web development for a bit, I find any language that doesn't rely a lot on tabulation is ideal (I do Java, for the most part), though using a good IDE with a Beautifier makes things way easier and more languages accessible as well (I use Visual Studio Code, and with a bit of NVDA tweaking it works like a charm!)
I'm pretty sure there must be a blind programming community somewhere, though I can't seem to find any on Discord (and if anyone knows about one, I'd love to know about it as well!), but there's $1, which is fairly small atm, a lot of us work/study in tech related fields :)
zersiax 3 points 2y ago
If you mean languages that don't rely on indentation, I'll respectfully disagree :) Not because you're wrong, but mostly because unfortunately you don't really get to be right :)

Python crashes if your indentation is off, which is both a blessing and a curse. A blessing in that you know your indentation is off, a curse in that you then have to go and fix it before you can test, which can eat time.

However, if you work with other people, especially people who aren't blind/VI, indentation is still really important even in languages that aren't going to crash on compilation/interpretation, because it will crash your colleagues.

Most, and that is a big most, of programming teams will want indentation to be handled well in any code because it is a great visual guide on what belongs to what and even on a braille display, it can actually be super useful to have as well. If you depend on navigation aids that jump to the next level of indentation, that could be another advantage of indenting. And even if you work on projects all on your own, at some point if you want to consult another programmer on a piece of code, chances are high you'll get grumbled at if indentation isn't properly adhered to :)

Beautifiers and linters exists pretty much for that exact reason and you're right, they help a lot :)

As for communities ...the only one I know of that is sort of active is the $1 mailing list. Someone can certainly set up a Discord for it though, I'd join :)
taylorarndt_22 1 points 2y ago
Hi all, I would start with python. I actually created a discord server with one of my friends not long ago called programming for everybody and currently it has less than 10 members but we are growing it. We have both blind and cited programmers on the server. The link is $1
nekofluffy [OP] 1 points 2y ago
Yes. I have started Python now too. and awesome I'd join!
Rethunker 1 points 2y ago
What new work do you want to do? Do you want to continue in your current field? Are there particular kinds of projects you'd like to work on? Answering these questions can help determine what programming language you'll learn first.

The choice of a first programming language is somewhat arbitrary. By "somewhat arbitrary" I mean that you could do well in any of the most popular programming languages for which there are accessible software development packages. However, some professional fields favor particular languages. If you feel drawn to a particular field or a particular project, then choose the language mentioned most frequently in job listings, forum posts, and academic papers for that subject. I'd recommend digging a little bit into a particular field and then writing a new post about what you've found.

"Front end" doesn't have to mean visual. User interface and user interaction design are still heavily biased toward visual design, but principles of good interface design and good interaction design relate to non-visual design as well. If you became a front end designer specializing in non-visual designs, you could fairly quickly be sought out for your expertise.

Pick a language, learn it steadily, create one project after the other, and ask and answer questions on $1.

Another thing to keep in mind is that the everyday practice of programming involves more than just typing out code. You'll learn about "source control" or "version control," a part of your work related both to how you build up software projects over multiple versions. It's also related to how you coordinate work with other programmers.

You have likely found blog posts and stories about blind programmers. The following posts may already be familiar to you, but I'll post a few:


Here's one called "The Tools of a Blind Programmer":

$1


On $1, a site developers are quite familiar with, here's a post called "How can you program if you're blind"

$1


From Perkins School for the Blind, here's an article called "Accessible Coding":
$1



If you're passionate about some subject, you almost certainly can find some way to combine your interest in that subject with programming. Learning by doing is critical in becoming a developer, so go ahead and learn programming by doing development work that keeps you motivated.

Even as a beginning programmer, set an ambitious goal to one day complete a software project specific to one of your interests or hobbies. Then as you learn new concepts you can practice them by creating simple projects related to the grand goal.


For example, if your passions are polka music and goldfish, then your grand goal might be to create an app in which tapping on the screen of a mobile device plays polka music that "feeds" virtual goldfish. (Years from now, the two dozen people intensely interested in both polka music and goldfish may find this Reddit post and wonder why this app still doesn't exist.)

Imagine breaking your PolkaFish app into its simplest components. If you want audio in your app, what is the simplest sound you can imagine having your app make, and how do you write code to do that? What basic math do you need to keep track of how much goldfish have eaten? How do you keep track of multiple goldfish? If the goldfish change over time, how do you keep track of time? How do you assign a name to each goldfish? Each such question could drive you to study a particular programming question, or the questions may come to mind as you're working through the lessons in some formal programming course.

And if you end up creating a PolkaFish app, it may not sell millions, but fellow polka music and goldfish lovers will be ecstatic. And that's great motivation to continue developing and learning.
overheadfool 1 points 2y ago
I'm a sighted programmer but the idea of being able to do it blind leaves me in absolute awe, you bunch of double hard bastards.
rumster 2 points 2y ago
I personally know a mountain climber who went to Everest and a couple of other giant mountains. A friend of mine is a fashion designer and she's partially blind. Some people can really break glass ceilings. I'm in awe all the time with the amazing folks on Reddit honestly.
lepton 1 points 2y ago
If you are into Ruby there is a code editor designed from the ground up for people who are blind.

$1

I think it does other languages too but Ruby is its primary one.
AntiAngelix 1 points 2y ago
As a VI developer, I am currently working in Javascript (Vue.js, Typescript), with a little bit of Python (Django). I’ve also done work in Swift. I would recommend Python then Javascript, just based on ease of usability.

Best of luck!
peggy2033 1 points 2y ago
Yeah I’ve been wondering about this for a while, part of me wanted to learn python but another part of me wanted to learn JavaScript, which one would be better?
Fridux 1 points 2y ago
Pretty much any language except for Python works for me, however due to being blind I prefer languages where the predominant coding style uses very descriptive camel case naming, such as Objective-C, Swift, C#, and Java, because I don't use Braille and voice synthesizers have a lot of trouble reading abbreviations. That said I'm currently working on a C project and using 5 different libraries that follow completely different naming conventions without many issues, it just takes a little bit longer for me to read the documentation, or the headers when the documentation doesn't exist. Python doesn't work for me since it's based on indentation, which makes code hard to follow blind, especially without Braille. That said there are blind people using Python in production, such as on the NVDA screen-reader, I just don't know how they can be productive with it. I also avoid languages where variables are prefixed with other characters such as php, which uses $ everywhere, and Perl, which uses $ for scalars, @ for arrays, and % for hashes, because listening to the screen-reader repeat those characters is just annoying.

I don't use Discord, but back when I had sight I used FreeNode (a programmer-centric IRC network). Nowadays I just ask questions here on reddit and sometimes answer them when I'm procrastinating.
zersiax 2 points 2y ago
Python, and it's friend Ruby, actually work pretty well with screen readers because there's not quite as many brackets and braces as there could be. Like I said in another reply, indentation isn't Python-specific in it's being required, Python just makes noise about it instead of any potential colleagues/collaborators :)

You're absolutely correct re: speech synths and code though. I do code with a braille display, and I would probably go nuts if I had to listen to all my code with just speech. It can be done though, if you know the language well you can pretty much code off the cuffs and then have the compiler steer you towards the bits you broke, I tend to do that in a project I'm working on because the muscle memory helps me out for the most part; I have punctuation in NVDA set to low and judge what characters I'm missing from listening to the pauses, eventually you pick up what you aren't hearing pretty much from context, which speeds things up a lot.

As for prefixing variables with characters ...that is a really interesting one, I never considered that before. When I'm doing PHP I don't even really hear them anymore, part of the background until it's needed as it were. It'd be cool if the recent changes in NVDA allowed for speech pitch to change when things like that are encountered, or use an earcon to denote that. The backend for that is pretty much there, it just hasn't been used for that purpose yet.

As for how other programmers are productive, even in python or other languages, I'd say a combination of a higher and higher speech rate, a strong mastery of the language they are using, a good editor that helps them (I use VS Code) and other little tricks of the trade like commandline tools to quickly call up help for a particular function without having to leave your editor context entirely, things like that. Feel free to poke me with questions, I have been a fully blind developer for over 5 years now and I teach as well, so I'd be happy to help.
Fridux 1 points 2y ago
> Python, and it's friend Ruby, actually work pretty well with screen readers because there's not quite as many brackets and braces as there could be. Like I said in another reply, indentation isn't Python-specific in it's being required, Python just makes noise about it instead of any potential colleagues/collaborators :)

Some IDEs have a re-indent code that I can use to indent selected parts of code when I need to, and I never let a file go to version control without re-indenting it, so others complaining isn't an issue. The problem with Python is that indentation is part of the logic, so it's pretty easy to make mistakes and produce bugs that are hard to find without vision even if the screen-reader somehow conveys the indentation level if I don't indent something properly but still respect the syntax.

> You're absolutely correct re: speech synths and code though. I do code with a braille display, and I would probably go nuts if I had to listen to all my code with just speech. It can be done though, if you know the language well you can pretty much code off the cuffs and then have the compiler steer you towards the bits you broke, I tend to do that in a project I'm working on because the muscle memory helps me out for the most part; I have punctuation in NVDA set to low and judge what characters I'm missing from listening to the pauses, eventually you pick up what you aren't hearing pretty much from context, which speeds things up a lot.

Yeah, I do that as well, however I have VoiceOver set to read some punctuation, as I don't like the lack of punctuation verbosity even for reading plain text.

> As for how other programmers are productive, even in python or other languages, I'd say a combination of a higher and higher speech rate, a strong mastery of the language they are using, a good editor that helps them (I use VS Code) and other little tricks of the trade like commandline tools to quickly call up help for a particular function without having to leave your editor context entirely, things like that. Feel free to poke me with questions, I have been a fully blind developer for over 5 years now and I teach as well, so I'd be happy to help.

Thanks for making yourself available!
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.