<aside> 📔 Dicas e hacks para vc escrever e aprender eficientemente durante o projeto Libft OU coisas que o PDF não te fala e que a Moulinette vai cobrar!
</aside>
palavras-chave: ponteiros, alocação de memória, vazamento de memória, biblioteca estática, Makefile, GNU make, lista encadeada, typedef, struct.
<aside> ⚠️ Sabemos que não é todo mundo que tem o privilégio de poder dedicar 100% do seu tempo integralmente para a 42. Estes guias surgiram com o objetivo de agilizar o processo de descobrir quais os conhecimentos necessários para conseguir resolver o problema proposto pelo projeto, economizando tempo valioso pra codar. Evitei ao máximo dar soluções prontas — porque desenhar, implementar, testar e construir a solução também faz parte do seu aprendizado na 42. Mesmo assim, esta página pode conter alguns spoilers de implementação, por isso, prossiga com precaução!
</aside>
De maneira geral, o Libft é um projeto muito desafiador para muites cadetes porque ele é muito grande e envolve muitos conceitos novos (principalmente pra quem não avançou tanto nas listas de C durante o basecamp/piscina, está começando agora a estudar programação, em transição de carreira, etc.). Isso desmotiva muita gente, às vezes gera um real desespero, que por sua vez motiva as pessoas a pedirem A.G.U. ou até mesmo desistirem da 42 (😦). Pra tentar amenizar esse baque, oferecer amparo a quem precisa, e te ajudar a gerenciar melhor o seu tempo disponível para a 42, esse doc foi concebido!
Acredito que as principais oportunidades de aprendizado desse projeto são:
Eu fui até a lista C07 no basecamp, então escrever as funções em si não foi um problema grande pra mim (salvo as funções que menciono mais à frente). No entanto, eu estava trampando quando fiz a libft, e senti muito o peso de trabalhar e estudar (além de cuidar da casa / de mim / da saúde física / e da mental / e da vida social).
Os meus maiores desafios no projeto foram: aprender o que os testes automatizados estavam me dizendo sobre o meu código (a parte de memory leaks e proteção dos args); e entender o que é uma biblioteca estática e ****como construir o Makefile.
Contei muito com a ajuda da comunidade mais pro fim do projeto, enquanto adequava meus códigos aos testes automatizados (super importante, se não as chances de cair na Moulinette são altas), e também pra construir meu Makefile, principalmente porque estava apertado de tempo.