Shaoyi Peng

4-Week Coding Baptism at 42 School

After four grueling weeks of learning and testing in C, I went from knowing absolutely nothing about programming to being able to write 8 functions and 160 lines of code entirely offline and independently.

I don't think any place other than 42 School could have made this happen. Especially considering that, during my very first exam three weeks prior, I scored a dismal 10 out of 100.

42 is a programming school born in Paris in 2013, which now spans 54 campuses across 31 countries globally. Though it’s called a school, there are no teachers and no classes. There are only projects, your peers, and yourself.

The name "42" comes from the classic sci-fi novel The Hitchhiker's Guide to the Galaxy, where 42 is the ultimate answer to life, the universe, and everything.

In July of this year, I took the admission exam in Paris. It’s called the Piscine, which means "swimming pool" in French. In every cohort, four to five hundred people are thrown into this massive pool together. From Monday to Thursday, you study, write code, and do peer evaluations. Friday is a grueling 4-hour machine exam. The weekend offers optional group projects. You repeat this endless cycle until the final week, which concludes with a brutal 8-hour final exam.

Learning here means submitting projects. The system feeds you assignments categorized by topic, scaling from simple to nightmarish. You must teach yourself by scouring the internet or badgering your neighbors, then complete the task exactly to specification. But just finishing the code isn’t enough. After pushing your work via Git, you must go through peer review with two randomly assigned classmates. You have to explain to them exactly why you wrote what you did, and grade each other. Only after all that does the system automatically grade your work—using the strictest rules in the history of grading.

Grades are binary: pass or fail. Getting a zero on your first submission is a daily occurrence. The system won't tell you where you went wrong or how to fix it. Every single rule has to be discovered the hard way. You even have to guess what keywords to search for online. If you don't know, you ask the person to your left. If they don't know, you ask the person to your right. Eventually, together, you hack out a path.

It’s not just the homework; the exams are a blind scramble too. To take an exam, you must register in the system days in advance. On the day of, you arrive on time, log into the terminals differently than usual, open the shell, hunt down a hidden readme file to understand the rules, and carefully type the right commands to log in. During the exam, the internet is cut off. No talking. No walking around. You have exactly 15 minutes to complete this initial setup process, or you are instantly disqualified and kicked out.

During the first week's exam, 15% of the room was asked to leave before the test even started, disqualified for 80 different reasons. Only then does the actual first question appear.

Because peer review is constant, I interacted with an average of at least five strangers every day. Many were absolute beginners just like me: a guy with a man-bun pivoting from the biotech industry; a Chinese-origin mother of two who previously manufactured car shells; a Spanish telecommunications guy who ran in from the smoking area because he saw my NTU t-shirt and had studied there on exchange. But there were also plenty of experienced developers leveling up: a game developer from Canada, a smart contract engineer from Africa, and my lunch buddy who specialized in iOS development.

Despite our vastly different backgrounds and occasional language barriers, my peers were universally incredible. They weren't just happy to help when asked; if they saw you staring blankly at your screen for too long, they would proactively come over and ask if you were stuck. The day before the final exam, when my Makefile was repeatedly throwing errors, a girl patiently tested it with me line by line, brainstorming which exact character might be causing the system to reject it. Another time, my lunch buddy skipped eating entirely. He arrived later, apologizing because he had just spent an hour and a half explaining pointers to someone else.

In this bizarre, magical environment, I constantly leveled up. During week one, I was struggling to understand what write(1, &c, 1) meant. By week four, I was building complex mathematical programs—like writing an executable that takes arguments, verifies if they belong to a given base (like base-8), converts them into an arbitrary custom-character base (like base-16), and outputs the result using only the write function.

My progress was visible to the naked eye. In week one, I scored 10 points. In week two, 60 points. By week three, I was hitting 90. Going into the final exam, I ranked 57th out of over 400 people.

The barrier to entry at 42 seems incredibly low: anyone over 18 can sign up for the Piscine. Yet the barrier to success is exceptionally high, because this learning model strictly filters for self-driven individuals. It doesn't force you into a curriculum timeline. I spent seven days a week writing code from the moment I woke up. I made it to project C09. Some incredible coders finished C11, while others were still on C04—and that was fine. The school doesn’t force attendance. There are no classes, no teachers, and no roll calls. We are all adults; you come and go as you please.

In a way, it’s exactly like life. What you choose to do—or not do—is entirely up to you, and no one guarantees the outcome. You can float on the surface and rest, or you can dive deep and keep swimming just to see where the current takes you.

I just wanted to see a different kind of underwater scenery, so I chose to keep swimming forward. And in doing so, I discovered that I’m a much better swimmer than I ever thought.