This question has been being asked a lot lately.
Question 1:
I have been programming dbc for 5 years, and programming in general for 7 and I am still learning. You can learn the language in a few months of dedicated reading and studying. However, you won't be a great programmer, you will simply know a bunch of commands and what they do (for the most part). Learning how to use them is the trick.
Question 2:
Well if by software you mean darkbasic, then it is almost unlimited in what you can do. Keep in mind that it IS a language for games, so it won't necessarily be as easy to do some things as other languages.
If by software you mean fps creator, then VERY limited, compared to the language itself. For one, all you can do is make fps's. Darkbasic can make any kind of game or program (again, for the most part). As with any game maker, you will never make a TRULY great game. You may get close, and even have people really love it. But the fact of the matter is that when it is played, people will see it as a game made with a game maker, simply because you can just tell. There really isn't any way around it. For instance, if you are familiar with rpgmaker, you can ALWAY (after using it for some time) identify a rpgmaker made game.
Question 3:
Any program will do. Again, you will need experience. Google free 3d modeling programs. Great things have been made in almost all programs. What you should do is find one that you like and then find tutorials on it. Read books too. Dedicated application will let you master any program and programming language.
So thats it. You never really stop learning, but you can get a good start within a few months. DarkBASIC is MUCH more flexible. And finally, there are many, here are a few free ones:
Doga
Gmax
maya(definitely not free, but worth taking a look at)
truespace(not always free, but sometimes you can find an older version that has become free)
Ones that I like but are expensive are:
3ds max
Autocad if precision is needed
Ever notice how in Microsoft word, the word "microsoft" is auto corrected to be "Microsoft" but "macintosh" just gets the dumb red underline?