Make sure you learn C++ first (without graphics). Then I'd suggest using a 2D API like SFML. Then move to a 3D one like OpenGL. But skipping from zero graphics to 3D is fine too.
- What is an API, yes I have read all over the internet and they all give fairly the same explanation; an application programming interface
An API is a collection of code functions and classes that do something specific for you so you don't have to do it yourself. OpenGL is a 3D API. It does the complicated math, and complicated interacting with the videocard, to present 3D graphics onscreen so you don't have to learn how the hardware of the videocard works, or how to convert pretend triangles to real pixels onscreen.
APIs are also sometimes called "libraries". As in, a "library" of functions. There are also computer files called 'libraries' (either 'static' or 'dynamically linked libraries) which on Windows have the extension '.a' (static library) and '.dll' (dynamically linked library). An API is usually (but not always) a collection of one or more 'library' files that your .exe program interacts with (either while being compiled, or when being ran).
- how does openGL work? Do you create your code and when you need to show something on screen (text, 3d meshes etc) you just implement that in your game loop?
Yes-ish. OpenGL provides a collection of functions. Your code can call OpenGL functions. OpenGL is low level (meaning less easy to use, and closer to the metal), so it doesn't provide text rendering or 3D model loading in itself (and instead provides the foundation that text rendering or 3D models can be added ontop of). OpenGL provides mostly the ability to draw millions of textured triangles very fast - and games are made up of triangles.
- Also this is not a question in respect to c++ or openGL but maybe a request for some suggestions from the experts who have "been there done that" so to speak. I know I want to use c++ and openGL. What are some things you guys recommend as far as creating games using c++/openGL. I understand that I am going to need to learn a myriad of things but I know if I persevere I can learn something useful.
The best thing to do is learn one thing at a time. C++ is complicated enough to learn without trying to learn additional things at once.
I'd suggest getting a thick C++ programming book (one written within the past 5 years), and a thinner C++ book to use as a reference and as an alternative source of descriptions. Also, bookmark a C++ documentation website, and have the patience to understand that it will take awhile.