Você não precisa ter receio de alterar. Não precisa colaborar de inicio, mas pode fazer fork ou simplesmente baixar o fonte do projeto na sua máquina. Ler, tentar entender como funciona, diagramar os componentes arquiteturais, o que são, como se comunicam, depurar o código, rodar os testes, rodar o sistema,dar uma olhada nas issues em aberto e tenta executar,dar uma olhada nas executadas e ver como foram executadas...enfim mexer no projeto vai te ajudar a expandir o conhecimento. E nada disso precisa sair da sua máquina.Não precisa subir suas alterações no ramo do projeto. Depois que tiver aprendido, você decide se quer colaborar ou não.
Aqui ainda não vi um padrão no título dos projetos publicados, mas até mesmo o tabnews vc consegue baixar o fonte. Só procurar o link do github no rodapé. Segue alguns links: https://githubbrasil.com/ https://www.tabnews.com.br/jotavetech/fiz-um-jogo-open-source-para-ajudar-voce-a-praticar-sistemas-numericos https://www.tabnews.com.br/hagaka/onde-encontrar-projetinhos-para-colaborar
Não consegui identificar um padrão eficiente de desenvolvimento a seguir
. Uma sugestão que eu dou é começar rascunhando as telas. Identificando o que o usuário precisará saber e fazer. A partir daí identificar o que o sistema precisará ter para viabilizar a necessidade do usuário. Evita desenhar tudo primeiro para depois programar. Diagrama o suficiente para que tenha uma idéia clara de como irá proceder e uma vez que já tenha essa noção vc implementa.
Não tenta fazer tudo certo de inicio. Usa a primeira versão para aprender alguma coisa. Depois refaz o projeto usando o que aprendeu na primeira versão (aquilo que o Fred Brooks chama de sistema-piloto).
Beleza, vou seguir nesta linha, e ser um pouco menos perfectonista.
Vou pegar alguma programa já feito para estudar em cima tá bem.