Todo ensino formal de programação que eu tive, o professor pedia para criar algum tipo de programa que usasse coisas recentes que ele ensinou ou que queria que aprendessemos. Já fiz jogo da velha, jogo da forca, jogo da memória, quiz, arquivador e várias outras coisas. É um pouco triste parar para pensar que a maioria dos "instrutores" de curso online vivem fazendo "clones de algo" (e, principalmente, só a parte da interface do usuário, sem a parte complexa).

Uma das coisas mais legais que eu fiz e nunca vi alguém sequer sugerindo como um desafio foi no ensino técnico, era um player de música que eu poderia criar a letra dela, editar, escutar a música com a letra passando no tempo certo, avançar e retroceder etc. Para salvar a letra, usei arquivos, que ficavam num formato parecido com o .srt, mas era "proprietário" (o aluno podia definir como seria, bastava atender os requisitos).

Esse tipo de assunto quase não é falado por aí. Provavelmente porque falar "vou te ensinar a fazer um clone do Netflix" vende mais do que "vou te ensinar programação passando por vários desafios diferentes para você aprender e aplicar cada coisa nova, uma de cada vez."