I'm a new c++ programmer, and I've been wondering how I can get UI's and such things alike with my basic programs. I have a vague understanding that I can use different libraries with the #include function that can implement such things. I was wondering what libraries these were as I would like to start learning them. For some reason I have the term "OpenGL" stuck in my head when it comes to this. If I am wrong, would someone be able to explain to me what OpenGL does and what library/ies I would need for some UI's and geometry in my programs.
OpenGL is used to give commands to the graphics hardware to efficiently draw complex graphics (3D shapes, texture mapping, shading, etc.). It can't really be used to make GUIs that integrate well with the overall desktop environment, although the desktop environment itself may use OpenGL to do its own drawing (e.g. KDE4 uses OpenGL to do desktop composition).
OpenGL has very much the same purpose as Direct3D, although they originally came from different backgrounds. Direct3D was designed specifically for games, while the design of OpenGL was more focused on CAD software. The gaming industry being what it is, the design of both has veered towards gaming.
Due to the explosion of gaming on Linux, you should use OpenGL, or, even better, some opensource portable game engine. UE4 is the top quality right now. Source engine is very good, but messy (wait for Source 2 instead?). Irrlicht is dated but way simpler. SFML is a mix: High quality, is portable and very simple to understand (it has no editor whatsoever). SDL2 is hardware accelerated, might be worth a shot.