I would like to start programming 3d games... but what do I need, and where do I start?

Thank you.