You don't need a degree to be a professional C++ programmer. Indie game developers are professional programmers who seldom have more than a high school diploma, if even that.
If you are just dead set on a degree, the safest bet would be a BS degree in computer science. Though any degree should help. I have a BS in Game & Simulation Programming, but 19 years experience (2 years in BASIC and 17 in C++ and a few months in several other languages). Being paid to program doesn't make you a professional, IMHO.
No most colleges and universities ease you into it, but you will be doing it for 4+ years to get the BS depending on how your grades and if you have to repeat classes due to grades and how many classes you take per semester.
In my personal opinion, getting into programming for money will just guarantee a burn out. You should get into what you like in terms of programming. I like game programming and only dabble with web dev and other forms of programming. Sure they are all fun, but if you are forcing yourself to do something you don't enjoy, then you will just get bored with it. I know too many programmers who wanted to make games, got into software or web programming just to make ends meet and all I hear is how they hate it and think about quitting every day.
Well in professional programming jobs, you seldom 'play with code', but rather are told what you are going to code in what language and you can't deviate from that. Some things can take a few days, weeks, months, or even years depending on the project. This is why I'm an indie game programmer. I don't like being told what to code, I prefer choosing my projects and when I get them done. I'm not big on deadlines and all companies have deadlines for everything you do.
You can take both options. Get some good qualifications and get a reasonable job from them. If you find that job is not to your taste, do some programming work in your spare time and see if you can start making a living from that. If you can, then you can quit your job, if you wish.
Get some kind of formal education; ideally a graduation in an engineering discipline. Without it, at the start of a career in programming, you amount to nothing. Without it, the chances that you would be able to find a job that is challenging and interesting is virtually zero.
Start with a regular job in a good software set up. Above all, as a newbie who is still green behind the ears, you desperately need the guidance and mentoring that the experienced programmers in such an organization can give you. In the long run, that will be worth much more than the pay-packets that you received early on in your career.
There's no definitive answer to that. It depends entirely on what sort of programming you want to do (or what sort of programming your job might require you to do). Do you want to do web development? Games? Low-level system programming? Mobile apps? Scientific number-crunching?
Honestly, unless you have a desire to specialise in a particular area, I think you'd be better off deepening your knowledge and skills with C++. Delve into the standard library. Get some experience with third-party libraries, particularly some of the commonly-used Boost libraries. Get some understanding of OO design principles, including some of the common design patterns in use today. Maybe get some experience with a GUI toolkit - there are several free ones, such as wxWidgets and QT.
If you're really desperate to learn a new language, Python seems to be becoming more and more widespread. As an interpreted (i.e. not compiled) Object-Oriented scripting language, it complements C++ nicely.