Codam & 42 Network: My Journey in Peer-to-Peer Learning

Codam & 42 Network: My Journey in Peer-to-Peer Learning

Last year, I finished my bachelor’s degree at Codam in just two years. It was an experience filled with great people and a unique educational system that I came to love. Since graduating, I’ve felt the need to share my experience, highlighting the good, the bad and the ugly of the program. This post shows my personal perspective on Codam.

42 Network

For anyone that is reading this article without a clue what Codam or the 42 Network is. I will give a short explaination.

The 42 Network is the largest free IT school network in the world, with a global presence of 50+ campuses across 30+ countries. Originally founded in Paris, it has experienced rapid growth in just a few years. Anyone without a highschool degree can join by doing the so called “Piscine”, which is a French word meaning “Swimming pool”. The format of the piscine is the same for each campus, but differes slightly on how to get accepted to the campus.

During the Piscine, Candidates, called ‘pisciners’, will dive into the world of coding a month long. By working through challenging projects and solving daily assignments alongside and together with your peers, you can find out if Codam’s peer-to-peer learning methodology suits you.

Codam

Codam is one of the campuses of the 42 Network. I studied there for two years.

Here’s how Codam describes itself:

We prepare the next generation for the jobs of today and tomorrow by offering high quality, peer-to-peer, and scalable software engineering education. Everyone 18 years and up is welcome to explore if Codam works for you.

It’s important to note that Codam is not a bootcamp, despite some similarities. Here are the key differences:

  1. Cost: Codam is free, while bootcamps typically charge fees.
  2. Duration: Bootcamps last 1-6 months, whereas Codam takes an average of 2-3 years.
  3. Focus: Codam prepares you for a wide range of tech jobs, while bootcamps often focus on specific roles or technologies.

Currently, Codam is not recognized as an official university in the Netherlands. However, in France, you can obtain an official Bachelor’s or Master’s degree through the 42 Network. However, their impact cannot be ignored. Down here you can see the impact Codam has so far.

codam_impactreport

For more information, check the website here

The Piscine

I was working full-time as a filmmaker but had always been intrigued by the idea of pursuing an IT study. Initially, I looked into major universities in The Netherlands and even registered at a few. However, I took an unexpected turn when I stumbled upon an article about Codam in the newspaper. Instantly intrigued, I signed up immediately.

I was one of the lucky few accepted as a “pisciner” at Codam. The timing was too perfect - a Piscine was scheduled to start within two weeks of my application. There were no available spots for that year, which would have meant waiting another year for a chance to be accepted. I checked daily for any openings in the upcoming Piscine. Just two days before it was set to begin, I received the news of my acceptance.

Then the real challenge began. I took a break from my full-time job and dove into the Piscine (litteraly). My first impression, I must admit, was not great. This was partly due to the fact that COVID-19 had just reached The Netherlands, causing anxiety and a desire for social distancing among participants. Nevertheless, I found myself fortunate to have some prior experience with bash, which made the first few assignments much easier.

The Piscine consisted of four main types of work:

  1. Individual Assignments: These were straightforward tasks that allowed us to learn at our own pace.
  2. “Rush” Assignments: Weekend team projects that were challenging but invaluable for developing teamwork skills and learning to handle failure.
  3. BSQ: A week-long team project.
  4. Exams: Regular assessments of our progress.

The individual assignments were great learning tools. They required us to figure out solutions independently, though we could seek help from peers. After completion, we would evaluate each other’s work before moving on to the next project.

The “Rush” assignments were more difficult but became my favorite part of the experience. Codam intentionally makes these challenging to test our ability to handle failure and work effectively in a team. Interestingly, completing these assignments doesn’t guarantee acceptance to Codam - it’s more about how you handle the process. I didn’t finish any Rush assignments but still got accepted. Many people drop out after the first Rush, either believing they’ve already failed or realizing coding isn’t for them - which is precisely the point of the Piscine.

I chose to skip the BSQ to focus on other assignments, so I can’t comment much on that experience.

The exams were a highlight for me. Held at the end of each week, they consisted of numerous simple assignments that showcased our progress. Even if you didn’t fully understand everything, there were always ways to work around problems, either by “hardcoding” solutions or asking staff for guidance.

