Executando verificação de segurança...
1
imf4ll
3 min de leitura ·

Acham uma boa "recriar" soluções de forma própria para estudar programação na prática dando a cara-tapa?

Já fazem cerca de 3 anos e meio que eu estudo programação diariamente (óbvio que tive momentos de enjoar e ficar semanas sem tocar num editor de código), faço faculdade há 1 ano, tô no 3° semestre e parece que a faculdade sugou minha vontade de estudar programação de fato, meu GitHub tá mais esburacado que estrada, mas ultimamente parece que tá voltando aquele amor que eu sentia por ficar horas escrevendo, projetando, prototipando e colocando em prática projetos pessoais.

Enrolei por uns 3 meses pra terminar um projeto de streaming de música direto do YouTube, sem propagandas, com algumas features pra melhorar o uso, etc. Eu fiz com foco em mim mesmo pq desde que estudo programação, eu gosto de inventar soluções próprias, por mais que existam soluções já prontas pra uso. Eu sinto a necessidade me desafiar e me jogo de corpo e alma até concluir meu objetivo que é entregar algo estável e que sirva principalmente pro meu uso.

Atualmente eu estou trabalhando ativamente num projeto pessoal que se resume em um "file storage" parecido com uma cloud mas hospedado localmente, API, versão web/desktop e aplicativo, como se fosse um Google Drive ou NextCloud da vida, eu poderia ter usado coisa pronta mas senti a necessidade de me desafiar igual eu fazia antes. Eu faço os projetos separando por fases, exemplo: Fase 1: Backend, Fase 2: Frontend, Fase 3: Mobile. Anoto antes, durante e depois de terminar a primeira versão estável de tudo pra manter todas as idéias nos trilhos e comparáveis com o que eu já possuo em mãos. Esse projeto está na reta final da fase 2, faltam poucos ajustes, tratativa de erros e revisar o sistema de autenticação.

Após 1 semana trabalhando nesse projeto, me veio mais um desafio imposto a mim mesmo, um Notion, também hospedado localmente (deu pra perceber que eu amo self-hosting, né?). O maior desafio seria implementar uma forma de renderizar o Markdown em tempo-real como acontece no Notion e Obsidian, com libs prontas eu não conseguiria o que eu propus à mim mesmo, então decidi por implementar um "renderizador" que utiliza uma sintaxe parecida com Markdown, com uma mistura da estilização padrão dos tempos do MSN e alguns placeholders que eu mesmo implementei pra tornar o uso mais dinâmico.

Sempre que eu começo um projeto pessoal novo eu gosto de ir "complicando" pra me por contra a parede e sentir pelo menos um pouco da sensação de cobrança pra me obrigar a estudar, sempre aprendo coisas novas, coisas mais difíceis e sinto que isso agrega de forma muito positiva tanto pro meu conhecimento quanto meu dia-a-dia, já que minhas idéias geralmente circulam em uso próprio e resolução de problemas próprios.

Vocês também fazem isso pra estudar na prática? Parece que se forçar a fazer algo complexo de verdade tem um peso muito valioso no psicológico, você se cobra pra fazer aquilo de fato e busca mais conhecimento pra concluir seu objetivo, seja aprender uma tecnologia nova ou várias tecnologias que agregam muito.

Carregando publicação patrocinada...
1

Isso ai ! Em meu ponto de vista, ótima iniciativa. Eu sempre preferi trabalhar em projetos para enfrentar problemas reais e evoluir com eles. Nada melhor do que aprender na prática e com os erros !

1

Acho totalmente válido, é realmente uma forma interessante de aprender.

Mas uma coisa que também pode contribuir para o seu aprendizado é que entre uma ou outra ação desse tipo, você também tente contribuir com um projeto já existente. Pois no dia-a-dia, nós passamos mais tempo trabalhando em projetos já existentes do que criando novos, e é bem diferente trabalhar em um projeto que só você programou do que em um projeto que outras pessoas também atuaram.

Por exemplo, o Obisidian que você citou, se não me engano é open source, uma contribuição importante para um projeto desse pode te ensinar mais do que tentar recriá-lo. Pode ser que não te ensine código ou tecnologia em si, mas certamente vai ensinar a como trabalhar em equipe e compreender arquiteturas e códigos gerados por outras pessoas.

1

a source do Obsidian é fechada, mas acho interessante contribuir com Open Source tbm, sempre que consigo eu contribuo também

1

Voce estuda exatamente igual a mim,mas no meu caso eu cansei de seguir roteiro de curso, então eu tenho uma gama de cursos mas não finalizo nenhum deles, vou aprendendo e tentando fazer, vou vendo todos ao mesmo tempo e aprendendo com N didaticas diferentes.