You may not realise it yet but c++ is a very advanced programming language.  It is the advanced version of C, more powerful, and easier to program in.  Many games which use directx are programmed in it and many operating systems like linux.  It is a very portable language if no platform reliant commands are used.  However, there are ways to get around platforms and still compile it for many platforms .   However, that is going to be explained later on.  Even if you use it, the program probably wont compile the same on all operating systems and some features will differ.   To be able to program in c++ ("cpp" is used when you are searching in search engines), you will need a compiler such as Microsoft Visual C++ or borland builder.  The higher the version, generally, the faster and more optimised your programs you compile will become.  Also, it is easier to debug with some.  If you are programming in linux, you should be aware that there is a version of GCC (a compiler that comes with the majority of linux distribution) that has a major bug in it.  If you have problems, upgrade to the highest version.  You should also be aware of the terms alpha and beta versions. Alpha versions of something (rarely used) means that the program is incomplete.  Beta versions (common, especially in linux) means that the program has been released completed, but the user should be aware that it still is a bit buggy.  Final builds are the completed program with  minimal bugs.  This text will also include some Visual basic code referals to help people who know VB to learn even quicker! VB referals are out lined by "|".  If you dont know visual basic, you can ignore these sections.  This text aims to teach universal C++, if you use Microsoft visual c++, you might wanna consider learning about the MFC as the MFC (microsoft Foundation Classes) are easy to program in.