Muito bom seu relato, complementando que na jornada do aprender, é fundamental abraçar o processo de tentativa e erro. Cada erro que você encontra é uma chance de aprender algo novo. Isso está alinhado com a teoria da "Zona de Desenvolvimento Proximal" de Vygotsky, que sugere pra gente que o aprendizado ocorre melhor quando você está realizando tarefas ligeiramente acima do seu nível atual de competência. Isso significa que sentir-se desafiado é exatamente onde você deve estar para o crescimento ocorrer.
A programação não é sobre ser um gênio desde o início, é sobre persistência, curiosidade e o contínuo desejo de melhorar. Cada problema que você resolve, cada linha de código que você escreve, e cada erro que você corrige te leva um passo adiante.
Então, quando se sentir desanimado, lembre-se de que a sensação de dificuldade é um sinal de que você está se desafiando e crescendo. Busque apoio quando necessário, pratique consistentemente, e acima de tudo, acredite no seu potencial, só você pode fazer isso, ninguém fará por você.