A Guide to becoming a Blind/Visually-Impaired Developer (Android)

It is an obvious fact that the field of computer technology has come leaps and bounds in the recent period. There is a great increase in demand of people involved in the field. The number of companies seeking for a good software developer is greater than ever. It sounds like a good time to get to know programming, doesn’t it? While it is possible to learn programming by binging through Youtube videos and finding resources in the web, it might be slightly more difficult for visually impaired individuals to start programming as these resources are optimized for sighted individuals. If you do not categorize yourself as a sighted individual, this guide can show you a pathway to becoming a visually impaired Android developer.

When it comes to programming/development, there is almost no community which is solely meant for the blind people. When I started to self-learn programming for the first time, I was frustrated due to the lack of resources accessible enough for me to go through. At times, it seemed like the path to becoming a visually impaired developer was filled with unconquerable roadblocks.

However, after several months of intensive research, I have, along with my close friend, been able to create an Android app useful for the community of the visually impaired! The app announces time in Nepal’s native language every hour.

Meme with an old farmer saying "It ain't much, but its honest work"

So, I decided to make it easier for you, the reader in the future, to start learning to program. I suggest you to read the entire article because on the following sections, I will be giving lots of information which can definitely help you to get started as an Android developer.

Why did I start with Android?

The sole reason for this is how common Android phones are in the community of the blind. I wanted to be able to create something useful for everyone like me given that there is a huge lack of tools that are made for the visually impaired. You must have noticed several apps that are designed only for sighted individuals, haven’t you? These apps often try to create UIs that look different at the expense of accessibility.

Since I decided to start with Android, I began my research and found the core thing that I needed to learn first. I needed to learn a programming language.

Java – The Soul of Android

Java is one of the oldest programming languages which was created in 1996. It is the primary language required to make an Android app.

What is a programming language, you might ask. These are just a set of human readable instructions that you give to a computer to perform a set of tasks. Writing a piece of code is just you telling you computer to do something. In Android development, writing a piece of Java code would mean you are asking a smart phone to do something. As simple as that!

Java as a programming language has grown in popularity as many of the leading companies like Google, IBM and other tech giants have made use of Java in many of their apps and tools. Android is also one of those things popularized by Google which utilizes Java as an building block for its framework.

So, the first step when it comes to becoming a visually impaired developer in Android, or even to start the journey of app development as an sighted individual in Android is to have a strong foundation of core Java.

Now, as you are reading, you might be wondering where do I get started? I know that this kind of thought is significant for you because when I started for the first time, I got stuck at this point. I tried going through Youtube videos. My visual impairment meant I couldn’t read the code the instructor would be typing on the screen. Then I tried going through some online documentations, an oh boy those are nightmares if you are just starting.

Well, if you seriously want to learn and build your career as an blind or visually impaired android app developer, I strongly suggest you use following resources to learn Java. These resources were really good and helped me build a solid foundation in Java.

Java All-in-One For Dummies – a beginner friendly book

Java All-in-One For Dummies, an awesome book to learn Java to start the journey of being a visually impaired developer

This is in my opinion, a very beginner-friendly Java book.

The author essentially dumbs the concepts down to digestible form which I found to be the key factor in understanding the core concepts of Java. I highly recommend you to purchase this book as this is a very good resource even for the visually impaired to get started with Java.

Buy Java All-in-One For Dummies from Amazon

GeeksForGeeks 

When it comes to learning Java, I found this site very useful as well as accessible. The site uses very human readable language to make you understand the concepts which is a huge plus.

The site has covered all the concepts very briefly so once you start following this site, you will have little trouble finding solutions to your issues. If you wish, you can also search for Android framework’s fundamental concepts on this site, but I recommend to dive into core Java first.

JavaTPoint

JavaTPoint is also another good site in my list because of it’s accessibility.

Of course, I understand how hard it is when you are blind and you want to learn to code but although you found one resource, what if it still does not make a particular concept clear to you? You obviously need to find another site. This site is very beginner friendly to learn resources regarding Java as it specifically focuses on it.

