https://github.com/rogeriols/projets_42_sp
About cactus Todos os projetos desenvolvidos na escola 42 São Paulo guard All projects developed at 42 school São Paulo
https://github.com/rogeriols/projets_42_sp
Last synced: 4 months ago
JSON representation
About cactus Todos os projetos desenvolvidos na escola 42 São Paulo guard All projects developed at 42 school São Paulo
- Host: GitHub
- URL: https://github.com/rogeriols/projets_42_sp
- Owner: RogerioLS
- License: mit
- Created: 2023-08-20T20:24:50.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-05T20:00:58.000Z (about 1 year ago)
- Last Synced: 2025-04-05T20:29:31.182Z (about 1 year ago)
- Size: 37.1 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Projetos na 42sp
Todos os projetos desenvolvidos na escola 42 São Paulo.
[](https://github.com/oakoudad/badge42)
- [O que é a 42](#o-que-é-a-42)
- [Visão geral do currículo](#visão-geral-do-currículo)
- [Fase 1](#fase-1)
- [Fase 2](#fase-2)
- [Fase 3](#fase-3)
- [Como clonar este repositório](#como-clonar-este-repositório)
- [Profile Intra 42](#profile-intra-42)
# O que é a 42
> *"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."*
_[Adaptado de material promocional (em inglês).](https://www.42.us.org/wp-content/uploads/2020/01/42-Booklet-Spring-2020.pdf)_

O 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.
O *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**.

_(Projetos sob o mesmo número são alternativas para aprender na prática determinado conceito, apenas um deve ser escolhido.)_
A 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*.
# Visão geral do currículo

Fundamentalmente 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.
Na 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.
Todos 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:.
## Fase 1
| nome | assunto | resumo |
|--- |--- |--- |
| **[libft](https://github.com/RogerioLS/Libft-42sp.git)**| Biblioteca estática, Makefile. | 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()```. |
| **[get_next_line](https://github.com/RogerioLS/Get_Next_Line-42sp.git)** | *File descriptors* e alocação estática/dinâmica de memória. | 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. |
| **[ft_printf](https://github.com/RogerioLS/Ft_Printf-42sp)** | String de formatação e funções variádicas. | Faça sua própria ```printf```! Este projeto é subsequentemente incorporado à Libft. |
| **[Born2BeRoot](https://github.com/RogerioLS/Born2BeRoot-42sp)** | Virtualização. | Monte um servidor SSH em Linux, com elementos fundamentais de administração de sistemas, regras de senha forte, criptografia e muito mais. |
| **[Fractol](https://github.com/RogerioLS/Fractol-42sp)** / So_Long / FDF | Renderização de janelas e gerendiamento de eventos de mouse/teclado. | 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. |
| **[minitalk](https://github.com/RogerioLS/Mini_Talk-42sp)** / pipex | Introdução a processos Unix. | 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`). |
## Fase 2
| nome | assunto | resumo |
|--- |--- |--- |
| **[Push_Swap](https://github.com/RogerioLS/Push_Swap-42sp)** | Algoritmos de ordenação e pilhas. | 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. |
| **[Minishell](https://github.com/RogerioLS/Minishell-42sp)** :restroom: | Uma versão mini de uma shell Bash escrita em C. | 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. |
| **[Philosophers](https://github.com/RogerioLS/Philosophers-42sp)** | Paralelismo com *threads* em C. | Resolva o famoso problema do Jantar de Filósofes proposto por Dijkstra, evitando concorrência de dados (*data racing*) e impasses (*deadlocks*). |
| **[Netpractice](https://github.com/RogerioLS/Net_Practice-42sp)** | Redes e roteamento. | 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*. |
| **[Cub3d](https://github.com/RogerioLS/Cub3D-42sp)** / miniRT :restroom: | Renderização 3D | 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`). |
## Fase 3
| nome | assunto | resumo |
|--- |--- |--- |
| **[CPP](https://github.com/RogerioLS/CPP-42sp)** | Programação Orientada a Objetos. | 9 listas de exercícios para guiar o aprendizado mão-na-massa sobre conceitos clássicos da POO. |
| **inception** | Containerização de uma aplicação web. | 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). |
| **webserv / ft_irc** :restroom: | Protocolos da Internet em C++. | 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`). |
| **Transcendence** :restroom: | Jogue o renomado *Pong* online com as amizades! | 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. |
# Como clonar este repositório
Este 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:
```
git clone --recurse-submodules https://github.com/RogerioLS/Projets_42_SP.git
```
Mas 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.
# Profile Intra 42
---
### **Valeu!** :wink: