I have a big interest for 3D programming since a long time ago, although I've never done anything about it. Recently I've started researching for tools I could use to start learning about this subject. I've found a neat library, called Simple and Fast Multimedia Library. It's open source, cross platform and looked easy, clean, reasonably mature and had overall good user reviews. Oh, and it has bindings for Python, which is incredibly useful for prototyping. There's also the famous PyGame, which is basically SDL for Python, but from what I've read about it, it didn't look as clean and easy as SFML, but it is considered a good library too.
So, after deciding the library I would be using for the GUI and event handling, I had to start reading (OpenGL documentation, math theories, articles, tutorials) and experimenting with code. Finally, when I had a basic idea of OpenGL workflow, I decided to start a small project - a MD2 model viewer! It was a big motivation. Not only I played Quake series since the beginning, but also Quake2 model format is very well documented. As if this wasn't enough, Quake is also open source and Linux friendly.