If you happen to know other resources which I forgot to list here, drop your comments into the comments section and let me know.

Learning Android app development as a Visually Impaired individual

After learning Java, you can begin your android app development journey. For that, you have to know some tools which are going to be helpful in the process of developing Android apps.

Android Studio is the official IDE brought by Google which is used for developing Android apps. IDE stands for Integrated Development Environment, which essentially is a tool which helps you to write your code while making you very efficient in the process.

In the recent years, accessibility of Android Studio has improved. It is easier these days to access the IDE with an screen reader, which is great for the visually impaired.

Android Studio provides lots of features  which can be helpful while coding such as code auto-completion, code suggestion based on current context, intelligent machine learning based AI which can perform smart completion of the code, quality code suggestion, error warnings just as you type, accessible way of debugging your apps, and so much which is efficient for professional app development.

Learning XML (eXtensible Markup Language)

In android apps, all the app layouts are made in XML. There is a layout editor in Android Studio which facilitates developers by providing  a visual based layout editor, where developers can drag and drop individual views and elements to the desired position. This is then converted to XML automatically by Android Studio.

Unfortunately, dragging and dropping is not accessible for blind developers. Instead, we should just learn to write XML to create screens for our apps.

Learning XML is not difficult. Once you start playing with it, you will begin to understand the structures.

Conclusion

So you found this post, and if  you are willing to become an Android developer, there is no reason to hold back. Many people have conquered the development world despite being visually impaired, why can’t you?

The only thing is the patience. If you have it, you can really do it. I hope you got motivated by this post, and I hope that you will be a successful visually impaired developer in your community!

Thanks for reading this article. If you have any suggestions, let me know in the comment section.

We regularly post articles about technology for the visually impaired. So make sure to keep visiting.

Happy coding!

You may also like...

