In the first stage, you simply go forth and try. And you drown in complexity. This stage is important, because it's what motivates the second stage. And we shouldn't underestimate the sheer volume of useful trivia that seeps into one's head here.
In the second stage, you shift focus to the longer-term project of mastering the underlying concepts.
Many people get stuck in stage 1, though some of them manage to have careers in programming anyway.
Other people try to skip straight to stage 2, but they often lack the context to understand why the concepts are important, and so they struggle. I think many people who get frustrated in introductory computer science classes fall into this group.