porque eu tenho dificuldade em entender e desenvolver
Pela minha experiência com aprendizado, é muito importante o caminho que você está seguindo para aprender, e com caminho quero dizer livros, cursos, exercícios, pesquisas, experimentos no desenvolvimento de pequenos softwares, etc. Você precisa encontrar caminhos de aprendizado produtivos, que tragam um avanço no seu conhecimento de maneira suave, sem bloqueá-lo com coisas que ainda são muito difíceis para você (conteúdo muito avançado) e ao mesmo tempo sem desperdiçar o seu tempo e energia te ensinando o que você já sabe muito bem (conteúdo muito básico).
Por exemplo, se eu me deparar com um artigo do qual não estou entendendo quase nada, muitas vezes eu vou buscar outro conteúdo sobre o assunto, até encontrar um que eu entenda bem. Isso me permite avançar meu conhecimento de maneira mais suave sobre o assunto, e, depois de entender melhor o assunto, posso voltar a ler o artigo inicial e percebo que entendo-o muito melhor.
Mas conteúdos que “simplificam demais” conteúdos difíceis para facilitar o entendimento muitas vezes vão explicar superficialmente ou de forma incorreta os conceitos, porque a simplificação feita pode lhe fazer ter um entendimento equivocado por ela ter descartado coisas importantes. Mas ainda assim esses conteúdos funcionam bem para começar a aprender sobre o assunto, e o problema dos entendimentos equivocados é resolvido quando você consegue absorver os conteúdos mais avançados que vão te mostrar que as coisas não eram bem assim como você estava pensando.
Então quando eu quero aprender algo novo, em geral busco vídeos e tutoriais sobre o assunto, porque geralmente eles fornecem conhecimento básico sobre o assunto de forma bem fácil de absorver. Busco usá-los como uma introdução ao assunto. Se não entendo a maior parte do que está sendo ensinado, busco outro conteúdo sobre o assunto. Conforme avanço no entendimento do assunto, e vou conseguindo absorver os conteúdos mais avançados, percebo que os “conteúdos de iniciantes” estavam com certos equívocos (outras vezes até estavam certos, e eu que havia entendido errado mesmo).
Bons cursos e livros fornecem um estudo estruturado que cuida de te ensinar as coisas que você deve saber, deixando o seu aprendizado sem lacunas importantes. Não dominar bem vetores e listas é uma lacuna importante, esse tipo de estrutura de dados é usada o tempo todo. Conteúdos estruturados que vão do básico ao intermediário/avançado podem ser a forma mais suave e eficaz de aprendizado.
Outro ponto importante é aprender e entender cada assunto com a profundidade adequada, se você aprender apenas superficialmente cada coisa provavelmente não vai conseguir desenvolver um sistema, vai ficar bloqueado nas dificuldades e desafios que aparecerem porque você não entende bem o que programou até ali, entende apenas superficialmente o seu sistema. Mas se você tentar aprender cada coisa de forma muito profunda, vai gastar muito tempo em cada coisa e não vai aprender itens suficientes para desenvolver o sistema sozinho (embora você possa acabar se tornando um especialista naquilo que estudou a fundo, e colaborar em uma equipe para desenvolverem juntos um ótimo sistema).
No caso da programação web, recomendo começar com o HTML e depois o CSS, que estão nos fundamentos. Para aprender programação também há uma ordem de aprendizado importante, você começa com variáveis, tipos de variáveis (tipagem), estruturas de dados (o que inclui listas e vetores), e instruções simples como cálculos e instruções para mostrar coisas na tela/console e ler dados inseridos pelo usuário; depois aprende coisas como if/else, loops, funções, bibliotecas e documentação, etc. Conceitos O.O. como herança, polimorfismo, generics, etc. são mais avançados e é melhor deixá-los pra aprender depois; entretanto, no Java você pode se deparar com esses mecanismos mais complicados logo no começo, como em: List<Animal> animais = new ArrayList<>();
, só aí já tem generics, polimorfismo, a chamada a um construtor, o conceito de classes e instanciação de objetos, interfaces, etc.
Resumindo, você não precisa desanimar por causa das dificuldades que está enfrentando, se você insistir em aprender um assunto ele irá ficando mais fácil e claro pra você com o passar do tempo. Não acho produtivo ficar insistindo em entender algo que está difícil de entender, se está tão difícil provavelmente você vai ter que aprender outras coisas antes, então deixe isso pra depois, e siga pelo caminho de estudo no qual você conseguir ver o seu melhor progresso em aprendizado e entendimento real de cada coisa.
Espero ter ajudado, fique com Deus.