Survival guide to School 42 Piscine in Silicon Valley

I intend to keep this post up to date. If you notice anything missing or incorrect then please send me an email at hello@kristofk.com.

If you are reading this post then I take it you know what 42 is and you are already decided on taking part in it. Its good to know that in Silicon Valley, everyone is immediately accepted to the Piscine, but this is not the case in other countries.

I attended School 42’s Piscine in Silicon Valley and it was a unique experience. It is more like an endurance test rather than a knowledge test. I reason I’m writing this article is to help you prepare mentally and save you the trouble of figuring out the thing that you should be told about. Arguably figuring out these things is part of the process… but here is this article anyway.

General knowledge

Generally, you need to know that the piscine is mostly automated. This means that computers and programs run everything and humans have to adapt to that. So everything is always on time, for example, presentations happen in the exact second they are supposed to. Your work is mostly corrected by a computer and a combination of multiple programs meaning that there isn’t any room for negotiation.

The one thing that really bothered me was the french naming scheme, e.g. bocal, piscine, moulinette… but if you get used to it, its actually fine. There is also an inside joke that everything is 42: the start and end times, points, punishments… hilarious.

If god forbid you fail on the piscine then don’t worry, as you can try again unlimited times. As a result, there are usually people in the piscine who failed it previously. These people are the most knowledgeable and so if you happen to find one, be friendly to them as they can give you a lot of insight.

Area and housing before 42

School 42 Silicon Valley is located in Fremont. Fremont is a chill city in the Bay Area. There aren’t many distractions so you can focus on your studies. The good thing is that you can easily go to San Francisco or visit companies in Silicon Valley.

Housing before 42

There is a Slack channel called #need-a-room where you can coordinate with other people to rent rooms. I recommend you take an Airbnb in the area. But since Fremont is not a big place it doesn’t have that many options as big urban cities would. So book early for the best deals.

Position of the campus

The school is located on a campus where other companies also rent office spaces. This means that it is is a very isolated area. If you want to do anything you have to get out of the campus, which is awkward since the whole place is designed for cars. But you have options…

Commute

There are a few ways to get out of the campus, these are indicated on the map above. There are two shortcuts to the main road both of which cross a train track (which you are not supposed to cross 🤫). One is a slightly shorter walk than the designated path while the other requires you to climb a wall. By walking you can go to the grocery store, restaurants and bus stops.

Visiting tech companies and Silicon Valley

If you want to go on a Silicon Valley tour then you should rent a car from the aforementioned car rental companies and drive around. Recommended places you should hit are Google, Apple, Winchester Mystery House and Stanford. To hit all these places it takes about 1 day and you can expect to drive less than 100 miles.

Amenities in 42: Dorms, Canteen, Labs, Security

Now that you know the lay of the land and you can get around, you are ready to check in to the dorms. If you have a car and would like to park on the campus, you have to register it at heimdall.42.us.org.

Dorms

All you need to do is to show up in front of the dorm building. You’ll get your turn to check-in and you’ll get assigned with random roommates. However, if you don’t want random roommates, you can get a room as a group of up to 4 people. So while you are in the line, you might as well utilize your time and talk to people, mingle. You can find friends there and make sure that you get in a room with the best people. Just remember that everyone in the line is new here, no one knows anyone and everybody wants to socialize. So be the one who initiates conversations.

In the dorm room, there will be 4 beds (2 bunk beds), a bathroom and 2 closets. If you bring your cloth hangers then you can hang your clothes in the closets. There is air conditioning in all the rooms.

You need to bring your own supplies like bed sheets, soap and a pillow. If you forgot anything then you can go to Safeway and Ross and you can buy anything.

In the dorms, there is also a section for charity. If you don’t need or need something you can give it or if you find something you need you can take it. You can also find a common room in the building and there is a ping pong table there with rackets and balls. However, I highly recommend that you bring your own ping pong balls and hang onto them.

Cantina

The cantina can be found in the dorms building. You can buy your lunch and dinner there and there is also a sandwich/cafe bar and a desserts bar. In the cantina, you can only pay with your digital wallet. You have to put money into this wallet before buying your meals. You can find all the information about the canteen, food and your wallet on cantina.42.us.org.

Labs

