I'm going to take it one further. All of those are good but I think there are some "easier" and more fundamental things that are massive roadblocks for beginning programmers.
- Understanding the problem itself
- Determining how to actually solve that problem
- Expressing all the details of the solution you've chosen.
- Determining what has gone wrong and why
- Knowing when to step back and try another approach
- Understanding the problem itself
- Determining how to actually solve that problem
- Expressing all the details of the solution you've chosen.
- Determining what has gone wrong and why
- Knowing when to step back and try another approach