
在上一篇文章中,我讲了一个关于42学校的故事,该学校以其革命性的教育体系而闻名:没有老师,学生自己检查彼此的工作,不需要支付学习费用。 在这篇文章中,我将详细讨论培训系统和学生执行的任务。
没有老师,没有互联网和同志。 在学校的教育是基于联合项目工作的原则-对等学习。 学生不学习任何教科书;他们不给他们讲课。 学校组织者认为,所有内容都可以在Internet上找到,可以询问朋友或与您一起从事项目工作的更有经验的学生。
其他学生会检查完成的任务3-4次,因此每个人都可以既是学生又是导师。 也没有评级-您只需要正确,完整地完成任务即可。 即使完成90%,也算作失败。
没有评分,有积分。 要检查项目,必须有一定数量的点-校正点。 通过检查其他学生的作业来获得积分。 这是一个额外的增长因素-您必须了解各种任务,有时甚至超出您的知识水平。
“有些项目是真正的宇宙,大脑会从中爆炸。 然后,仅赚取一个更正点,您必须整日流汗,了解代码。 我的朋友,学生谢尔盖(Sergei)说,一旦我很幸运,我一天就能获得多达4分,这是一次难得的成功 。
坐在角落里是行不通的。 项目既可以单独进行,也可以成对进行,也可以成组进行。 他们始终受到亲自保护,重要的是小组中的所有成员都应积极参与,并且每个人都了解守则并具有高度的积极性。 沉默并坐在这里是行不通的。 通过这种方式,学校可以发挥团队合作和成功的沟通技巧。 此外,所有学生都可以彼此了解并相互交流,这对于网络和未来的职业非常有用。
游戏化 就像在电脑游戏中一样,学生们借助“神圣图”(Holy Graph)来提升水平并监控他们的进度,这是一张“神圣”卡,清楚地显示了所走和即将走过的整个道路。 正如在RPG中一样,项目积累了“经验”,并且在积累了一定数量后,便过渡到了新的水平。 与真实游戏的相似之处还在于,每个新关卡都比上一个更复杂,任务也越来越多。

玻璃和Adm。 学校有两个主要部门-Bokal(技术人员)和Adm(行政部门)。 Glass-处理技术问题和教学方法,而Adm-处理行政和组织问题。 Glass / Adm的人员储备金得到补充,但要以学校实习生的费用为代价。
这里的教学方法和内容
全部以“ C”开头。 考虑到Windows不是最佳选择,学校仅使用Unix。 该代码是从最基本的方面讲授的,因此必须理解编程的逻辑。 前几个级别,所有项目仅在C和C ++中执行,不使用IDE。 学生使用gcc编译器和vim文本编辑器。
“在其他课程中,将为您提供功能,要求他们完成一个项目,然后才说明它们的编程方式。 在这里,除非您自己编写函数,否则不能使用它。 刚开始时,虽然仍处于“池”中,但我不明白为什么需要此malloc,为什么要自己分配内存,为什么不学习Python和Javascript。 然后突然出现了,您开始了解计算机的想法。”
诺米诺 成功保护后,所有项目都将上载到本地GitHub对等项。 但是在此之前,他们必须通过Norminette程序通过代码符合性检查。
“如果代码能正常工作,但存在内存泄漏,则认为该项目失败。 还检查语法。 我们列出了禁止使用的功能,属性,标志,它们的使用等同于作弊。 Sergey说, 您必须用自己的双手并非常小心地做所有事情 。

任务实例
学生执行的所有任务都可以通过三种方式进行检查:以编程方式,其他学生和Glass代表的检查表。 以下是一些独立执行的项目,并根据检查清单进行检查:
Init(系统和网络管理) -您需要在虚拟机上安装Debian操作系统并根据任务中指定的要求进行配置。
Libft-在C中实现标准库函数,例如: strcmp, atoi, strlen, memcpy, strstr, toupper, tolower
等。没有第三方库,所有这些strcmp, atoi, strlen, memcpy, strstr, toupper, tolower
您自己掌握。 您自己编写标头,自己实现,然后自己创建一个Makefile
,然后自己编译。
Printf-必须使用C中的所有参数完全实现标准的printf
函数。这对于初学者来说非常困难。
Fillit-有必要从进入入口的丁胺清单中收集最小面积的正方形。 在每个新步骤中,添加一个新的丁胺。 由于必须在C中以最短的时间完成计算,因此使任务变得复杂。
Libls-使用所有标准标志实现ls
版本。 您可以并且应该使用过去任务中取得的成就。
流纹
除了单独执行的任务外,还有一组由学生集体执行的任务-匆忙。 与独立项目不同,仓促不是由学生检查清单,而是由Bokal的学校工作人员检查。
Pipex-输入程序接受文件名和任意shell命令,学生必须证明在系统级别使用管道的能力,并实现与终端中系统常规行为相同的功能。
Minitalk-用C实现一个客户端-服务器应用程序。服务器必须能够支持多个客户端并使用系统信号SIGUSR1和SIGUSR2打印客户端发送的消息。
冻结 -用Golang写一个IRC服务器,使用并发和goroutines可以同时与多个客户端一起工作。 客户端应该能够使用用户名和密码登录。 IRC服务器必须支持多个通道。
结论
任何人都可以进入School 42,而您无需具备特殊知识即可执行此操作。 尽管该程序是为初学者设计的,但简单的任务却很快被非平凡的任务所取代,通常是用模糊的表述。 要求学生给予最大的奉献,能够以英语查找官方文档中缺少的信息,并与其他学生一起完成作业。 培训计划没有严格的顺序,因此每个人都为自己选择一条发展道路。 没有端到端的评分,您可以专注于自己的进步和发展,而不是将自己与他人进行比较。