42之六月游泳池体验记

宣棋

2019/07/07

Categories: 教育

在我以往的学习经历中,有非常深刻的一点感受就是,好的项目就让人感受到不一样的“时间密度”。比如在圣约翰的本科学习期间,因为在用星期为分割点读跨度为年、十年、百年的经典作品,往往周末和同学聊天的时候,自身思想发生的变化之剧烈让人有恍惚在时间之外的感觉,觉得似乎过了一个月、一年;在我之前写的拉丁语学习资源推荐中,有一个暑校AVN也是如此,每天疯狂的学习拉丁语,用一个月的时间密集学完正常一年的课程。两个月后下山离开的时候,会反问自己,这真的是两个月么?我称这种情况为时间密度高的体验,即现实生活时间的流速明显慢于大脑的感受。与之相反,无聊的项目,让我每天在结束前都会看表计算还有多久能解放,每日缺乏吸引力、缺乏动力的行程表带不来任何新鲜感,感觉自己整个人是木木的,直到离开这个活动点才能再活过来,即现实生活的时间在流动,而我的大脑并不运转。对我来说现在我鉴别一个项目,只要分离出一个”我“,旁观一下自己的感受和鉴定一下大脑活跃度就八九不离十知道它是否与我契合了。

42嘛,我前言都写这么长,那肯定是一个很特别的学校了!

在具体解释“42”的游泳池项目之前,我先科普一段这个学校在做的事情以及目前的政策,毕竟“游泳池”活动是这个学校提供给侯选人用以学校和学生做双向选择的入学考试,并不是一个单纯的教学项目。

学校名称:42 (官网:42.fr)

好任性的名字,出自《银河系漫游指南》“The answer to life, the universe and everything is 42.” 当然也有其它的解释,比如说ascii表的42对应“*",意味着all。

地点:法国巴黎

注:目前在全世界推广中,美国硅谷也开了(也没被承认,无法提供I-20),与国内的合作洽谈中,尚未签订合约,其它国家的具体信息可以在官网查询,号称2020年建好20个校区。

学习内容:与数字行业相关的一切,比如各种编程语言,网页设计开放,游戏制作等等,进入学校后自由选择进修方向。

目前的状况:一方面尚未得到法国官方教育机构的认可,学生并不会获得学位;另一方面,得到广大企业的欢迎,就业率保证100%;在目前的教育方法论的学术领域,谷歌学术搜索引擎搜不到任何学术论文(于是被我当成了研究生论文的意向课题提交了)

申请入学条件:大于18岁,通过网上10分钟+2小时的逻辑测试,之后通过持续三个星期零五天的“游泳池”测试即可。不要求提供任何成绩单、语言测试、推荐信、文书、表格、简历、银行证明等等。注册网上测试只要求基本信息和邮箱,通过后报名“游泳池”测试,需要个人在指定时间去学校参加一个两小时的介绍性活动,并携带护照或其它个人身份证明文件和拍一张大头照即可。

(注:以前会要求30岁以下然后又改成28岁,今年把这条限制取消了,于是我这个月遇到了头发花白的爷爷奶奶)

入学后上课时间:一年365天24小时开放,学生自行决定学习时间;对于正在领政府失业金的学生,要求平时每周出席时间在35小时以上,“游泳池”测试期间减半,一个月70小时即可(因为“游泳池”测试占用大量机位,学校的电脑不够。)

语言:你只要能想办法和其它同学沟通、交项目就行。整体说法语,一点儿法语都不会的也能靠英语存活,就是考试和练习题的英语翻译经常有错,官方很多文件没有英语版。

学制:自行决定,反正没学位,官方说法是3-5年。入学一年后强制带薪实习6个月,很多人实习完就直接入职工作了,也有人从学校13年建校入学,到现在还没毕业,一直实习上学实习上学的状态。

学费:无 (反正最近几年没有,大佬赞助了最开始的10年,但也号称一直不会有)

