I was thinking that when I have an advanced knowledge of c++, I would try and make a 1st person shooter. I was thinking like the next Counter Strike type of thing (in my dreams). But is this an ambitious thing to do?
However if you do want to make a counter-strike style game it is possible (when you've had enough experiance ofcourse) with the tons of 3d engines available now (for free and paid ones). They provide all the ground work like resource loading, rendering, networking, etc leaving only the game play to be done. So it wont take 20 years .... a person could theoretically make a game similar to counter-strike in a day if he knows/has a proper engine , has a few models (ppl and weapons) and has the basic code for an FPS. I am talking about the basic game play of counter strike here not the fancy stuff like realistic weapons and similar stuff.
There are a lot of options these days for game programmers and a lot of the basic work is already done and available as stable libraries for use, so starting from scratch is not always necessary.
Why not start off with a mod for a fpsgame? Like using Source SDK in steam to create a Half-Life 2 multiplayer or single player mod. Gives you the basics, but you need to do the rest.. also it uses the HL2 files..
There's plenty of resources for creating mods for Tribes as well, as with most games. I agree with Loyen, start off writing a mod for an existing game until you get a handle on that, as it will be much easier than starting your own game. When you're ready, look at various game engines such as Ogre. At this time, I would say this is too ambitious for you right now given your current skill level. Don't let that discourage you though, just keep working at it.
I have worked a lot with the source engine (making things in 3ds max 9 such as new animations, models, hacked models etc (all my stuff is on fpsbanana.com)) and I feel it's really easy to use. Just that I can't program in C++ so I can't work with it well.. (I'm not good with any programming language). But it gives you a great start and there's plenty of guides how to work with the source engine. :)
If you are very good with C++ and you learn say OpenGL, it is not to ambitious to want to create a fps. The only thing that keeps me from making a fps is the fact that I can not draw people that look.. well, like people. If you can do that it isn't difficult.
However, something on the Counter Strike level IS too ambitious. There is no way anyone could write a game like that by themselves, and I'm sure it would take a large group of expert programmers a good amount of time to produce something of equal quality.