Courage to Attack Difficult Questions
I think this is a pretty common problem, especially for novice programmers. They're given an assignment and don't know how to start- in fact, they don't even know what it's asking!

I don't think this is due to a lack of "courage" - it's because they don't have the framework required to start breaking problems down yet.

I think step one is to normalize this a bit, and specifically mention that this is a common way to feel. Then walk them through the process of getting over that initial hurdle. What behavior do you want them to exhibit? Model that behavior for them.

I try to encourage people to break their problem down into smaller steps and take those steps on one at a time. There are a lot of approaches here, including:


Restate the problem in your own words.
Break the problem down into logical sub-steps.
Identify your input and output.
Think about how you'd do this without a computer, with a piece of paper and a pencil.
Do the absolute smallest thing you know you need to do, like open your IDE, or write the class or function declaration.


Another thing that I think is important is demonstrating this behavior yourself. A lot of lectures and tutorials cover the happy path of developing code. Students see how easy it is when you do it, and then get home and don't know how to start and think that must mean they're terrible programmers. In fact every single programmer feels this way, so it's important that they know this. So I recommend doing a live demo of working through a problem, including stuff like using Google, looking stuff up in the reference, making mistakes, debugging, etc.