This rings true to me. I have a degree in aerospace engineering, but I'm a self-taught programmer. I've worked as a programmer, never as an aerospace engineer, but to this day I have a much better theoretical grasp of the latter than the former. I was recently trying to understand bidirectional type checking, and I'm just stuck. I understand ML-style type inference based on unification, for which there are a lot of undergraduate-style descriptions online, but I'm clearly missing half a dozen classes between "point A" and "point B" when it comes to anything more advanced, and I don't know enough to know what I need to learn.
Some things are just not easy to pick up, even for people skilled at self-education. They require a level of background knowledge that has to be acquired incrementally, and it takes time and discipline to pursue that path systematically.