Here’s my take on the subject.
Is it more complex to learn in the beginning? In a certain sense, yes. But that is only in the sense is that you have to actually understand what’s going on. You have to know that there’s a rendering pipeline and that data flows from one end to the other.
You are able to learn the FFP without actually having the slightest clue what it means. You can “learn” that glNormal associates normals with vertices. You can “learn” that glLight calls setup lights that act on the normals to create the effect of illumination. You can “learn” that glColor associates colors with vertices.
But do you actually understand what’s happening? Take what I just talked about: normals, colors, and lights. Does a person who learned these with FFP OpenGL truly understand it? Do they realize that lighting is done per-vertex? Do they understand why glColorMaterial is needed, and what it’s doing internally? Do they understand the difference between “diffuse” and “specular” lighting, or do they just fiddle around with values until it looks “OK”? And so forth.
Fixed-function OpenGL allows you to have the illusion of understanding, without the certain knowledge. You are allowed to think that you know more than you do, because it’s simpler.
And this kind of knowledge is not sophistry; it’s crucial if you’re really going to solve problems with OpenGL and graphics. Take the above knowledge, now add textures. Well… what does a texture really mean? If you don’t understand how the per-vertex color really interacts with the lighting equation, how do you explain that a texture just allows you to vary that color on a per-fragment basis? Because it’s that final understanding which is important in the world of shaders.
It is possible to learn FFP OpenGL to a degree that you actually understand what’s going on behind the scenes. But it will take far more time and effort. And much of this time and effort will be wasted.
For example, I can explain the details and intricacies of glTexEnv in all of its myriad insanity. Is that knowledge of any value in a shader world? Was the time I spent learning it of use? Mostly, no. Oh, I learned about rasterization and fragments; that’s useful. I learned about the interpolation of per-vertex outputs. But the specific details of the “texture environment” functions?
Completely useless now.
Furthermore, there’s a lot of stuff that you can leave out of the early lessons. Uniforms are not needed in “hello world”. You still have to do attributes, but there needs be no querying of them thanks to explicit attribute locations in GL 3.3. Buffer objects for vertex data are really just 3 extra function calls (and you can explain them as being nothing more than a GPU malloc. Which they are). So that takes care of lesson 1, which is the hardest part of shader-based GL.
Once you get lesson 1 down, you can introduce each new concept as needed: uniforms, multiple attributes (along with vertex formats), etc.
You can learn step-by-step with modern GL effectively. It will certainly be a front-loaded experience to an extent, one that requires that you gain an understanding of what’s going on. As evidence is the partially complete book about learning modern OpenGL in my signature. It’s up to you as to whether it does the job I say can be done.
Of course, your main problem is that you lack a computer with GL 3.x capabilities. So… that makes it kind of a moot point for you.