So, it's n00b question time! What skill/language will I need to make stuff, actual stuff appear on screen? I'm sick of seeing the DOS window.
That requires a complicated answer. No language itself can talk to the screen, they rely on APIs to do their bidding. The api itself has nothing to do with the language, even though some apis are built for certain language.
Direct access to video is done by openGL. It isn't just for 3d applications, applications like Firefox use it, and api's like Java's SWING use it. openGL is supported on everything, you can use it on iphones, pcs, macs, linux, the ps3, and just about anything that has graphics. openGL may be a little complicated for writing a simple application though, so you may want to look for an api that is built for what you are trying to do.
SDL is popular for 2d games, it uses openGL to draw to the screen but it also provides many useful features for game design such as sound and keyboard input. Stonesense uses it and rightfully so.
For desktop application you need a widget library. Some are platform specific like win32, windows forms, or MFC. They are a bad idea to use because you're really limiting yourself by them, you should instead of cross platform widgets like QT, GTK, or wxWidgets. On windows they will use win32/opengl to do its bidding, or xlib/opengl on linux and it won't matter to you. QT is used by all the major DF utilities like Therapist and Runesmith.
I'll be taking C++2, Java and Visual Basic next fall, so hopefully I'll be able to broaden my horizons a bit.
Anyway, I'm not too keen on becoming an analyst anyway. I'm already pushing 30.
Java is useful, especially in business and server applications. You never know what type of machine your code will be deployed on, the confidence that it will "just work" no matter what the pointy hair boss decides to do will save metric buttloads of time hehe.
Visual Basic isn't something you will need if you know how to program. If someone doesn't know much about programming and wants to write a simple application, Visual Basic is great for that. Look at the Lazy Newb Pack for example. I'm not insulting the authors, they shouldn't have to spend years of their life learning programming just to write that and I think they would agree