OpenGL: Deprecated/removed functions and more...

So I’ve been learning OpenGL for the past two weeks and have finally begun to understand the first few chapters of the book Modern 3D Graphics Programming thanks to a few very helpful members of this forum. I’ve begun to learn about shaders, however I always find myself using ffp functions which are either deprecated or removed, for example when setting up a perspective camera I use:


GL11.glMatrixMode(GL11.GL_PROJECTION); // deprecated
GLU.gluPerspective(70f, 800 / 600f, 1, 10); // deprecated
GL11.glEnable(GL11.GL_DEPTH_TEST); // deprecated

I’ve done a little Googling and found that the alternative to this in modern OpenGL is handling your own matrices and passing them into your shaders. However I wouldn’t yet know how to do such a thing. What I’m worried about is getting into a habit of using these deprecated functions. Should I just continue reading the book and continue to use these ffp functions until I learn modern alternatives?

Another question I have regards the use of shaders and VBOs. I understand that you can use a fragment shader to set fragment colours, but you can also use VBOs. I have no doubt that using a shader would be a better choice but would this be the case for every situation? I see a lot of comments regarding the use of shaders and VBOs as modern OpenGL, but is there any other use for VBOs except for storing vertex data? Is there any limitations to shaders that you would have to use VBOs for?