I have been programming for about a year. I took two classes (intro to Computer Science 1 & 2), and I program a ton on my own. Just little silly programs for myself really. So far everything I've done has been in the terminal. I would now like to branch out and get into programming applications that look like normal applications. Window, menu at the top, mouse input, etc. The issue is I have no real idea how to go about learning that. I am primarily Windows based, but I would like to program for Android and possibly iOS as well. Anyway, if anyone knows of any good tutorials/books on the subject that speak to a very low level programmer I would greatly appreciate it.
1. Learn the windows api and etc (Can't help you there)
2. Learn something like VisualBasic that makes this easy.
3. Learn one of the various platforms for programming GUI's. (e.g. Qt) These are usually click and drag, and are very useful. There is also platforms like these for iOS and etc. (This is mainly how you program for these platforms.)
4. Learn a graphics library if your goal is to make games and etc.
Alright, I chose to go with SDL through Visual Studio Express for now. My question is, is SDL only really for video games? Is it better to use something like Qt or Windows API to just make a general application? Also after doing some research it looks like if I want to program for iOS I'll need to learn C#, and for android it's Java. So, those will have to wait until I feel more comfortable with C++. I'd hate to learn both poorly instead of one really well.
SDL's video focus is on "drawing", which primarily applies to games because games will need to render full screens of video.
Widgetry libs like wxWidgets and Qt are more geared towards "widgets", which are common controls used by several different kinds of programs.
So if you are looking to make programs with pushbuttons, text boxes, list controls, progress bars, and that kind of thing... you want a widgetry lib like Qt/wxWidgets. If you are looking to have a blank slate where you control more or less every pixel on the display, you want a lib like SDL/SFML.
Note that it is very possible to combine the two. SFML (a lib similar to SDL, but with a more modern design) has bindings with Qt and wxWidgets, so you can create a separate canvas for the video display, to which you can do all your drawing, but you can also place widgets and use them.