FlightGear is a free, opensource flight simulator for Windows, Mac, or Linux. It has great 3D graphics both for the planes (inside and out) and the scenary. When you install FlightGear, you already have several planes to choose from. Also included is only a small portion of California. This is done to avoid a huge download. You can download more scenery (for the entire planet) and several more plane models from their website.
Learning to fly the planes was fairly easy using the manual and the in-flight tutorials. However, learning to fly the helicopter and the blimp was not so easy due to a lack of documentation on them. Each plane also has it's own list of keyboard commands that are found in the menu to help in learning how to use a new aircraft. You can also just click on the control panel of the plane to activate controls. FlightGear has a nice feature that let's you use your mouse to control the plane if you don't have a joystick. This was nice for me as I don't have a joystick and controlling the plane with the keyboard is not very easy in FlightGear.
FlightGear also has a multiplayer mode which is run online through their servers which allows you to fly and chat with other players. I've never had any problems conneting to the server, though the game has occasionally crashed as my computer lacks the power to use this mode sometimes.
The only issues I've had with FlightGear is the occasional crash, most likely due to my computer's lack of power and overheating issues. The weather features for rain and storms also don't work, though this could be caused by my graphics card. Also, though this isn't a problem for me, FlightGear is not a combat simulator, though there are some combat planes (which can't shoot).