New Programmer

Hello, I have several questions regarding programming on a Mac. I am completely blind and completely new to programming and app development, no experience what-so-ever. I have seen Objective C come up a few times and am wondering if it is the best language to learn, or start with? I am also wondering where someone would take courses or education in computer programming? The school that I am taking courses through right now has been trying to figure out how to make their computer science course accessible to me with no such luck so far. We have found that Python is not voiceover accessible and so I am also wondering what programs blind users use to code? Is it just X-code? Again completely new to the subject and not even sure what questions I should be asking. Any information would be greatly appreciated, you can also email me at if that is easier. Thank you so much,


Some Thoughts

Member of the AppleVis Editorial Team

Hello, Yes, Objective-C is the place to start. I also suggest you look at the Xcode tutorials on this site so you can get an idea of how it works. Google is how I learned objective-C, and for Xcode, there is the email list.

Python is very accessible. The only difficulty is knowing indentation, but even that is not a big deal once you are comfortable with the language. That said, if you want to one day submit apps to the App Store, concentrate on Objective-C. The two languages are very different, and if you are going to learn one, make it Objective-C. Besides, once you have that one down, learning Python will be a snap.

So I basically just teach

So I basically just teach myself the programming rather than trying to find a course to take? Thank you so much for your reply, it has been like a dog chasing it's tail trying to get any feedback on this subject. Again thanks so much :D

That's What I Did

Member of the AppleVis Editorial Team

I taught myself Javascript in middle and high school, plus messed around in a few other languages, so that the CS courses in college were mostly pretty easy. I taught myself Objective-C as well, using mostly Google. There are tons of questions on Stack Overflow about ObjC topics. Apple has good documentation, Big Nerd Ranch has articles, people have written books on it… Basically, once you know the core concepts of programming (methods, classes, flow control, and imports) then learning a new language is pretty easy. Languages nowadays tend to be different ways of doing the same things, so once you have the basic, underlying concepts down, then a language is nothing more than a different way of saying the same thing.

Hello, First of all if you

Hello, First of all if you want to be a programmer do not give up on your cs course ... learning by your self is cool when you want to do software development as a second activity ,,, if you want to do it as a first activity go ahead and take the course. You will learn much more than programming and your skills will be more advanced. I don't think that cs courses will have so much trouble to be accessible, but I don't really know what is the grade and what they are teaching ... in Brazil it is pretty doable with some dificulties (as usual when folks happen to be blind) but even with these it is definutely doable.. There are lists of blind programmers where you will find more specific help. The fact that you have found that python is not accessible shows that you and your school may be looking at things a little bit from the wrong point of view, so subscribing to a programming list might be a good idea. In fact, python is so accessible that NVDA, a free screen reader for windows written basicly by two blinds is written in this language. So do Orca (screen reader for linux), the skypetalking project and many many other software written by and for blinds. Please do refer to (by Jamal Mazrue) which is a dedicated site for blind developers where you can find many things including the lists adresses to subscribe and instructions, as well as many examples of softwares, for helping blind developpers. Marlon

Thanks so much

Just wanted to say thanks so much for the comments so far. Is there a certain kind of CS course I should look for? Like I said I am entirely new to this, so am not sure what I should be looking for. Thanks,

Hard to Say

Member of the AppleVis Editorial Team

It's hard to say what course to look for. I just got a degree in computer science, so I got the full set of classes. If you don't want to do that, though, any intro to programming course will be a good place to start. As I said, once you understand the underlying concepts, languages get very easy to learn. If you can't start with Objective-C, learn Java, C++, Python, or anything object-oriented. If mac programming is the goal, a scripting language like Python is not quite as good to learn since it is loosely typed, but it will do week enough at teaching you flow control, inheritance, classes, subs classing, and so forth.

the CS course

This might be a stupid question but when I am looking for a CS course to take, I am assuming different courses through different schools will specialize in different languages? Sorry, just trying to make sure I understand what to look for when I pick what course to take because the course through the school I am looking at right now mentioned Python so would that be just training in Java or...? Is there a specific school or a few I can look at that specialize with Objective C? And when you say you got all of the courses with your degree, does that mean you got training in all the languages you mentioned above or what does that mean? And yeah, Mac programming is the main goal so I would like to stick with taking the courses on my Mac and learning that way. I have had several people tell me to switch back to Windows to take the courses because I will have more options but I find working with Windows a pain and don't agree with having to pay to be able to make it accessible so would like to stick with Mac if possible. Again thanks so much for all the feedback,

I'm not able to suggest

Member of the AppleVis Editorial Team

I'm not able to suggest specific schools or courses. Generally, at least in my limited experience, a professor will stick to a language s/he likes. Sometimes, the course is specifically to learn a language, or several. For instance, my intro CS classes used Java, but I later took a class that had us work with a bunch of different languages just to see how they all worked. Every school or online degree will be different.

Some will want you to use Windows because they will be working with C#, VB, or other Microsoft-specific languages. Python is a good cross-platform choice, but it is not the only one. Objective-C is not cross-platform (well, technically it is, but it isn't really used outside of the Mac). Again, though, anything that teaches the concepts 8behind* programming is good, and you can work out how to do those concepts in Objective-C on your own or with help from, say, a one-on-one project with a professor.


Member of the AppleVis Editorial Team

I used a PC, and didn't start on the Mac until the year I graduated. However, I feel confident I could have done much of the work on the Mac, and there's VMWare or Bootcamp if you absolutely need Windows. Also, don't forget about the NVDA screen reader for Windows; it's free, and open source. It is what I use on Wiindows, and is worth a look if you're tired of paying every year just to update Jaws or Window-Eyes.


Okay so I have an example question, just let me know if I should post it somewhere else. My school gave me a sample file to test out with Python and when I open it it opens in a program called Idle. Is this correct? I then have the normal close, minimize, and zoom buttons at the top of the window, and a Header that says *Python 3.3.2 Shell*, and a vertical scrollbar that doesn't appear to contain anything. Behind that window is another window that has the same close, minimize, and zoom buttons at the top, the file name of the test file they gave me and it's location in the Header area, and a value indicator vertical scrollbar. Can you give me a bit of an idea of what I am supposed to see in these screens and if I am missing something because the content seems to be empty? Also, when I interact with the value indicator in the second window Voiceover seems to freeze up temporarily and does it's thing where it does like a mini restart and I hear it say the same thing as when it first opens when I start my computer? Sorry if this is a strange question, just trying to get a grasp on this so I can let the school know that it is accessible and I can go ahead with the courses as planned. Thanks again,

Idle isn't a great choice…

Member of the AppleVis Editorial Team

Instead of Idle, try straight Text Edit. I haven't tried Idle on the Mac, but it isn't really accessible on Windows so I doubt the Mac version is better. What I'd do is write and edit your scripts in Text Edit and run them in Terminal.

  • In Text Edit, make your scripts and save it, or open the existing script you are working with. In the case of a new script, be sure the file is set to plain text in the Format menu, or cmd-shift-t.
  • Open Terminal, switch to the path of your scripts with the "cd" command, and type "python" where is the name of your script.

Python app

So the python app itself I won't use? Is that what IDLE is? I just work with text edit and terminal? Thanks,

Idle isn't a great choice…

Member of the AppleVis Editorial Team

Idle is an IDE (integrated development environment) for Python. The nice thing about Python is that it needs to compiling like other languages, so you can just type out your Python script and run it. So no, Idle is not necessary at all.


Okay I think that makes sense :) thanks for all your help :D