17 Responses

  1. Dhakal says:

    https://www.tutorialspoint.com › … This is another useful and accessible site that I found so check it out also. And it is very nice post; keep posting.

  2. Cuong Nguyen says:

    Hi, can you answer some questions for me? Because I am used to seeing
    friends who have vision and they ask me but I don’t know how to
    explain to them how blind people do things:
    1. What are the difficulties when blind people learn programming?
    2. Do visually impaired people face any difficulties when working with
    people with eyesight?
    3. How can a website or application developed by the blind be responsive?
    4. How can blind people debug and find bugs to fix when there are many
    lines of code on the screen?
    I hope you can answer these 4 questions in one post so that as I read
    it it will be easier to visualize the problem. Thank you very much.

    • 1. Unavailability of resources to learn is the main difficulty. Then there comes inaccessible tools. Every content out there is made thinking everyone is sighted. It is also additional work to make learning materials accessible for the blind.
      2. Depends on who you are working with. If the coworker knows how blind people work and perform tasks on a daily basis, they will be more considerate to help the visually impaired. Otherwise, it could be difficult.
      3. That is difficult. Although it could be made easier by utilizing pre-built frameworks. For example, if you are building websites, you might consider using Bootstrap framework which could make it easier to develop responsive sites. It might not be as responsive as something built by a sighted person.
      4. This is really difficult. What can be done is look into console, see which line the error is originating in and go to that line and fix it. A lot of the times you have to read almost everything again though. It certainly is challenging, but doable.

      I will be further expanding these in a new post. Thank you for your suggestion. Cheers!

  3. Cuong Nguyen says:

    Hi, I am visually impaired using NVDA screen reader. A slightly funny question. In your opinion, for a visually impaired developer, what ad-ons should be installed to better support programming with the NVDA screen reader? I look forward to your reply. Thank you very much.

    • You don’t need any additional addons for NVDA. It works great out-of-the-box. What you should be focusing on is choosing an IDE that is accessible. NVDA does rest of its job perfectly without anything additional.

  4. Patryk Miś says:

    Thank you for this post as it’s really very difficult to find any resources about Android development for blind. Just few questions: What should I know about developing layout? What do you use: material? constraintlayout? How to plan and imagine layout items before developing, or you just add each one by one as a list?

    • Aashish Khatiwada says:

      It really is challenging to prepare layouts. I will be writing a full article on this topic. Stay tuned!

  5. Patryk Miś says:

    In blind perspective, I would also recommend On Java 8 book – well organized (headings, lists – also nested if required etc.), prepared with visually impaired in mind etc. – https://www.onjava8.com/
    If I find yet something interested in Java learning materials I add it in the comments.
    Again, great work writing this article!

  6. Cuong Nguyen says:

    I myself want to install more add-ons for NVDA to increase accessibility for programming tools. So, do you have any solution? If not then tell me why. I’m glad you answered the question. I want to ask in the side, do you know the WordPress documentation for nvda screen reader users?

    • Aashish Khatiwada says:

      Hi, in general, you don’t actually need any additional addons for making programming tools accessible. All the IDEs which you see in the internet have provided the builtin accessibility solutions, so this is good to utilize that.

  7. Quang Nguyen says:

    Hi, can you answer some of my questions, here are some programming related problems for the blind:
    1. Can you tell us about your process of starting to learn programming?
    2. I have an acquaintance who wants to volunteer to teach programming to the blind. However, he has never interacted with or worked with the blind, so he was very surprised that he did not know how to teach his students. Do you share how he can teach programming to the blind? He himself had never heard of or used screen readers. He is a man of vision.
    3. Can you share more about your experience building an accessible WordPress website? Can visually impaired people manage their own WordPress website without having to depend on others? Is it really accessible? I want a website with a theme that I want. I needed a convenient process when using the page builder tools because it was very difficult to access due to it being a drag and drop tool. I myself want to make a personal website where I want to customize the theme to my liking. For example, in the menu I add attributes like accesskey, alt text. Generally speaking, it must meet WCAG standards at the highest level AAA. I look forward to an answer from you. Thank you for listening to my question.

    • Aashish Khatiwada says:

      Hi, answering to some of your questions:
      1. Actually, I struggled since beginning while learning to code. I did not get any chance to study IT or any computer science related subjects because of colleges refusing every blind individuals study such subjects in my country. I managed to research on some questions like “can I learn programming if I am not from any IT background?” and finally, I found that it is not necessary to have cs degree if you want to be a coder.. And finally, I prepared myself to get my hands dirty rather listening to other, and that actually made me up! During the learning process, I gathered multiple sources because each single source did not clear my doubts related to some programming concepts. Each day i watch youtube videos, read books, and practice myself and still doing the same! That’s the only way if you want to be a self coder!
      2. If your acquaintance is willing to teach programming to the blind, I suggest you to tell him/her to utter every pieces of the source code while he/she is actually coding. And also, ask them to provide each and every sourceCode as he moves forward through various programming concepts. As a plus point, if the person has some basic knowledge on accessibility or screen readers in general, that can be beneficial.
      3. Actually, I have never worked on building wordpress website. The site which you actually seeing is also maintained by my brother, I just post content here. But if you want to make a website that is fully accessible, it is best to build it all from the code. Regarding meeting WCAG guidelines, it is hard and challenging to meet AAA standards, so I suggest you just go with level AA because this is what all the accessibility standard services follows.

  8. Doan Duy says:

    Hi, I want to learn c but I’m blind, which ide should I use to get the best screen reader? Since C++ devs only have access to 95% NVDA, it’s not enough for me to master it or to debug it later. Thanks for answering.

  9. Hi, do you know how to install ssl on pro free host? I need to install it to practice web development. Thanks.

  10. Hello, I am also a blind programmer and I would like to develop Android applications. My question is if there is a tutorial for blind somewhere how to work with Android studio. How can I find information where errors are, on which line etc. I am not able to debug my project, because I can not reach those information. Thank you for your reply. Zbynek Sklensky

Leave a Reply

Your email address will not be published. Required fields are marked *