Eu aprendi ou fui aprendendo a programar há muitos anos na disciplina de algoritmos e programação em C, no inicio parecia tudo mesmo "chinês" principalmente para passar para os ciclos em Inglês do C e coisas abstratas em que não via o valor real a usar no dia a dia pois no inicio era mesmo só fazer algoritmos no papel. Mas depois ao começar a programar tudo se tornou intuitivo percebendo que é o que fazemos na vida real e que sim se vê como são usados no nosso dia a dia, coisas simples como ver se um ano é bissexto, somar vários valores caso se faça algo.
Foi bastante importante aprender a partir da algoritmia.
Sobre base de dados os conceitos básicos aprendi no excel onde fazia algumas brincadeiritas dai ficar com o gosto de aprender para conseguir fazer melhores pesquisas, dai para o sql foi um passo.
Na minha opinião pessoal e acho que para uma melhor aprendizagem os alunos têm de perceber a utilidade das matérias e ver a utilidade real das coisas para se auto-motivarem