The labs are where you are expected to spend most of your time. The labs are split up into sections and one of the sections is for the pisciners. In this section, you can sit down in front of any of the computers and use your intra credentials to sign in to your profile and mac user. The workload from the piscine is enough to keep you in the labs all day long. While people aren’t exactly chatty in the labs, people tend to help each other out. Just remember help first before you ask for help. It is worth monitoring the Slack group for the piscine as they share information about which area in the labs pisciners are supposed to be in and if you need to move around or there is a change. But normally you can stay in the labs 24/7. It is always open.

There is an important rule in the labs: no food or drinks. In reality, this means don’t put these on the table but you can put them on the floor or the chair next to you. Periodically some guards go around and check for any “illegal” items on tables and if they find something even if it is empty, you’ll get locked out of your account and the building for 4 hours. There are cameras in the labs and some people were speculating that guards might be watching there and come when they see water bottles on the tables… I don’t think this is true, or at least I hope they have something better to do. Regardless, this rule is absolutely ridiculous.

Security

The security at 42 is pretty good. No one who is not a 42 member can enter the buildings. Pisciners get a bracelet that signals that they belong and cadets also have their signs. You can write a message to security on Slack (though I never got a response) and you can also call them in case of emergency. The labs you can only enter through the front door (which is really the back door of the building). The dorms are tougher since none of the doors is open. You just have to hope that there will be someone in the lobby to open the front door for you. During the night a guard is behind the reception who can open the door for you.

Mail

There is a specific way to address physical mail: <name> - <intra username> - 42. If you don’t use this naming scheme then they threaten you that your mail will be discarded or sent back immediately, but in reality, no-one cares, it is on the table with the other mail.

Life and people in the 42 piscine

At the beginning of the piscine, most people can be described as diligent but as the days pass more and more people give up. People give up for many reasons, for some, it is just too hard and others find out that the school is not what they imagined and it may not be able to provide them what they were looking for. (The latter happened to me.)

Be prepared that you roommates are going to be arriving in the room even after midnight. But don’t forget, a good nights sleep is much better for the human brain than working a few extra hours.

Bicycles

There is a bicycle room in the labs where you can put your bike and also you can borrow community bikes from there. All the bikes are colour coded and there is a colour for shared bikes. When you are going to the store or to eat or something nearby then you can take them. However, I never actually used any of these bikes, so I don’t know if there are any extra rules and if they give locks with the bikes or not.

Curriculum

During weekdays you are going to have daily projects called: d00, d01, d02… You have 2 days for these projects and you have to get yourself evaluated the following day. On the weekends you are going to have extra hard challenges and team projects. For these, you have the whole weekend to solve and they are going to be evaluated differently.

There is a project to turn in every day by 23:42. Many people hold back submitting until the last hours and minutes. This is because in the last few hours everyone is hyped and collaboration is at its maximum. At this point, everyone is asking questions and sharing their code. So if you have something that you want to double-check or you have an unfinished task, this is a good time to deal with them.

IMPORTANT: You don’t just automatically get projects, you have to register to them 24 hours in advance! If you forget this you cannot participate in the project… or at least that’s what they say. In reality, in the first 2 weeks, they are willing to sign you up but you’ll get a punishment, like 42 push-ups or something.

ALSO IMPORTANT: for exams, you have to sign up to 2 things: the project and the event. Don’t forget this because it feels humiliating to sit down on the exam and stand up immediately.

Code principle

In 42 there is this principle to write your own code. Meaning that you have to understand every bit and line of your code. According to them, you should figure it out whatever it takes but don’t copy code from anywhere for any reason.

Occasionally this is even tested to catch cheaters I assume. I know my opinion doesn’t matter much here but I think this is BS. You should know your code but in my experience, this approach just killed collaboration and communication with the development community.

Rushes:

Rushes happen on the weekends they are teamwork projects. You get assigned randomly to 2-3 other people making the teams 3-4 people in size. You have the weekend to complete and submit the project. Everyone has access to the git repo of the project. There is also a team leader who doesn’t have and special privileges that I know of. With your team, you have to figure out how to split up the task. I found this especially challenging since the task is not any harder than the daily projects making them perfect for a single person to solve. There isn’t much to split. This project is going to be evaluated by the prefects and they are going to make sure that everyone understands the code by asking a trick question. They might go as far as to delete the whole code and ask someone to rewrite it on the spot. (This is unnecessarily cruel but it is what it is.)

Evaluation process:

Your projects are going to be evaluated by your peer students, therefore you’ll also need to evaluate others. Everything is kept in balance with the evaluation points; you get an evaluation point each time you evaluate someone and lose one when you get evaluated. So when it is time to evaluate projects, everyone puts their available times in a calendar. When you enter your project, you can see this calendar and subscribe to the empty slots to get evaluated. To keep everything in order you have to get evaluated twice a day and evaluate 2 people. The teamwork (internally referred to as rush) have a different evaluation: those are evaluated by the prefect and the whole team is present.

