I don't have formal studies in programming nor in graphic design, I'm self-taught, you know I have learned some things here and there. So far have been doing amateur stuff, sort of hobbyist. I would like at some point of my life be doing professional games, don't know if that would mean acquiring formal knowledge at some gaming college. It is something even desirable or advisable?
Straight answer: it is very advisable. I'll explain you what I've learned, and hope it helps.
Formal studies always help when you want to take things to the professional level. However, the entertainment industry is very big and there is an advantage/disadvantage when it comes to media: everything comes down to portfolio and imagination.
Let's say you want to work on EA. Big thing, huh? They ask for formal studies; sure, but then they see your portfolio (and you need a strong one, not necessarily a big one). So... it helps, but imagination and portfolio helps better.
Now, let's say you want to go indie. Good thing. People don't ask for code standards, design documents or formal education; they want games. Good, funny, maybe free ones.
If you have the time, and the budget, to afford formal education; go for it. Why? You'll be on the shoulder of giants and you'll have subjects to focus your attention on; so learning will be kind of faster. But always remember that all of the theoretical material is worthless unless you make games, show it to people and get feedback from them to get the hang of it.
Finally, keep self-teaching yourself. That's key on being successful. Users/clients/bosses don't care too much if you were taught about a subject, but rather whether you actually know about it.
PS: As David pointed out, it's recommended to go for a specialized curriculum. Computer Science or Arts and getting a game development major. But that's up to you to decide and there are pros and cons that don't belong to this subject.
When thinking about C/C++ (because these are the industrial standard languages), I learned most of C by myself, but I admit that school helped a lot for C++: C++ is really a fat subject when used for game programming, but that doesn't necessarily mean I couldn't learn things by myself; school is a very efficient shortcut, but like every shortcut, it's harder and can cost money, and even worst, sometimes you might feel you are learning nothing.
Don't forget there are 2 sides for being a game developer; first you have to be able to use C++ fluently, and not just classes and virtual function: also the basic STL containers. Secondly, since game programming is all about code and nothing else, you have to learn about design patterns, but often that might not be enough.
I'm sure you could do some Ogre programming for example if you have some project in mind and time to spare. Don't forget that it's much much better to learn something new to solve a problem when you explicitly know what it's for: learning the theory while practicing is more logical because you have a concrete example which makes it better to remind you what it's for. It's more reassuring than school.
On the other hand, you have to have a pretty good amount of free time and self-confidence, because at school you have help not only from teachers but also from students, but don't forget that there's also pretty good help on forums and IRC channels.
To answer your question, I'd say it mainly depends on what you need to learn, since the basics are quite important, but it also depends on your curiosity and how autonomous you can be.
I have taken the opportunity to get into a private school because I had funds at the moment, I don't know if I would have risked to make a loan for that. On the other hand I met people, which is an important thing, but that won't change the way I conceive programming and how I like to learn things: most of what I see are people unable to seek the information for themselves and are too much used to being teach planned things rather than asking questions or asking themselves questions, after to watch them complain about the program.
I guess the answer would have been very much different would you have asked it 10 or 15 years ago, but nowadays multi-core processors and giga-powerful consoles require a game programmer to be able to get hold of bigger data structures and algorithms and design patterns etc etc.
Of course I'm not talking about hobbyist/low-project game programming, which can be done with unity for example, but more about professional/know-how-it-s-done/from-scratch game programming, which gives you a lot more.
If you think you'd enjoy making games then go for it! It's always best to do what makes you happy. But really, there are two routes you could take. You could take a generalised course that included computer programming for example a computer science course. Then maybe learn game programming afterwards. That way, if the game programming career falls through, you have other options.
If you look at the money some of the recent games made especially with the financial recession, then I suppose it would be an advisable career. Notch's minecraft game is a good example. He did that near enough on his own and he now has nearly 1 million paying customers. It pays off if you hit a niche. It all comes down to luck like a lot of things in life.
So definitely just go with it if you think you'll enjoy it.