Here you go.
The old GL is PTSD-inducing because the API is horrible, but especially because it's an elaborate state machine you can't see, only change a bit at a time with function calls. You kind of have to mentally keep track of that state all the time while reading the code. In modern style you do a little bit more stuff manually up front (like set up your own perspective/camera/model matrices - no one does that for you), but you learn those basics better, and the whole apparatus is both easier and far more flexible. The API is still ugly, but at least you don't have to use many functions - for the most part, you just use a couple of generic GL calls to push data to the shaders, where your own shader code uses it - and there's much less state to deal with. GLSL shaders themselves are very easy to code. Writing a bunch of calculations is easier in GLSL than with even the best C++ math library I've seen.