Before you begin to write programs, the first thing you should do is make a design of something you want to write. (but make it simple....don't expect to be doing 3D animation your first time out) Now that you have your design, develop what the user interface should look like. (all the screens, the flow through the application, etc) Now start a C# project. VB.Net is not as big in the industry as C# and in complex programs it is not the same as C#. C++ is way too deep of a language for a self-starter. Look through here at some of the C# projects that are highly rated. This gives you a good way of learning good development skills. Create a form and create the first screen from your screen designs and then put code behind it. Do this for every screen you designed until it is done. Then enjoy the "pleasures" of debugging. A general rule of thumb : while coding you will probably lean toward monolithic development. (all your code inline when and where you need it) Later you will begin to see you are writing some pieces of code several times. The rule of thumb is when you do it a third time, it's time to make that a new method. In C# you just select to code, select the Refactor...Extract Method and Visual Studio does the rest for you. (this doesn't exist in VB.NET) As a result you will begin to develop some basic object oriented development skills this way.