Each project has a threshold which you have to reach to pass it:

• daily projects: 50%
• exams: 25%
• the rest I’m not sure about

For the daily projects, the absolute minimum peer evaluations are 1 and it goes up to 2. If none of the peers evaluates you then your project is automatically 0%. If 1 of your peers evaluate you then the other peer evaluation is going to get 0. If you have at least 1 peer evaluation then Moulinette (the automatic grading system) will grade your work and your score is the average of the peer evaluations and Moulinette.

Checking yourself:

At the beginning of the piscine everybody struggles with how and what to turn in. What is acceptable and what is good enough. The answer is that no one knows for sure. We didn’t receive any documentation or guidance as to how moulinette works. But there are a few resources that might help you get closer to the truth. Two systems go through your code automatically when you submit: Norminette and Moulinette. Norminette checks for syntax and styling errors while Moulinette builds and runs your code with test parameters and checks the output. You can run Norminette on any 42 computer, so that’s easy. On the other hand, however, Moulinette is a secret. There are open-source repositories that try to mimic Moulinette:

• Stupidity: This is a repo containing all the presets and tests of Moulinette. It is not 100% accurate but it is really helpful. However, this repo is a bit cumbersome to use and this is where the next repo comes in…
• MockMoulinette: I created this repo and it is basically the same as stupidity but much easier to use. It is only 1 command.

Not working

If you are not working on or signing up to projects or if you are not present in the labs for a long period, then you trip “an alarm” and the prefects will hunt you down and tell you that if you are not working then you cannot stay. I only got this warning once, it was enough to scare me. However, I’m not aware of anyone getting to this level or even worse getting kicked out. For me, it took about 3-4 days of not showing up until they come looking for me.

Exams

Every Friday you’ll have to do an exam. Now the exam is different from all other project types. First of all, to participate in the exam, on top of registering for the exam project you also need to register for the event.

Before the first exam, you’ll get some scary instructions but there is no need to worry because the instructions are on the wallpaper of the computer. Just make sure that you know your Intra username and password when you show up.

On the exam, you can only use the terminal and a few other apps. I used the terminal, TextEdit and Stickies on the exams.

In the exam, there are levels and they start at 0. The levels are always the same so level 0 will always be the same task. Since every test starts with level 0, every test starts with the same task. I know what you are thinking… WHAT?!… but yes you read correctly, every exam start from level 0, therefore, the same task.

If you get a task right then you get X points but if you fail you get fewer points for the next task. After a few failed attempts, you fail the whole exam.

If they suspect you cheating

If you do something out of the ordinary or for some reason you trip some sensors you might have to prove the authenticity of your code and that it is your code and isn’t copy this.

You will get a message from the prefects that you have to chance to prove your ethics (or something like that I don’t remember the exact text). If you don’t show up, it is an automatic failure case. But if you do show up then they will tell you that you have to redo the task in question. The catch is that you have to do it in exam mode. Meaning that you can only use the resources available in exams and there is no internet. And if you need the exercise description then you need to ask for it (Looser… jk).

If you fail to complete the task with 100% then your score on the project will be -42%. If you complete the task to 100% then nothing happens. If you complete the task partially then you might get partial credit e.g. -10%. However the negative percentages will not affect your progression, it will just simply be an ugly burn-mark.

I do not see eye to eye with this philosophy of punishing the suspected bad and not rewarding the suspected good but that’s just my insignificant opinion.

The prefects are the cadets who are managing the piscine. They are there to help and manage the people. They can answer generic questions about 42 and they are cool people so you can make great conversations with them. However, they cannot help you or answer any specific questions which is frustrating since they know about things that would make everyone’s life so much easier. But it’s all right, you have this blog post now. Also while there are cool prefects there are much stricter ones too, and the can bust your balls. You’ll just have to figure out who is cool and who isn’t.

Resources

There are a lot of resources to guide through your problems. There are GitHub repos that contain all the project exercises, solutions and utilities that help you correct yourself.

If you use these repos then make sure to pay attention to any changes as sometimes the title of the task or the order of the tasks changes to detect cheaters. There are also videos and documents from 42 and the whole Intranet of 42.

Must know before you come to the Piscine

