Sempre que eu quero aprender uma nova estrutura / linguagem, costumo criar um pequeno projeto que a use. Para uma estrutura da web, eu tenho um aplicativo da web comum que escrevo usando-o. É simples e não faz muito, mas possui recursos suficientes para que eu precise aproveitar as partes mais comuns da estrutura (banco de dados, trabalhos em segundo plano, mvc ou qualquer outro semelhante). De fato, há pouco tempo, assumi a tarefa de aprender o Spring / MVC + Hibernate. Certamente não sei tudo, mas isso me deu uma base suficiente para que, quando não sei de nada, sei quais perguntas fazer e como pedir para obter mais informações.
Para estruturas da Web, geralmente começo com o exemplo simples "olá mundo", fornecido para a maioria das estruturas. Se houver um exemplo de "livro de visitas" (ou seja, para mostrar o uso do banco de dados), eu continuo com isso. A partir daí, comecei a adicionar a funcionalidade desejada no meu aplicativo de aprendizado, começando pelo mais simples. A ideia é que eu possa descobrir como fazer as perguntas certas para as coisas simples. Depois de fazer algumas coisas simples, posso analisar as coisas mais complexas e, com as informações que já aprendi, espero formular as perguntas certas para solicitá-las.
Recentemente, comecei a colocar o código para esses projetos de aprendizado no sourceforge , se você estiver interessado.
Edit: O comentário de Donal nos fez querer adicionar ... Eu não coloquei o link como um exemplo para você aprender. Pelo contrário, apenas como um exemplo de eu colocar meu código lá fora. Se você quer realmente aprender, precisa escrever o código você mesmo, não apenas ler o código de outra pessoa (na minha opinião, pelo menos)