{"id":13605168,"url":"https://github.com/rodsmade/Projets_42_SP","last_synced_at":"2025-04-12T02:32:52.264Z","repository":{"id":45426754,"uuid":"368337327","full_name":"rodsmade/Projets_42_SP","owner":"rodsmade","description":"🌵 Todos os projetos desenvolvidos na escola 42 São Paulo 💂 All projects developed at 42 school São Paulo ","archived":false,"fork":false,"pushed_at":"2023-01-03T13:52:36.000Z","size":7559,"stargazers_count":120,"open_issues_count":0,"forks_count":9,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-07T09:44:27.359Z","etag":null,"topics":["bash","c","cpp","docker","docker-compose","shell","typescript","x-windows"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rodsmade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-17T22:29:11.000Z","updated_at":"2024-10-31T15:05:22.000Z","dependencies_parsed_at":"2023-02-01T06:30:49.083Z","dependency_job_id":null,"html_url":"https://github.com/rodsmade/Projets_42_SP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodsmade%2FProjets_42_SP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodsmade%2FProjets_42_SP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodsmade%2FProjets_42_SP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodsmade%2FProjets_42_SP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rodsmade","download_url":"https://codeload.github.com/rodsmade/Projets_42_SP/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248506933,"owners_count":21115510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","c","cpp","docker","docker-compose","shell","typescript","x-windows"],"created_at":"2024-08-01T19:00:55.368Z","updated_at":"2025-04-12T02:32:51.961Z","avatar_url":"https://github.com/rodsmade.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"Português 🌵 | [English 💂](https://github.com/rodsmade/Projets_42_SP/blob/main/README_en.md)\n\n# Projetos na 42sp\nTodos os projetos desenvolvidos na escola 42 São Paulo.\n\n[![roaraujo's 42 stats](https://badge42.vercel.app/api/v2/cl1rzz1es023009l2v061r4ou/stats?cursusId=21\u0026coalitionId=undefined)](https://github.com/JaeSeoKim/badge42)\n\n- [O que é a 42](#o-que-é-a-42)\n- [Visão geral do currículo](#visão-geral-do-currículo)\n\t- [Fase 1](#fase-1)\n\t- [Fase 2](#fase-2)\n\t- [Fase 3](#fase-3)\n- [Como clonar este repositório](#como-clonar-este-repositório)\n\n\n# O que é a 42\n\n\u003e *\"Sem aulas, sem professores, sem grade horária: acreditamos no poder de **botar a mão na massa**, na **excelência** de habilidades, em avaliações **entre pares** e num sistema de progressão como de **videogames** para fomentar o aprendizado. Os grandes marcos se expressam através de níveis de experiência ao invés de horas-aula. Sua experiência individual determina o seu ritmo de aprendizado.\"*\n_[Adaptado de material promocional (em inglês).](https://www.42.us.org/wp-content/uploads/2020/01/42-Booklet-Spring-2020.pdf)_\n\n![Galáxia da 42 - o santo gráfico](https://user-images.githubusercontent.com/49699403/209717594-ea05be2d-14d7-42e1-a4db-22ea612d251c.png)\n\n\nO programa-constelação se divide em duas partes principais: o tronco principal de conhecimentos fundamentais (camadas internas, também chamado de **common core**), e as trilhas complementares de **especialização** (camada mais externa), ramificando rumo ao infinito e além.\n\nO *common core* é composto de 16 projetos que cobrem conceitos fundamentais da Ciência da Computação, e a cada projeto entregue você ganha habilidades novas e XP (pontos de experiência) para passar de fases e avançar em direção ao chefão: o grande **Transcendence**.\n\n![Visual representation of the 16 projects of the common core divided into 3 parts](https://user-images.githubusercontent.com/49699403/146021410-fdd95ceb-d3ce-436c-ba6f-c836d0d1a922.png)\n_(Projetos sob o mesmo número são alternativas para aprender na prática determinado conceito, apenas um deve ser escolhido.)_\n\nA partir deste ponto, tripulantes da nave mãe passam a orbitar os anéis mais distantes da galáxica, e estão livres para escolher um caminho para seguir se epecializando, ou até mesmo criar uma trilha de especialização para que outras pessoas tripulantes possam seguir depois de zerarem o *common core*.\n\n\n# Visão geral do currículo\n\n![image](https://user-images.githubusercontent.com/49699403/210290764-7fe036d4-cd88-482f-8a3d-77f5c5b403f7.png)\n\nFundamentalmente o grande objetivo de aprendizado da 42 é aprender a base e aprender a aprender, de maneira que a trilha básica de fundamentos forma pessoas capazes de aprender rápido qualquer linguagem, framework ou paradigma novo de programação, em um mundo em constante evolução.\n\nNa 42 São Paulo, o *common core* se divide em 3 partes principais. As primeiras duas são desenvolvidas inteiramente em C e Shell Scripts. Na terceira parte há uma mudança para a linguagem C++ e o paradigma de Programação Orientada a Objetos (POO), e tecnologias complementares de front-end, back-end e containerização.\n\nTodos os projetos da fase 1 são individuais. A partir da fase 2, tripulantes da nave-mãe devem se juntar para trabalhar em pares ou em grupos, para trabalhar, aprender e resolver problemas juntes. Os projetos em grupo estão sinalizados com um :restroom:.\n\n## Fase 1\n\n|   nome\t|   assunto\t|   resumo\t|\n|---\t|---\t|---\t|\n| **[libft](https://github.com/rodsmade/Libft-42sp)** \t| Biblioteca estática, Makefile. \t| Construa sua própria biblioteca de funções básicas em C, que será utilizada por todo o resto do *common core*. Algumas funções ```ft_*``` são réplicas de funções tradicionais da libC, outras são personalizadas, e todas devem ser escritas usando no máximo ```write()``` e ```malloc()```.\t|\n| **[get_next_line](https://github.com/rodsmade/Get_Next_Line-42sp)** \t| *File descriptors* e alocação estática/dinâmica de memória. \t| Escreva uma função que lê o conteúdo de um *file descriptor* e retorna uma linha, ou seja, uma sequência de caracteres terminada em ```\\n```. Este projeto é subsequentemente incorporado à Libft.\t|\n| **[ft_printf](https://github.com/rodsmade/Ft_Printf-42sp.git)** \t| String de formatação e funções variádicas. \t| Faça sua própria ```printf```! Este projeto é subsequentemente incorporado à Libft.\t|\n| **[Born2BeRoot](https://github.com/rodsmade/Born2BeRoot-42sp)** \t| Virtualização. \t| Monte um servidor SSH em Linux, com elementos fundamentais de administração de sistemas, regras de senha forte, criptografia e muito mais.\t|\n| **[So_Long](https://github.com/rodsmade/So_long-42sp)** / fractol / fdf \t| Renderização de janelas e gerendiamento de eventos de mouse/teclado. \t| Aprendendo a desenhar visuais gráficos em janelas! Escolha entre desenhar fractais (`fractol`), projeção semi-3D isométrica (`fdf`) ou um videogame top-down em 2D (`so_long`). Projetos feitos utilizando a Minilibx, uma API do sistema X11. \t|\n| **[pipex](https://github.com/rodsmade/Pipex-42sp)** / minitalk \t| Introdução a processos Unix. \t| Escolha entre construir um par de cliente e servidor conversando entre si (`minitalk`), ou simular o operador de *pipe* (`\\|`) do Bash usando os conceitos de *pipes* e *forks* em C (`pipex`).\t|\n\n\n## Fase 2\n|   nome\t|   assunto\t|   resumo\t|\n|---\t|---\t|---\t|\n| **[Push_Swap](https://github.com/rodsmade/Push_Swap-42sp.git)** \t| Algoritmos de ordenação e pilhas. \t| Uma lista de números desordenados deve ser ordenada, com um detalhe: para serem ordenados, devem-se utilizar exatamente `duas pilhas`, e 11 operações de pilhas pré-determinadas.\t|\n| **[Minishell](https://github.com/rodsmade/Minishell-42sp)** :restroom: \t| Uma versão mini de uma shell Bash escrita em C. \t| Inclui a análise léxica e semântica necessária para operar pipelines e redirecionamentos, determinados built-ins, e a estrutura necessária para executar comandos via `$PATH` ou caminhos absolutos.\t|\n| **[Philosophers](https://github.com/rodsmade/Philosophers-42sp)** \t| Paralelismo com *threads* em C. \t| Resolva o famoso problema do Jantar de Filósofes proposto por Dijkstra, evitando concorrência de dados (*data racing*) e impasses (*deadlocks*).\t|\n| **Netpractice** \t| Redes e roteamento. \t| Uma série de problemas simulando LAN's e redes conectadas à internet. Para resolvê-los (em menos de 15 minutos!) é necessário conhecimento de *endereços IP* e *tabelas de roteamento*.\t|\n| **[Cub3d](https://github.com/rodsmade/Cub3D-42sp)** / miniRT :restroom: \t| Renderização 3D \t| Estudo aprofundado sobre computação gráfica para construir um motor de renderização em janelas utilizando a Minilibx. Escolha entre a renderização de perspectivas 3D por meio de raios projetados (*raycasting*, projeto `cub3d`), ou de renderização de objetos 3D com a técnica de contorno por luz e sombra (*raycasting*, projeto `miniRT`).\t|\n\n## Fase 3\n|   nome\t|   assunto\t|   resumo\t|\n|---\t|---\t|---\t|\n| **CPP**\t| Programação Orientada a Objetos.\t| 9 listas de exercícios para guiar o aprendizado mão-na-massa sobre conceitos clássicos da POO.\t|\n| **ft_containers**\t| Estruturas de dados clássicas.\t| Cosntrua sua própria réplica de alguns *containers* (estruturas de dados) da biblioteca padrão de C++: *vectors*, *maps*, *stacks* e árvore binária rubro-negra, implementando classes, iteradores, *overload* de operadores e mais.\t|\n| **inception**\t| Containerização de uma aplicação web.\t| Usando `docker-compose` e `Dockerfile`, configure uma rede de containers que contém os serviços necessários para rodar um servidor de Wordpress (servindo arquivos estáticos HTML e com banco de dados).\t|\n| **webserv / ft_irc** :restroom:\t| Protocolos da Internet em C++.\t| Escolha entre construir um servidor HTTP que recebe requisições e serve um arquivo estático (`webserv`) ou um serviço de bate-papo IRC que segue o protocolo TCP/IP (`ft_irc`). \t|\n| **Transcendence** :restroom:\t| Jogue o renomado *Pong* online com as amizades!\t| Em time, faça a implantação de uma aplicação web em que qualquer tripulante da 42 pode logar e arranjar uma dupla para jogar uma partida de *Pong*. A aplicação deve ser capaz de transmitir partidas ao vivo, permitir que tripulantes se adicionem em listas de amizades, *achievements* e mais.\t|\n\n\n# Como clonar este repositório\nEste repositótio contém submódulos git, ou seja, links para outros repositórios que guardam o código fonte de cada projeto separadamente. Se você apenas executar um `git clone`, a pasta baixada estará praticamente vazia. Caso deseje clonar esse repositório com todo o conteúdo de todos os submódulos, adicione a flag `--recurse-submodules` no seu `git clone`, desse jeito:\n\n```\ngit clone --recurse-submodules https://github.com/rodsmade/Projets_42_SP.git\n```\n\nMas se quiser clonar apenas o código de um projeto específico, basta clicar no link do projeto desejado na página principal deste repositório, e cloná-lo.\n\n\u003cbr\u003e\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\u003cbr\u003e\n\n### **Valeu!** :wink:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodsmade%2FProjets_42_SP","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodsmade%2FProjets_42_SP","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodsmade%2FProjets_42_SP/lists"}