The “programmable pipeline” refers to the dependency on shaders to do anything (fog, lights, etc). If you understand shaders, then you will have a much easier time understanding how the entire pipeline comes together.
Typical next steps would be to learn about matrices, VBOs, FBOs, and how to compile your own shaders. If you are working in 2D, then it basically involves re-writing the LibGDX or lwjgl-basics API (ShaderProgram, SpriteBatch, FrameBuffer etc). There are plenty of C/C++ that will go into more detail on these subjects, mostly regarding 3D:
http://www.opengl-tutorial.org/
http://www.arcsynthesis.org/gltut/ (Java ports here)
http://open.gl/
http://tomdalling.com/blog/category/modern-opengl/
There are also plenty of 3.2+ tutorials on the LWJGL wiki. These won’t enforce object-oriented practices (like using a Texture or ShaderProgram class to minimize duplication) but they will get the point across.
http://www.lwjgl.org/wiki/index.php?title=Main_Page
All of these tutorials require “core profile” and new versions of GLSL. They won’t work on a lot of older computers and won’t translate to GL ES (i.e. iOS, WebGL or Android). However, they will help you understand the pipeline, and after that you can work on learning ES-specific techniques.