Our identification of patterns is one of our most useful features of our intelligence, so much so that it forms the core of machine learning. As humans, we come across situations that require snap judgment, we do not have the time and the mental energy to ruminate over every decision which is why knee-jerk reactions which are borne as a result of learned patterns can be quite useful (though misleading at times).
Software engineering has a steep learning curve as such a lot of innovative thinking is required to survive the early stages of learning. As a hack, even when you don't understand something you're studying repetition helps your subconscious identify patterns, this is why a software engineer can sometimes write code that works without understanding how the code works or why it works.
If you study long enough, hard enough you'll start visualizing steps, the more materials you consume the more you're able to predict what comes next or what the tutor is going to do next in the course building a project or explaining a concept. At that stage, even if you don't fully understand what's going on, by learning the patterns you'll be able to replicate or build your own projects. A lot of times we face deadlines to build or deliver products, these are times when "done" is better than perfect.