Here are the possible scenarios in order from most ambiguous to least ambiguous.

- You know what you need to do
*and*you know how to do it. - You know what you need to do, you don't know how to do it, but you
*do*know how to*find out*how to do it quickly. - You know what you need to do, you don't know how to do it, and you have no special resources that will help you learn how to do it quickly. [1]
- You don't even have a clear picture of what you need to do.

As you grow as a developer, earn trust, and gain more responsibility, you start tackling work further and further down the list. As a junior dev you usually only deal with levels 1 & 2.

[1] The difference between 2 and 3 is that in 3, you need to start with some googling and/or reading, whereas in 2, you know you have a specific resource that tells you exactly how to do the specific thing you're trying to do. An example of 2 is doing calculus. I don't remember how to do it all anymore now, but I've done it before and I know I could pull my calc textbook off the shelf to remember. This example would be case 3 if I'd never done calculus before, since I'd have to learn it from scratch.