My order was Quick BASIC, then C++, PHP, then Ruby. I found the following things: 1. Don't learn any of the BASIC family. My knowledge of this was a severe impediment to learning C++ a few years later. It teaches you really bad habits. 2. C++ is extremely useful to know. It provides a very good launching point for understanding OO design while at the same time providing an understanding of low level details of how it all works under the hood. The easy Ruby-C(++) integration also makes this useful for speeding up the slower parts of your Ruby code later. 3. Ruby is truly incredible in its simplicity and ease of expressing quite complex concepts. I started using this about 3 months ago, just before beginning my first job designing a web application. I used the Rails platform (built on Ruby) and would choose it over PHP for web applications any day. After using Ruby you will feel handicapped writing in any other language. For this reason, I would thoroughly suggest learning at least the basics of C or C++ in parallel with Ruby. Learning two languages at once is not nearly as daunting as it sounds as the basic concepts translate nicely between them. After building up a basic knowledge of each of them, you will have a nice base to launch off into the specifics. Please note that I am completely self taught in programming and have never taken any formal education in any language. My experience may not be typical. My personal choice for application development would be Ruby, using C++ extensions for the heavy lifting. I believe it is essential to understand both a compiled and high-level language, preferably that integrate easily with each other, as this will let you effectively partition tasks based on speed requirements while retaining the clean overall logic of the higher language. For this, I believe Ruby and C(++) are an ideal pair. My advice to you is to get an introductory book on C++ and a book on Ruby (the Pragmatic Programmers' guide is excellent). As you work through the books, try to write the equivalents of the C++ examples and the Ruby examples in the opposite language. This will rapidly teach you both the upsides and the downsides of each language.