The third pillar is the one most tutorials skip entirely. You can teach syntax and you can teach problem-solving, but communication only comes from real team experience — code reviews, incident postmortems, architecture discussions.
I've seen engineers with 5+ years still struggle here because they only ever worked solo or on toy projects. The gap between "I can build this" and "I can explain why we should build it this way" is where most senior promotions actually get decided.