Before applying anywhere, it helps to know honestly where you actually stand. Not to discourage yourself, and not to inflate your confidence either — just an accurate picture, because acting on a wrong one wastes effort in the wrong direction.
Underestimating yourself means not applying to things you were actually ready for, or apologising for gaps that are completely normal at this stage. Overestimating yourself means walking into interviews unprepared for basic questions, or applying only to roles well beyond your current level and collecting rejections that a slightly different target would have avoided.
Both come from the same root cause: not having checked honestly beforehand.
Answer these in writing, honestly, dated. Revisit them monthly. The gap between this month's answers and last month's is a far better measure of progress than how you feel on any given day.
Self-assessment has a limit — everyone is a poor judge of their own blind spots by definition. A second opinion helps: ask a teacher, a further-along peer, or anyone technical to look at one project and be genuinely honest, not encouraging. Encouraging feedback feels better and teaches you less.
Comparing yourself to senior developers, to impressive online portfolios built over years, or to the most advanced person in your batch produces discouragement with no useful information attached. The only comparison worth making is between where you are now and where you were a month ago, and between what you can currently do and what a junior role in this landscape actually requires — covered in the previous lesson.