The short answer:
No. Learning OpenGL 2.1 is a good idea, even today, as long as you learn the "good parts".
The Long answer:
OpenGL can essentially be divided in two parts: "The good parts" and "Legacy functions".
Honestly, I don't see much benefit in learning legacy functions (the "fixed function"). However, a substantial portion of OpenGL 2.1 (the good parts) are still available today with relatively minor changes.
As such, learning some parts of OpenGL 2.1 can be beneficial. In particular, OpenGL ES 2 is very popular these days, and ES 2 is mostly (but not exactly) a subset of OpenGL 2.1. For 3D programming in smartphones, OpenGL ES 2 is a must.
So what's "good"? Essentially anything that is in OpenGL 3.1 "core profile" (as opposed to "compatibility profile") and/or in OpenGL ES 2.
- Vertex and fragment Shaders: Learn them
- Textures: Still good.
- Matrixes: Knowing how they work is beneficial, but
glLoadIdentity
and that sort of functions are outdated and should be avoided
- Light: Knowing how light can be simulated in computer graphics is useful, but
glLightfv
and other fixed function light functions should be avoided.
- Array buffers: Good
glBegin
, glVertex
, glColor
, glEnd
: Avoid them. Might be good for quick experimentation, but there are other better ways to do the same.
- Display lists: Avoid
Current answers are outdated
" as the reason for the bounty. I started one for you. – House Aug 20 '12 at 18:50