This essay was written after my first project submission. It is a reflection of my experience at 42 Singapore and my thoughts on the school’s pedagogy.
42 Singapore has continued to be an inspiring learning experience. My first C project for the Core Curriculum – Libft – was finally completed on 09 October 2023. I submitted a total of 34 functions and passed the project. I also exercised the option to complete 9 extra bonus functions. Below are some information and stats about my Libft project:
🏃🏻♂️Start day: 06 September 2023
🔚 Submission day: 09 Octoberber 2023
⏳ 4.92 hours average time spent per day
🕓 103.32 hours total time spent on campus.
👦🏻 Many more hours spent working from home, after the children are asleep, till 1am to 2am.
👨🏻💻 C. 43 functions. 1 libft.h file. 1 Makefile.
42 Singapore’s pedagogy is very inspiring. The school is 100% free and practices a non-discriminatory enrolment policy. Anyone can apply to be a student and credentialism does not have a place in this school. My classmates are from the most diverse backgrounds – there are founders, venture capitalists, retirees, undergraduates, postgraduates, freshly ORDed Nsman, delivery riders etc. etc. The sheer diversity fosters a vibrant learning community as individuals with different backgrounds bring along unique perspectives. The school is a breath of fresh air into our local education system. Its admission is not based on any test results and there were experienced software engineers who did not get into the school during my time at the piscine.
The school has no teachers, no lectures and no tutorials whatsoever! The school’s pedagogy is designed to foster a collaborative culture that encourages sharing of knowledge. At 42, everyone is willing to teach and learn from one another. Workstations are set up in wide open spaces to encourage interactions and sharing. The school’s system is set up to incentivise peer-to-peer learning.
In 42, progressions come only with project submissions, and every project submission must be evaluated by fellow peers. These projects are analogous to modules offered in traditional university settings. Each project contains a list of exercises arranged by level of difficulty, and all exercises must be completed for one to pass a submission. Within each project, the exercises are scaffolded so students learn foundationally before progressing to harder exercises, and between projects, the difficulty level is scaled upwards as well.
The first project I submitted was designed to help students understand foundationally how various functions in the C library work. We learn by building our library. We learn by asking better questions. We learn by – as trite as it may sound but as true as it can be at 42 – learning how to learn, unlearn and relearn. I have to also learned to research better when dealing with the ambiguous nature of the school’s project requirements. Most of the time, I have to read deeper to find out what these requirements mean so I know how I can go about fulfiling them.
On the technical front, I have to learn to write test cases as well to make sure my code works in different contexts. Below are the hard skills that I have picked up along the way:
# C Language
The primary language learned is C – dealing with variables, pointers, memory allocation, macros, writing functions, variadic functions, building libraries, Makefiles and programs
# Shell
Basic to intermediate shell commands to navigate through the terminal.
# Git
School projects are all submitted via a remote git repository. I have learned to be at ease with such a system.