Eu tenho uma ideia de Projeto grande que pode te destacar e te ensinar muita coisa se tiver disposto a aprender:
O Projeto
Um aplicativo de notificações de noticias do tabnews com um filtro de preferencia. A aplicação seria a seguinte:
- Um Scraper que recolhe informações diariamente da api do tabnews.
- Um Classifier que recolhe essas informações e determina em quais categorias cada post se encaixa: exmplo: post1: [Javascript, Duvida, SQL]
- Um Notifier que recolhe os posts e suas categorias e distribui com base na preferencia dos usuários.
Detalhes de implementação
Cada um desses serviços que enumerei podem ser um projeto separado em python. O scraper não precisa saber para que ele coleta as informações assim como o classifier não precisa saber quem fornece isso para ele.
A maneira de conectar esses serviços pode ser por uma aplicação de fila assincrona, muito utilizadas no mercado atual: Apache Kafka, RabitMQ, Nats. Da maneira que elas funcionam vai conseguir rapidamente entender como o fluxo dessas aplicações vai ocorrer.
Por ultimo temos persistencia. apenas o notifier precisa realmente persistir dados em um banco de dados, que pode ser relacional como um Mysql ou Postgres ou um NoSQL como um Cassandra ou Mongo, fica a seu critério. os outros dois podem possuir cache para consultas posteriores e geração de relatorios, por exemplo: relatorio de todos os artigos que o scrapper pegou entre os dias x e y. Isso é secundário, claro.
Dicas:
- Não se intimide pelo tamanho do projeto e por não saber as tecnologias envolvidas. Apenas inicie e aprenda como utilzalas a medida que faz o projeto.
- Tenha senso crítico para entender suas falhas de arquitetura. Você está iniciando agora, não espere que vai saber como estruturar um projeto grande de forma que vai mante-lo de forma simples. Faça da forma possível primeiro, organize depois.
- Sempre pesquise como fazer algo antes de começar, pesquise por ideias, por como outras pessoas fizeram.
- Não tenha medo de copiar codigo alheio, você aprende com eles. Mas com uma condição: Não copie e cole, escreva o maldito código e entenda o que ele faz.
- Se existe alguma biblioteca com atualizações frequentes que faça o mesmo trabalho que você iria fazer a mão, utilize a biblioteca (contanto que ela não subistitua uma função que você poderia escrever em 3 linhas ou algo parecido).
__
Bom, escolhendo fazer ou não, boa sorte! Continue aprendendo sempre.