Eu acho que não existe isso de fundamentos que deve se aprender, mas eu separei alguns fundamentos que são bons saber para programar melhor:

Algoritmos e Estruturas de Dados: Compreender algoritmos eficientes e estruturas de dados é crucial para resolver problemas de maneira eficiente e escrever código de alta qualidade.

Princípios de Programação: Entender os princípios SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation e Dependency Inversion) e outros padrões de design ajuda a criar código mais modular, flexível e de fácil manutenção.

Linguagens de Programação: Embora não seja necessário ser um especialista em todas as linguagens, conhecer profundamente uma ou duas linguagens populares e entender seus conceitos fundamentais é essencial.

Versionamento de Código: Aprender a usar sistemas de controle de versão, como o Git, é fundamental para colaborar efetivamente em projetos e rastrear as alterações no código.

Resolução de Problemas: Habilidade para dividir problemas complexos em partes menores e abordá-los de maneira sistemática é crucial para a resolução eficaz de problemas de programação.

Testes e Depuração: Aprender a escrever testes unitários e a depurar eficientemente problemas no código é uma habilidade vital para garantir a qualidade do software.

Segurança: Ter conhecimentos básicos sobre práticas de segurança, como proteção contra injeções de código, autenticação e autorização, é importante para escrever aplicativos seguros.

Redes e Protocolos: Compreender os conceitos básicos de redes, protocolos de comunicação e tecnologias da web é útil para desenvolver aplicativos que interagem com serviços remotos.

Gerenciamento de Memória e Desempenho: Ter uma compreensão básica de gerenciamento de memória e otimização de desempenho pode ajudar a criar aplicativos mais eficientes e responsivos.

Boas Práticas de Desenvolvimento: Adotar boas práticas de codificação, como seguir convenções de nomenclatura, comentar o código de forma clara e organizar o projeto de maneira lógica, facilita a colaboração e a manutenção.

Lembrando, você não precisa entender tudo de uma vez. Assim como aprender a jogar um novo jogo, cada parte fica mais clara à medida que você pratica.

Muito obrigado Felipe pelas suas dicas, um abraço!

foi claro e directo. concordo com cada palavra e me ajudou a ter uma percepção e compreensão sobre como posso melhorar alguns aspectos e práticas que possuo.