There are some things that you can prepare for so that your job at the piscine will be much easier. Throughout the piscine, you are basically forced to use terminal and vim as your primary tools. So if you learn the basics of terminal and vim you are golden.

Open source repos

For Moulinette and Norminette checking I recommend my own repo: MockMoulinette. If you cannot find the task papers because the project is already closed or something, some repos include the task papers. When you are stuck on a problem and absolutely cannot figure out what next then you can find all the solutions to the problems on GitHub. Just paste the title of the exercise in Google. DISCLAIMER: Copy-pasting is considered cheating and some tasks are changed so that they can detect copyPasting… so use at your own risk.

There are some things that you can only access from the computers in the labs. This is because of the Kerberos technology. However, there is a repo on GitHub that claims to circumnavigate this. But I didn’t test this myself.

The Intranet:

Throughout 42 everything is connected to your Intra account. Think of it as your AppleID or Google account but for 42 services. You use these credentials even when logging into the computers. There are a few important Intra services:

• Profile: includes all your projects and progress
• Cantin: Everything food and cantina related
• Campus: If you want to find someone in the labs you can look them up on a map of the campus. This, however, isn’t very reliable as it doesn’t always show everyone.
• Heimdall: If you are driving around the campus, you have to register your car. This is so security doesn’t toe the car and no one bothers you about it.

Computers and Kerberos:

You can only get work done in the labs on computers provided by 42. Only these have access to work and project-related resources. This is made possible by a technology called Kerberos. What you need to know is that when the computers start blabbering about access rights, it is usually something to do with Kerberos. Either your Kerberos ticket expired or you are at someone else’s computer that doesn’t have your k. ticket. This is easy to solve: you can generate Kerberos tickets on demand. However, you’ll have to figure this out as it is outside the scope of this article.

Some of your data is synced across sessions and logins but some are not. Your files and work are synced always, that is reliable. However your preferences, connected devices are all over the place. Sometimes the mouse’s tracking speed is synced but not other times. You cannot sign in to iCloud on sad machines and if you try, you are going to get pop up messages forever about iCloud being misconfigured.

The computers are logging the time you spend on them. I tried hard to trick the computer to think I’m there but with no luck. I tried the caffeinate command and even putting weight on a key so that it types infinitely in text edit but no luck. The computer restarts if it cannot lock itself.

Extra knowledge

Privacy

After the piscine has ended I GDPR requested my data to see for myself what data they collect and what can contribute to the final decision. This process was very simple, there is a request button in Intra and they provided my data in a few days in JSON format. This is especially nice since I was in the US and they are in the US so they had no obligation to provide me with the data that I requested. I really like how 42 is being a good citizen here.

I read through the data and I’m happy to report that they aren’t tracking anything suspicious or scary or super intrusive. They don’t have key loggers or secret data points. The data they collect is straight forward:

• When you login/out and how long you are active
• The scores of those projects and exams
• Evaluations you give and receive
• When you were free to evaluate others
• A bunch of other things that were empty as they don’t apply to pisciners I think that this amount of data is reasonable for them to collect. It even feels like they have more but let’s hope that they stay reasonable in the future too.

Rumors and gossips

Rumours are spreading in and outside of 42 as to how they select cadets. 42 is a breeding ground for rumours and misconceptions because of the lack of transparency and there isn’t anyone you can turn to if you have questions. There are rumours that they track your interactions with people and how those people perform around you. There are cameras in the labs, they might be watching through that… although I read the privacy policy and they say that the cameras are only used to protect gear and personnel and not to evaluate them.

For me, personally, 42 felt like they were always watching and monitoring me through cameras and maybe even key loggers. This is probably just paranoia but that doesn’t change the fact, that this is what it felt like. So you should probably use a VPN when connected to 42 wifi.

Other piscines

The default piscine that you can access from outside 42 is the “C” piscine all about the C language. However, cadets inside 42 can attend other piscines like PHP or my favourite, the Swift piscine. Don’t ask me for the logic behind this… hiring process for employees… but most of the things in 42 have a purpose.

Dictionary

Here is a list of words that you would only come across in 42 and the meaning isn’t immediately obvious:

Bocal - Staff at 42, not the cleaners or the guards but the people responsible for the academic things. Cadets - The students of 42. Piscine - The selection process of 42 to become a cadet. Prefects - Cadets that are helping to organize the piscine. Pisciners - People attending the piscine.

Heimdall - car rental Campus - interactive campus map

Conclusion

Good luck to your piscine, may the force be with you.