
Learning new concepts can seem daunting and confusing. I am currently working on a project called FdF (for its name in French, “Fil de Fer”). In this project, our goal is to create a wireframe representation of a 3D landscape. (In other words, a 3D graphic based on a 2D ‘map’). While reading the subject of the project, I was wondering how numbers that I typed in my program would eventually become dots, lines, and even colours. I was lost.
And here is where creativity comes in: It’s like a laser printer!
Let me explain. A laser printer follows 7 steps:
- Processing: The computer driver ‘translates’ the document you want to print into instructions the printer can understand.
- Charging: There’s a drum (called the EP Drum) inside the printer that is charged with a huge negative energy (-600V).
- Exposing: The EP Drum is hit by a laser (hence, the name laser printer), which creates a higher energy charge in the drum. It goes from -600V to -100V.
- Developing: The toner (charged negatively) is attracted by the EP Drum. The areas that were hit by the laser are now covered with toner. The image to be printed is now on the EP Drum.
- Transferring: The paper is charged with a negative charge and attracts the toner from the EP Drum, transferring the image from the drum to the paper.
- Fusing: The paper goes through a roller that presses the toner onto the paper and simultaneously heats it up. (That’s why paper from a laser printer is nice and warm to the touch).
- Cleaning: The EP Drum is cleaned, and any toner residue is disposed of.
How Does This Relate to 42’s Project?
So, that’s the laser printer process. And here’s the magic: It’s exactly what happens in the project! (Well, at least in my head).
- Processing: First, the code I write in C gets processed (compiled) into instructions that can be understood by the server rendering the images (just like the print job is processed in the printer).
- Charging: The code is converted into lines, dots, and colors (like how the EP Drum is charged with energy).
- Exposing and Transferring: The image is passed from the program to the server (exposing), and the server displays the image on the screen (transferring the image, just like toner to paper).
- Developing and Fusing: The image is then displayed on the screen, created by the server using libraries like MLX. This is similar to how the toner sticks to the paper after being heated (fusing).
- Cleaning: Finally, once the program is closed, memory is deallocated, variables are cleared, and everything is cleaned up. Just like how the printer’s EP Drum is cleaned and reset for the next print job.
Why Analogies Like This Help Us Learn
This analogy really helped me understand the complex process of rendering a 3D landscape in my FdF project. It’s amazing how much easier things become when you can relate them to something tangible, like a laser printer. Sometimes, code can be abstract, and trying to grasp everything all at once can be overwhelming. But using analogies like this can turn an intimidating task into something familiar and
manageable.
One of the most important lessons I’ve learned at 42 is how to think differently and approach problems creatively. The school’s unique environment encourages me to experiment, make connections, and discover how to learn on my own. It’s not about memorizing solutions – it’s about understanding the process and thinking outside the box.
Conclusion: Learning to Think Outside the Box
Learning to code at 42 isn’t just about following step-by-step instructions. It’s about discovering how to connect abstract concepts to real-world experiences. By thinking outside the box and approaching problems with creativity, I’m finding new ways to understand complex ideas and make them easier to digest.
This laser printer analogy has helped me unlock a deeper understanding of my project. And I’m excited to see how other concepts will make more sense as I continue learning through this process of discovery.
Sometimes, learning doesn’t just happen inside the classroom – it’s about connecting the dots in new ways, finding patterns, and discovering how to learn through creative thinking.