<p>It depends on what you mean by 'useful applications'. Applications can range in complexity from the very simple, such as calendars, sticky notes, and flashcard programs, to very complex, such as programs such as Mathematica, 3D modeling software, and programs like Word and Powerpoint. </p>
<p>Programs are generated by programming languages - there are a variety of programming languages that are commonly used, each with its own pros, cons, signature coding style and quirks that make it unique. There are a few options open to you.</p>
<p>If you want quick results without knowing too much about computers in general and getting too involved in learning a language, Microsoft has a language called Visual Basic that may be exactly what you need. It is easy to learn, and quickly generates flashy programs that would take a bit more experience to create under different languages. The downside to it is that VB is a bit restrictive on what exactly you can do with it, and teaches bad programming practices that may hinder the hopeful programmer down the road. Also, since it's made by Microsoft, it will NOT work on Macs/*nix. </p>
<p>If you are more interested in learning about programming languages in general, and do not care about putting in some hard work to do it, a good beginner language for you is Python. Python, unlike Visual Basic, does not automatically generate windows and graphics for you - you'll be working out of a console until you learn to program graphics. However, Python is much more powerful than Visual Basic, and is syntactically more closely related to the two powerhouse languages of computer programming, Java and C++. It is also easier to learn than these two languages, making it good for a beginning programmer to ease into, and then learn other languages later. </p>
<p>Finally, if you really want to jump head-first into programming, you could always try learning C++ or Java. These languages are a bit more difficult than the other two, but they are the most widely used languages for programming. Practically every program you have ever used, from MS Word to Halo, is bound to have been made with at least some, if not all, C/C++ code. These languages are relatively hard for beginners to learn, and require a lot of practice, hard work, and sweat, but once you master them, you can do basically anything. Java is a bit easier to learn and use than C++, but at the price of relinquishing control over some parts of your programs down the road. You'll see what I mean once you get there.</p>
<p>Now, for some general advice. Do NOT expect instant results. If you're using anything other than VB, you will NOT be making any sorts of graphics for a long time. Get used to staring at the console screen. Programming takes hard work and dedication - it is not for the easily dissuaded. Learning your first language takes anywhere from six months to three years. Those books that say 'Learn So-And-So in Two Weeks/48 Hours/30 Seconds!' are lying. That being said, the O'Reilly books are very good sources of information.</p>
<p>In order to program in a programming language, you need what is called a 'compiler' - it translates the language you're programming in to machine language that the computer can understand. Each language has a different compiler (or interpreter -that's a bit different).</p>
<p>The compiler/IDE for Visual Basic can be found at:
<a href="http://msdn.microsoft.com/vstudio/express/vb/%5B/url%5D">http://msdn.microsoft.com/vstudio/express/vb/</a></p>
<p>The Python interpreter/shell can be found at:
<a href="http://www.python.org/%5B/url%5D">http://www.python.org/</a></p>
<p>A good C++ compiler can be either found at:
<a href="http://msdn2.microsoft.com/en-us/visualc/default.aspx%5B/url%5D">http://msdn2.microsoft.com/en-us/visualc/default.aspx</a></p>
<p>OR</p>
<p><a href="http://www.bloodshed.net/devcpp.html%5B/url%5D">http://www.bloodshed.net/devcpp.html</a></p>
<p>Note that these are two different compilers.</p>
<p>The official Sun Java platform can be found at
<a href="http://java.sun.com/%5B/url%5D">http://java.sun.com/</a></p>
<p>Each of these languages has extensive documentation both in books and on the Internet. Just Google '<language name=""> tutorial' and you'll find probably exactly what you need. Programming can be a bit daunting at first, but if you keep at it, it's an extremely rewarding skill to have. Good luck.</language></p>