The final exam, an eight-hour marathon, was followed by a house party with all the pisciners - a great celebration, but perhaps not the best way to conclude the program. The abrupt ending felt a bit anticlimactic. After finishing the exam, we simply had to wait for the results to see if we’d been accepted as Codam students. I think it would be great if Codam orginses to have a drink around the corner to say goodbye to all your fellow “pisciners”.

What I Learned at the Piscine

- Basics of C programming & Bash 
- Fundamentals of Git version control
- Enhanced social and teamwork skills
- Confirmation of my passion for coding

The Curriculum

Now comes the fun part! I got accepted at Codam and after a few weeks I could start coding. The first project was about making your own standard library in C programming. I think this was a great project to start with. You learn the most useful functions by making them yourself. You would also create some non-standard functions which were extremely helpful, like the split function, which would split a string by the delimiter you would give the function. The only problem I had with this project was mainly the amount of testers available online, and how it showed that you could easily get tests from the internet without knowing how they actually work. We’ll get back to this point later.

The next few projects were mostly an introduction to other functions like fgets, printf & virtual machines. These projects helped build a solid foundation for more complex projects ahead.

After that comes the first team-based project. The assignment was to make our own shell based on bash. We didn’t have to implement every feature of a shell, but just some basic ones like history, piping, heredoc & executing commands, of course. I had a great teammate, who was extremely talented, and I was really happy to work with him. While writing our own shell, I noticed a major flaw in our project: we didn’t have a tester. I wrote my first tester, and we got through the project with ease. I have to admit, it wasn’t my best tester, but it did the job. After making my own shell, I decided to always write tests for each project, which I did. I never failed any projects since.

But I would like to note that it took me around six projects until I made a tester. It’s not necessarily bad, but I think this is one of the issues I had with Codam. You don’t just learn how to code or how to improve your social skills. You learn to learn, and if you don’t acquire this skill, it will be very hard for you in the future. I think Codam needs to emphasize this aspect much better. I learned why testing is important, how I should test, and when I should test by learning it by myself. I noticed that most of my fellow students never tested their code at all.

Another issue I have with Codam is how the projects are presented. In theory, you could just learn the things that are presented in the project and nothing else. You don’t have to learn any terms, or the history of programming, or how to do your research for each project. You have to learn it all by yourself, which can be great for some people for sure, but it can also be a big disadvantage. And not all Codammers are aware of this.

After creating the shell, I did some game development by making my own version of Doom, and I also created a full-stack website. My favorite project was making my own webserver. I had to create something similar to NGINX and make it as functional as possible, including showing status codes, giving responses, and creating my own chunking function. After that, I did an internship, which went great, and I got my bachelor’s degree.

I would love if the 42 Network would give students a few more choices. I think you’re forced too much to do specific projects. I still miss things like cybersecurity or a proper dedicated front-end project. These additional options could provide more diverse learning paths for students with different interests.

Despite these challenges, my overall experience with Codam’s curriculum was positive. It provided me with a strong foundation in software development and the ability to tackle complex problems independently. The emphasis on self-directed learning, while challenging, has proven invaluable in my professional growth.

What I Learned in the Curriculum

- Advanced C programming, C++ & Bash 
- Learning how to learn
- The basics of testing
- Full-stack web development
- Game development basics
- Web server implementation
- Self-directed research and problem-solving skills

The Future

I sincerely hope that Codam will gain recognition from the Dutch government in the near future. The program offers a unique opportunity for many talented individuals to show their skills through hands-on experience and become valuable contributors to society. Codam has potential, but as with any innovative educational model, it will take time to gain widespread acceptance and recognition.

Despite the challenges, I wholeheartedly recommend anyone with an interest in technology and coding to join Codam and at least try the Piscine. This intense introductory month can be a life-changing experience, offering a glimpse into the world of coding and the unique learning environment that Codam provides.

As for myself, I’m excited to be pursuing a master’s degree at the 42 Network in France. This will allow me to further develop my skills and knowledge in the coding field. I will definitely be sharing my experiences once I’ve completed the program, so keep an eye out for a future write-up about my master’s journey.