As someone who has started studying programming and CS recently, avoiding becoming a guy who "glues APIs together" has been one of my goals. I want to learn the underlying principles, not just the surface-level implementations that change every few years.