食宿:不包 (对于有困难的学生,有合作的银行提供助学贷款,可以工作时偿还。另外在美国有合法居留权的可以关注下,有600个免费住宿的席位。)

看到这里,感兴趣的已经可以去官网注册网上测试了,不过目前是关闭状态,因为每年暑假时间开游泳池测试。(“游泳池”测试是一个直译,法语是la piscine,大家理解成大型入学考试就好。)如果报名人太多,偶尔加开一个冬天二月的,今天6、7、8、9四个游泳池测试的选项在三月底的时候就已经报满了,因为把网上测试暂时关闭,之后会开放2020年的测试注册。网上测试的题目涉及记忆力(10分钟小游戏)和逻辑(两个小时)两个环节,不需要任何特定的基础和准备。对我来说最有意思的是,逻辑题只有题的内容不带题的题目,没有找到任何解释和提示,需要自己搞明白到底要做什么。网上测试做完一天左右,就会收到一封邮件提醒,可以到校报名“游泳池”测试(统一安排在每个月月底的周六),或者收到份什么遗憾之类的?之后到校确定合法身份(不查签证,可以旅游签来报名和考试),然后考试前两个星期自己来或者托朋友来取一张门卡就可以参加测试了。

往年是的考试是每年三场,每场上限1000人,上下三层楼的机位全满,由于已入读学生的学习要求(不想放暑假),于是今年开始改成了每年四到五场(夏天确定四场,冬天不确定一场),每场上限600人,开放两层楼的机位。这个学校是没有任何传统课堂的,主要就是三个大机房,交叉着坐。忘了拍图,美国那边官网上找了一张,大家感受一下:

