The primary difference is how up-to-date the strategies are. The direct-modeimmediate mode used in the first tutorial:
glBegin(GL_QUADS);
glColor3f(1, 0, 0); glVertex3f(0, 0, 0);
glColor3f(1, 1, 0); glVertex3f(100, 0, 0);
glColor3f(1, 0, 1); glVertex3f(100, 100, 0);
glColor3f(1, 1, 1); glVertex3f(0, 100, 0);
glEnd();
Is outdated and not supported on newer versions.
Using vertex buffers and shaders is the current method of rendering with OpenGL. It may seem more complicated, but it performs considerably better. Additionally, once you have your supporting code wrapping up the OpenGL stuff, the differences are abstracted away for the most part.