在我为了写操作系统实验而在网络上寻找参考的简单 shell 实现的时候,一个叫做 minishell 的仓库让我印象深刻:框架给的很好,代码也很适合初学者。我诧异为何这么好的项目却只有几个 star,过了几天,Github Mobile 又给我推荐了不止一个十分相似的 minshell

实际上,不仅框架相同,readme也都标明了一段奇怪的字段: 42

打开其中一个人的 github 主页,这个人自称来自 42 Barcelona,仔细看一下仓库的话,还能看见其它的 42 Core 项目,比如 LibFt 之类的

这到底是个什么?为什么他们一直念叨着这个词汇呢?

我没有去过巴塞罗那,自然不能在当地的街头问 42 有什么含义,我只能在搜索引擎上查找,找到了官网,并被满屏幕西班牙文阻塞住了,等到自动翻译被生产出来才模模糊糊的意识到,这是一个学校,

42 School 的学业安排

进一步了解后发现,42 Barcelona 实际上是 42 The Network 的众多校区中的一部分

42 Barcelona 是最富创新性的免费编程学校,帮助你打开就业市场的大门。它采用革命性的教学方法,每周 7 乘24 小时开放,让你可以按照自己的节奏学习。

School 42(法语:Écoles 42)是一家私人、非营利和免费的计算机编程学校,由法国亿万富翁泽维尔·尼尔(Xavier Niel)与几个合作伙伴共同资助创建。该学校于 2013 年在法国巴黎首次开放。现已在多国建立校区。学校没有教授,全天候开放。学生通过点对点教学和基于项目的学习进行培训。

这是官网的一段介绍,42 这个名字出自英国作家道格拉斯·亚当斯(Douglas Adams)所著《银河系漫游指南》一书:在书里,42是生命、宇宙和一切的终极问题的答案。

背后的非盈利机构 42 宣称 42 Program 有三大特色: 没有课程、老师乃至班级,完全的 project based 的学习计划,以及 peer to peer learning

42 school 的主要步骤分为三部分

第一部分是选拔:这个部分需要参加一场线上的考试,通过一系列的逻辑和记忆测试来评估你是否适合学习计算机科学。通过之后才能进入第二部分 Piscine

第二部分被称为 Piscine ,法语意为“游泳池”:一个为期四周的密集选拔过程,申请者必须使用 C 语言来实现若干项目、通过考试,完成项目后,首先需要通过同学的检查,然后再通过评测程序的检查,最后才能通过。学生每天工作10到12小时,包括周末,以完成 piscine,这种事非常常见

在这一阶段违反纪律的话,需要去参加社区服务。教育团队的眼睛从“罐子”(教育团队的办公室)中使用基于监视的大数据监视他们的所有行为:学生坐在哪里?他们通常与谁配对?…

一篇博文 十分详细的介绍了这个中过程,推荐阅读。

通过了 Piscine 之后,就正是成为 42 的学生了。

42 Core project

这个仓库 给出了包括 PiscineProject 在内的资料,可惜是 7 年前的,蛮旧的了,而且是法语的。

另一个仓库 要新一点,然而是俄文的,不过也有一些资料。

让我们看看 42 的一些项目

Libft

  • 描述:Libft 是 42 学校的一个基础项目,要求学生从头开始实现标准 C 库函数。这个项目帮助学生熟悉 C 语言的基本操作和内存管理。
  • 目标:通过实现常用的库函数,如 strlenstrcpymalloc 等,学生可以深入理解 C 语言的底层机制。
  • 挑战:学生需要确保他们的实现与标准库函数的行为完全一致,并且代码必须高效且无内存泄漏。

GNL(Get Next Line)

  • 描述:GNL 项目要求学生编写一个函数,从文件描述符中逐行读取输入。
  • 目标:实现一个可以处理任意大小输入的高效读取函数。
  • 挑战:学生需要处理缓冲区管理和内存分配,以确保函数在各种情况下都能正确工作。

Ft_printf

  • 描述:这个项目要求学生实现一个类似于标准库 printf 函数的功能。
  • 目标:通过实现格式化输出函数,学生可以学习如何处理可变参数和格式化字符串。
  • 挑战:确保实现的函数能够正确处理各种格式说明符和边界情况。

Minishell

  • 描述:Minishell 是一个中级项目,要求学生创建一个简单的命令行解释器,类似于 Bash。
  • 目标:学生需要实现基本的 shell 功能,如命令执行、管道、重定向和内置命令(如 cdechopwd 等)。
  • 挑战:这个项目帮助学生理解 Unix 系统的核心概念,如进程创建、信号处理和文件描述符管理

其它

接下来是快乐的阅读 Wikipedia(shui zi shu) 的时光

学校成立的第一年,线上申请人数达到7万人,其中2万人内完成逻辑力线上测验,这当中只有大约4千人的测验成绩符合资格,可以继续参加 “游泳池” Piscine,最后有890名学生取得入学资格。换算下来,录取率不到1%;若是以通过线上测验的2万人来计算,录取率为4.5%,低于美国哈佛大学6%的录取率。第一年入学的学生当中,有40%没有高中文凭。至今平均每年有将近8万人提出申请,录取入学人数约900人。

School 42 没有教授、固定课表和教材,除法国校区外也不颁发任何文凭或学位。学生需要完成一个又一个的项目,接受同侪与人工智能的双重评分才能通过。学生必须从c语言和C++开始学习,一共有21个等级,全部学程达2-4年。可自主安排休假3次共180天。

投资由 Xavier Niel 进行:7000 万欧元,其中 2000 万用于创建巴黎机构,5000 万用于覆盖其 10 年的运营成本。创建 42 的目标是每年创立 150 家公司,其中包括五家互联网巨头,希望这些年轻的新生代为该机构支付学徒税。2015 年初,Nicolas Sadirac 说:“如果我们每年不能创造五个大的成功,那是因为我们失败了。那么就没有理由再资助我们了。”

参考资料