(不知道为什么,上传了图片显示不出来,直接看官网的图片吧: https://www.42.us.org/campus-life/facilities-resources/

我们说这个学校没有传统课堂的,看图片也知道,根本没有给老师预留讲台。42的核心教学法是“伙伴式学习”,它的设计指导理念是方便同伴互助,左右前后发起讨论,有配套的网页设计可以定位每一个座位的实时人员信息,方便寻找并没有坐在一起的伙伴。他们的口号也是:“man or google”。前者有两个含义,要么自己去读shell里面内置的“man” 手册,要么问人;后者就是自己网上搜索的意思。

虽然没有正式的课堂,但是在内置平台也有提前录制短视频供大家学习(我的邻居们测试最开始还会看看,后期就根本不看了,都是问人或者google其它教学材料自学),这些录制好的短视频只是一个可选项,不强制要求学习观看,只有必须提交的练习题,看结果不问过程。

大概的情况科普的差不多了,我用在“游泳池”测试中体验到的来解读一下42的学习模式。

“游泳池”测试是一个寻找匹配这种学习模式或者不匹配但有快速适应能力的学生。游泳池测试中的学习模式和正式入学后的学习模式是一样的,官方的说法也是为了避免正式入学之后的严重不契合,所以要求每个候选人都先参与游泳池测试。这是一个双向选择的测试,候选人如果不适应,是可以随时退出的,不需要和学校方面有任何沟通,不出现几天,学校没有登入信息,就会默认算退出了,不过来学校的权限是保留到游泳池测试结束。根据官方消息,以前的退出率是1/3左右,今年六月我参加的这场退出率比往常低很多,实际注册580人(貌似其中40个人从来没出现过)最后坚持到终极考试的有440人左右。另外,“游泳池”测试不问之前学习经验,也就是说这里会有完全0基础的初学者,也有已经有丰富写码经验的人,在考试内容上并不会加以区分。

总的来说,42的大型入学考试现场也是一个明显时间流速和现实时间分离的项目,内容密集且强度大,持续三个星期零五天,不间断。具体包含2个shell个人项目、14个C语言个人项目、三个随机分配的三人组合团队项目、一个自由搭配的两人团队项目以及三场四个小时的小考和最后一场八个小时无中断的终极考。其中个人项目,视项目而定,每个项目包含4到10+道题,进度可自由掌控;团队项目都是一道特别难的题,给两天的时间解决。考试统一安排在每周五,前三场是周五的六到十点,最后一场周五全天,十点开始六点结束。

第一个周一的早上十点,刷卡到学校,游泳池测试就开始了。没有人教要干嘛,邮箱有收到设置密码的邮件,自己找到地方坐下来,登入电脑。其实桌面放了一个几分钟的小视频简单介绍测试的平台,包括上传作业、视频、学校规则等等,但是后知后觉的我直到第二个星期才发现,没看介绍,问人也能搞明白。

总的来说,周一到周五的下午五点钟,基本都是个人项目时间,即每个人掌控自己的进度做练习题。前面已经解释了这地方只有短视频和项目里的练习题,因此没有很具体的学习内容。大家就要学会搜索信息的技巧,通过问题的关键词反向搜索相关的知识点,学习、掌握、应用来解题,甚至还可以直接在网上搜答案,然后反向读码,通过研读答案中的功能、循环、设定等等来熟悉新的应用。怎么学习是个人的事情。有个人喜欢在youtube上找知识网红的视频,有个人喜欢网络课程公开的网页总结,有个人喜欢google各类网站,有的人喜欢抄答案破解,反正最后能把题解出来就好。

如果你搜索其它关于42的文章,可能会提到个人项目有时间限制,当天早上8:42开放,每隔一天的23:42要上交项目,所有人的学习进度是按照统一的设定不停往前赶,无视上一个项目的完成程度。但是今年这一点发生了改变,可能为了照顾进度比较慢的学生的情绪,让每个来了的人都有收获,所有的个人项目都已经不再设置截止时间,大家自由掌控学习进度。

项目中的练习题设置是由易到难,完成只需要得到五十分即可通过该项目,同时解锁下一个相关的个人项目。所有的项目不要求满分,一般最后一道题(15-30分)也是为了区分已经来考过、各种原因42退学重来的学生、在其他地方学过代码的人,平衡一下大家的进度。因为每个项目都是不同的知识点,初学者往往会跳过最后一两道题直接解锁下一个项目,而有学习过相关内容的则会花时间解最后一道题已取得高分数。

在写完练习题后,有两道程序:伙伴评价(peer-evaluation) 以及系统评分。伙伴评价是学习中非常核心的一环,在系统里选择时间段,然后系统随机安排其它候选人过来帮忙检查。由于每个人的进度不同,这个系统随机安排的评分人可能是还完全没有开始写这个项目的、或者正在做题的,或者已经完成的,这都说不定。如果是进度完全滞后的小伙伴,那么需要申请评价的人来讲解自己的解题思路(我觉得可以趁机整理和反思自己的想法);而如果是正在做同一个项目的,则是两个人互相交流这些练习题的坑;如果是一个非常有经验的人,他则会快速的检查以给出论断,可以趁机询问做题的时候模糊的概念等。也因为如此,伙伴评价的分数是不够准确的,主要是为了促进交流而不是得到一个确切的分数,每上交一次项目,需要两个伙伴评价,完成后,会自动上传系统进行测试,最后得到一个真实的评分。

每次请系统安排小伙伴过来进行评价以提交项目,系统会自动扣取一分。每个人的初始值都是5,如果只让别人来评价,不去帮别人评价,那自然很快就会把点数用光,所以相对的,需要在系统的时间表中设置自己愿意帮别人评价的时间,然后等待系统安排去帮别人评价。当然也是一样的,系统安排的时候无视个人进度,可能安排到自己已经做过的项目、或者正在做的项目或者还没开始的项目。如果自己已经做过,就好好帮别人检查,如果正在做,就一起讨论交流一下,如果还没开始,就请对方解释题目和思路。最开始我觉得帮别人检查自己还做的练习题,完全是一头雾水不知道应该干什么,后来发现这是个很好地学习机会,可以请对方帮忙解释未开始项目的目标,练习题的主要设计内容,完整的解题思路,这些其实对自己下一步的学习很有帮助。我卡在某个项目的时候就会特别希望系统安排我去评价别人已经完成的同一个项目,通过评价来进行学习。

每个伙伴评价系统是会自动安排15分钟,但是实际情况因人而异,去评价别人的时候,有的时候是已经上传过一次,通过之前的伙伴交流和系统测试已经找到小错误,第二次改正后重新上传,这种就非常快。有的则是第一次进行评价,需要仔细的阅读,时间长的话,持续一个小时也是有可能的。而自己被评价的时候,如果是个需要详细步骤解释的,就时间长些;如果是学习进度超前的人过来,就是秒速。

大体上个人项目就是如此,一共有2个shell和14个c项目,本身的设计也没有希望所有人都做完,在最后的时候,1/3的人完成了所有的shell和前8个c项目,就这样,已经被评价为这场入学考试的整体进度推的比以往快了。其实最终的考试做完前7个c项目,并且是熟练掌握的情况下就肯定已经能通过了。

团队项目是可选项,需要自己在系统里登记,之后每周五晚上系统按照一定算法进行搭配(最后一次两人团队是自由组队),然后完成比个人项目要难很多的题目,如果对编程有所了解的话,想象一下,让你接触编程的第二个星期周末就用“回溯法”来解决一道类似于八皇后难度的题;第四个星期的头两天解决一道类似寻找最大正方形的题。如果对编程不了解,那就是理解为这个团队项目内容很难就对了,需要大量的努力。随机配好的队伍有契合的有不契合的,怎么分配任务学习就看每个队伍自己内部的交流了。如果自己在队伍中落后,就努力追进度,相当于被系统安排了私教,能快速补知识点,如果自己在队伍中算水平超前的,那就是要帮队友。毕竟团队项目的评价是根据团队中对代码的最差解释(the worst explanation)进行人工打分的,所以不仅要把代码写出来,还要保证全员理解。这个团队项目是有截止时间的,23:42分,晚一秒种上传都会被系统自动拒绝。

除了个人项目和团队项目,当然要说说考试啦。每周五有一场考试,小考是4小时,最后大考是8小时。考试非常有42的风格,就是不给任何解释,自己研究怎么考试。(其实有"readme"在shell里要自己找到并阅读)其中第一场考试如果前15分钟没有找到打开考试的正确方法,就会被强制离开考场。考试的内容是系统发送到个人终端。系统应该内置了一套题库,将所有的题划分等级,从等级0开始。也就是说大家都在考试,收到的题最开始也都是等级0的,但是不保证是一样的,所以视力好也没法抄邻居,因为题不一样。考试的题目没有办法进行选择,每次只给一道题,系统发送一道题后,要提交正确的代码才能进入下一级别,如果错误的话,就会被系统要求重做这一道题。每次重新提交有递增的等待时间间隔,所以要求自己细心检查,不然的话,最后就算解出来的,系统不准提交也是很无奈的事情。答对一道题就会得到相应的分数,然后得到下一等级的一道新题。(以往的考试,是答错了不仅会同一级别换题而且还会扣除一部分能得到的分数,现在的方式其实更容易一些。)

42的考试通过分数设置的普遍偏低,最后的终极考每道题是6分,24分就算过了,能考到60分的人才3%。之前的小考每道题分数更高一些,但也是类似作对两道题就算通过。在最后终极考里,60分的水平对应的是链表题,54分考的分割字符串,48分对应的是malloc应用,42分是仿写指定man里的一个功能,36分是熟练应用各种if,while,break等循环实现一个指定的文本处理要求;判定通过的24分对应的类似与简单的字母置换,大小写转换之类。能拿到24分,已经有被录取的资格,最后还要结合其它方面来看。

按照官网的说法,这场持续三个半星期的考试的评判标准有三条:想要来学习的内驱力(motivation);伙伴评价中的表现以及能成为优秀数字行业工作者的潜力。考试成绩大概只对应最后的潜力这一条,所以这不是一个完全看考试成绩来选人的学校,也因此学校根本不在意来考试的人有无编程基础。可能他们还觉得有基础的人来,能够帮到其它人,推快整体的学习节奏(当然也可以考验大家的抗压能力),是个好事儿。据小道消息,就算一个人项目完成的很好,考试很好,如果没有足够的参与时间,也可能不被录取,因为该候选人被视为有能力帮助更多的人,但是没有做到。在考试期间,会有三次网上投票,每个人手里有10张票,可以投10个人。据说这也是考量的标准之一(伙伴评价的一部分),但比例不明。而内驱力最明显的一个判断即是是否能够坚持到最后,是否每天保持一定量的学习时间,因为只要登入电脑,就会被系统自动记录时间。考试期间,允许在学校的指定区域打地铺,而且学校有一个food truck,所有不少人吃住都在学校,每天就是不停的学习,比如16-18个小时的登入时间。(在这里感谢ching同学慷慨大方的让我和她住了一个月,还经常帮我准备午餐饭盒,她家距离学校只有20分钟的通勤,帮我每天节省一个小时的路程。这样我可以每天有12-14个小时的学习时间)

整场考试的节奏快,压力也大。尤其是前期,有不少人崩溃。有一次我做伙伴评价,对方就直接哭了出来,用了好久安慰和鼓励她坚持下去。学校也建议大家按照自己的节奏学习,不要被别人的进度影响,但基本上是不可能的。有网站数据实时显示所有人的个人项目进度,以及每场考试每个分数段的人数,很多人觉得没有希望追上可能就会离开。大家都会相互鼓励,毕竟无视掉这是一场入学考试的话,这是一个学习的机会,只要努力都会有收获,而且一次不行,学校也允许第二年继续考,大体内容不变,第二年就算有基础的了。不看结果,也是一场体验。不过这场体验确实很累就是了,最后大家都是相互鼓励,靠意志力支撑下来,考完试一周夹杂着七七八八的事情,现在差不多才缓过来。

19/07/11补充

说说游泳池后续。

每场游泳池测试,在结束后8天左右的时间会放榜,六月份考试的结果已经收到邮件了。580注册,440人坚持到最后,总共录取了171人。(当然我被录取是个毫无意外的事情哈哈)但是得知一起参加测试的不同同学的结果,还是有些意外,因为貌似最后终极考的成绩没有官方说的那么不重要,我所知道的被录取的最后一场大考都是高分。

一直以来,因为在游泳池测试的注册上,有50%的名额预留给女生,所以有谣言说女生来考试更简单。其实不是的。注册的时候预留名额来来增加每场考试女生参与的比例,当女生的名额在最后某个期限填不满时,最后还是会放开给男生注册的。580人注册的六月场考试,应该有80左右的女生。因为这个政策,考试期间也一直有谣言说男女会分开排名录取,我直接问过学校,某工作人员告知是考试注册上是预留名额,但是最后选人是公平对待所有人的。而目前就我所了解到的身边朋友的录取结果,也确实如此,毕竟171个人里面可能也就录取了11个女生。我觉得女生能享受的优待一共就两个:

1,注册游泳池测试以及checkin的两小时讲会上有更多的选择空间

2,在洗手间/淋浴室的安排上,最底层保留了一个给女生,其余的都是男女混用;在打地铺的空间上,最开始是男女混住在一层,(6月场)最后还是决定给女生单独圈了一个空间。

42有提到他们致力于提升女性在程序员这一职业上的”话语权“,或者说输送更多的”女性“程序员,在学校的设施上对女生有小部分的优待,这应该就是全部了。其它所有的项目、考试乃至最后的录取应该都是非常公平,没有性别倾斜的。

19/07/16补充

其中一个朋友告知我她接到了学校的电话,被邀请再回去考试。因为6月场次的平均水平比较高,学校在录取算法计算的最终排序上又取了20个考生(172-191名),决定再给他们一次机会,给他们开放了8月场次游泳池测试的特别通道,在正常4周的情况下,参加最后三个星期的测试,然后参与八月场的排名。这个特殊情况并不常见,上次发生是2015年夏天。

学校的注册非常简单,真的是不要任何材料。网上填写个人信息,然后上交法国的社保证明(外国学生可以写邮件要学校注册证明办签证,之后到法国后再办社保)后被核对一下就可以收到学校注册证明然后等开学了。

19/08/28补充

42今明年有大动作,最近比利时,芬兰,俄罗斯的学校都开了,完全一样的录取方式和学制,计划2020年全世界有20个校区,对此感兴趣的可以留意一下。我十分看好这个学校在未来的影响力。

因为还没有完全开始在这个学校的学习,暂时根据游泳池测试的部分想了一下,大概有两点我比较在意。

第一个需要注意的地方是,入学考试是允许考生再次报名参加的,也有很多考生是带编程基础来参加考试的。在这种情况下,最后的录取结果显示,重复参加游泳池测试的人占比重大。(参考twitter上的讨论)学校方面已经做出应对,应该是要没有通过考试的人两年后再试。如果说最初13年建校以及前几年的考试,相对有天赋的人更容易通过测试,现在准备更完善的人(有基础、提前学习、已经参加过)更容易通过测试。因为每次考试的成本其实并不低,尽管可以在学校打地铺(特别不推荐),还有一个月的伙食,参加考试的交通。最初这个学校的建校目的之一是给更多普通人机会,打破固化的社会阶层,发展到后期,如果学位不足,竞争愈发激烈,普通人的机会其实也在随之减小,而且能支付学费的人其实有备用的学习项目可以参与,而普通人则无力支付(约8000欧/每年)。但其实任何一种考试,只要有竞争,大概都免不了这种情况的发生。

第二个就是游泳池测试确实很累。(可能我老了LoL)感觉一直没有休息好,考完试七八月一直在生病。特别佩服在学校打地铺,或者随便找个休息角落就能睡觉的考生。在学校打地铺是省钱的选择,但是舒适性上要做出很大牺牲:夜晚不关灯;容易被不够整洁的邻居连累受罚;没有特别规定的安静时间;空调气温低,大部分人感冒(密度高,易传染)。不住学校的人则有每天往返的通勤损耗。休息不好然后考试内容强度大,即便学校已经取消了入学年龄限制,但是这个考试对上年纪的人并不友好。

最近我一直在想,这样的模式会有什么潜在的问题,也就是以上两点,还有是否能应用到其它学科以及如何应用到其它学科的学习上?我觉得后面这个问题暂时很难回答,我还没有完全想明白。但整体上我还是很欣赏这个模式,我觉得复制再利用的最大难题是计算机的自动评分判定机制。42模式能够摆脱老师的角色,完全建立在伙伴学习上,是因为有计算机的自动判定掌控每一个进度的推进。数理化还好些,提前录入正确答案(但是步骤上的灵活性就会差很多),而文史哲就很难摆脱人的参与了,毕竟文无第一。但是可能希望用人机模式进行文史哲学习本身就是一个错误的思路。但我希望有一个办法可以不通过老师来判定学习进度。文史哲的学习主要是通过论文的思辨实现的(记忆是附赠品),论文的评判并不能交给计算机。那其实我应该反思文史哲的学习进度是否需要人为控制,能不能只设置规划路径,只有在学生申请某个完成证明的时候,统一外聘人员进行核定?感觉又有一个想法问世了。

最后送一个github代码备份+笔记:https://github.com/xuanqi1122/42paris