Code:Blocks is free and good to learn on, Microsoft Visual Studio 2010 products will not allow you learn what is needed to convert your visions of software to code.
Code:Blocks__It would be like teaching a child multipication and showing them how multipication actually works so thy can use it in any fashion they want, and implement it to construction, farming, check book balancing.
Microsoft Visual Studio 2010 Ultimate__This would be like trying to teach a child mathimatic short cuts eg. multiples of 11 to make him APEAR to be more mathematically inteligent than his own math teacher, and getting the answer to any multiple of 11 faster than anyone else is able to, but in reallity he is slower and dumber than them all, he will eventually come to a math problem that he is unable to solve because he does not know how math works...eg...
13 x 11 = 143 // 1 + 3 = 4 put the 4 in between the 1 and the 3
72 x 11 = 792 // 7 + 2 = 9 put the 9 in between the 7 and the 2
78 x 11 = 858 // 7 + 8 =15 put the 5 in the midle and carry the 1 to add to 7 ( 7 + 1 = 8
Now if you were to teach math secrets like above to someone that already knows how to do math the hard way on paper, this will now ENHANCE his ability and dramatically increase his speed thus actually making him superior to others.
If you learn a different programing language it will be a mistake, learn C++ first and use Code:Blocks, learn at your own pace, so that you dont miss NOTHING at all. Then later on buy Microsoft Visual Studio 2010 and go out there and woop some asses.
Code:Blocks is the way to go for a beginner.