Skip to content

vgomes-p/Programando_Meu_Futuro_2024

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 

Repository files navigation

Programando Meu Futuro

Quick access

Piscine Reload Libft Get Next Line Pipex So Long Minishell Exam Zip Piscine Mobile Python Immersion Co.lab

The Programando Meu Futuro (Programming My Future) is a project created by Natura, funded through the Crer Para Ver initiative, which aims to introduce children of Natura’s Beauty Consultants from low-income backgrounds to the tech job market.

The program started in 2023 in partnership with New School and continued until 2025 with 42 São Paulo. It was structured in four phases:

  1. Application [mid 2023]

  2. Basic Introduction to Programming with New School [late 2023 - early 2024]

  3. Introduction to a Software Engineering Career Path with 42 São Paulo [mid 2024 - early 2025]

  4. Work Experience at Natura’s Office (NASP) in São Paulo [mid 2025]

Each phase had its own filtering process, meaning that participants had to meet certain requirements or complete challenges to move forward. There was no fixed number of slots — whoever met the criteria progressed to the next phase.

In the first phase, around 13,000 applications were submitted. By the final phase — before the final hiring step — only 27 students remained, which represents about 0.2% of the initial applicants.

Here you’ll find my journey throughout the PMF program — enjoy exploring it!

Start Tech | New School

Start Tech was the introductory course I took on the New School app. It gave me my first real contact with programming and covered basic concepts using Python. Through this course, I learned how programming works in practice and how code is present in our daily lives — from sending a WhatsApp message to a friend to paying a bill online.

42 C Piscine Process

C Piscine was the selection process to study at 42 São Paulo. Before that, I had to complete a course on the New School app, participate in an online meeting where the 42 program was explained, pass some games, and get selected through an applicant draw. The Piscine was a 4-week intensive immersion where I had to learn Shell scripting and basic C programming, interact with other candidates, and actively participate in the community. It was a great experience, but I won’t share my code here because future Pisciners need to complete the challenges on their own (if you are a pisciner, I believe in you, trust the process).

C Piscine
Meeting Games
Shell 00 Shell 01
C00 C01 C02 C03

42 Zip Course

Cover

After being accepted from the Piscine, I started the 42 Zip courses. What sets Zip apart from the Common Core is that we didn’t have multiple milestones — actually, there was only one milestone lasting eight months — and we had to complete six projects plus one exam. The Programming pathway consisted of the following projects: Libft, Get Next Line, So Long / FDF / Fractol, Pipex / Minitalk, Minishell, the Exam, and Mobile. [Note: This description covers the Programming pathway only — I’m not including the Systems and Networks pathway here.]

This was the path I followed during my time at 42:

graph LR
	A[piscine reload] --> B[libft]
	B --> C[gnl]
	B --> D[pipex]
	C --> E[so_long]
	D --> E
	E --> F[minishell]
	F --> G[python immersion]
	F --> H[exam]
	H --> I[mobile]
	I --> J[co.labs]
Loading

Piscine Reload

Piscine Reload

Piscine Reload served as a warm-up for the upcoming courses. In this phase, I was required to rebuild several projects from the original C Piscine, but with added requirements and stricter limitations that prepared me for what was to come. A score of 50 out of 100 was needed to pass. After submitting five retries, I finally achieved 51/100 and was able to move forward.

Button

Libft

Libft

Libft is a custom library of C functions I created. This project aims to recreate functions from the C standard library and implement additional ones useful for future projects. Once approved, it remains open for students to add new functions they develop throughout their journey at 42. This project helps students improve skills like problem-solving, memory management, and understanding how C works at a low level.

Button

Get Next Line

Get Next Line

Get Next Line is a function that reads a file one line at a time. This project’s main goal is to practice buffer manipulation, memory management, and performance optimization for sequential file reading. It helped me become more comfortable working with header (.h) files and dynamic memory, and provided an introduction to how buffers and file descriptors work.

Button

Pipex

Pipex

Pipex is a project that replicates the shell’s pipe process. It connects the output of one command to the input of another, allowing chained execution of processes. Through this project, I deepened my understanding of file descriptors and process execution. It was also my first project working with multiple directories which served as an introduction to software architecture.

Button

So Long

So Long

So Long is a project that challenges students to create a simple 2D game. The goal is to develop graphics skills and game logic. We used the MinilibX library, provided by 42, to render graphics and interact with the player. The game involves controlling a character, collecting items, and reaching the map’s exit. Through this project, I learned about structures in C and improved my software architecture skills.

Button

Minishell

Minishell

Minishell was the most challenging project in my pathway. It involved developing a simple Unix shell. Although it was designed as a group project, I completed it independently, taking full ownership from start to finish. This project connected all the concepts I had learned in previous projects and greatly improved my software architecture and development skills. It also helped me grow soft skills such as handling pressure, resilience, and time management.

Button

Zip Exam

Zip Exam

The exam for 42 Zip was a single test, unlike the Common Core which has multiple milestones. It consisted of 10 levels (10 questions), but only required a score of 80 out of 100 to pass — while all other projects required a perfect 100. This exam also marked the moment I began to stop doubting myself and truly believe in what I had learned, since I was able to understand and develop exactly what each subject was asking for.

Button

Piscine Mobile

Piscine Mobile

The Piscine Mobile was a specialization that followed the 42 Zip Exam. In this project, I had to create three applications: a calculator, a weather app, and a notes app. This project covered basic front-end concepts such as responsiveness, flow, and fluidity, and API integration. I was able to choose the framework I wanted to use to develop these apps; I chose react-native.

Button

42 Immersions

During my studies, 42 was running some immersion tests to see if the subjects were didactic and functional. To do this, they invited students to be beta testers, and I participated in one of these extracurricular tests.

Python Immersion

Python Immersion

The Python immersion was a beta test of the immersion programs that 42 started running in 2025. It was an intense five-day experience where we worked with arrays, data manipulation, function and class creation, and modularization. I did this immersion course in parallel with Minishell, which made it even more challenging, but I personally loved it. I already had a foundation in Python, but I was able to delve even deeper.

Button

Work Place Experience

After completing the projects at 42, I went on to a real work experience at Natura, which lasted four months.

Co.Lab @ Natura

Co.Labs

At Natura, I was assigned to the Google Workspace Adoption and Continuous Improvement team. Yes, an area completely unrelated to programming, but I talked to my manager about it, and together we found a solution where the area could make a little more sense to me. So I ended up developing AppSheets for teams within the company. I worked mainly with DSLs and high-level expressions, as well as on documentation and user manuals. Even though it wasn't real development (I mean, coding), I turned this experience into an opportunity to learn about relational databases.

Button

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published