Piscine 倒數第二天學校準備了真的泳池讓我們消暑

| Piscine | 考前攻略

Yiching Tseng
台灣人 @ Ecole42
Jan 19, 2021

--

想進42第一個門檻就是它的入學考試,這是一場全C語言的測驗,因此我想分享我的經驗,讓大家了解沒有相關背景的人在考前該怎麼準備。

關於如何申請的步驟,其他兩位版主已經有詳細的介紹,在這裡我就不贅述了。

首先,我們先來了解一下何謂Piscine ?
Piscine 在法文裡是指游泳池,這場考試之所以命名為泳池,象徵著全部的考生(Piscineux)會一起被丟到充滿程式語言的泳池裡,學校會藉由這個機會觀察你的動機、積極度、適應能力以及與其他考生的互動,來確認你是否適合這個學校的學程。

誰可以參加考試 ?
任何人都可以,沒有國籍、學歷、背景、年齡、性別的限制,學校致力於讓programming不再只是理工科限定的專業。
#考生如未滿18歲,需要有Bac(法國高中畢業), 年滿18歲不在此限

沒有學過程式語言怎麼辦 ?
Piscine其實是一場基礎C語言的學習過程,依靠google還有坐在你左右的鄰居,完成學校給的題目,所以沒有程式語言背景也沒關係,現場學就好。(咦 那我寫這篇幹嘛 ? )
我們先來看一下2019年夏天各校的考試名額,巴黎校區有四場考試(6–10月,每場600人),里昂兩場(7–8月,每場200人),錄取率大概25%左右(彼時尼斯尚未開設),但去年因為疫情的關係考試名額跟錄取人數與往年不同。從上面的數字看起來,錄取率還算是蠻高的,但要知道近50%的考生都是retry (重考生),另外一部份的人則是相關背景出身,所以競爭很激烈。沒有程式語言背景的人想在Piscine脫穎而出的話,考試前還是要提前準備,免得到時候兩眼一抹黑,連Terminal是什麼都不知道。(笑)

Piscine 的考試 projects 總共有16個,前兩個是Shell,後面全部都是C,整場考試都是使用terminal 完成。#學校的電腦是Mac
以我的例子來說,我本身在決定參加Piscine前從來沒有coding過,所以我在考試前的兩個月開始熟悉:

接著開始了解C的格式:

  • 一個function的prototype 分別是什麼意思 ? (function name, return type, parameters)
  • 何謂variable ? (int, char, char *)
  • array 跟 char *的區別 ?
  • 什麼是 pointer ? (這個是我覺得對初學者最不容易理解的概念)
  • 在一個function 裡面怎麼loop (常看到的是for, 但42規定只能用while)
  • 怎麼從主function 叫子 function
  • 了解ASCII table 的概念

考試的時候會用git交作業:

  • 了解Git的概念,如何使用(command: git status, git add, git commit, git push …)
  • 提前申請Github,當作練習

如果不知道怎麼開始也可以透過網路上的免費課程來練習,例如Open Classroom, Codecademy, SoloLearn 等,都有相關的課程可以參考。

除了上述的硬知識以外,也要訓練自己怎麼善用Google關鍵字找到正確答案跟解釋,因為Piscine的考題除了找答案以外,還要看懂題目在問什麼。以programming來說,英文的資源最多,所以如果英文底子不錯的話,建議直接用英文關鍵字。我個人推薦最值得信賴的來源網站為: Stackoverflow 跟 GeeksforGeeks 。
#學校的題目有英、法文兩個版本,不會法文沒關係

網路上都可以搜尋到42 Piscine的考試題目,如果你有時間準備的話,我個人建議提前練習Shell00 跟 Day00,分別是Shell 跟 C的入門題目,當然你想全部做完也是沒問題。
順帶一提,你可能會找到Github上其他人寫的會答案,個人覺得真的母湯,因為答案有可能是錯的,最重要的是它會限制你對C的想像,讓你寫不出屬於自己的code。
#每週五晚上有一場考試,與平時不同,這段時間內你不能google,也不能與同學討論,你只能自己寫出function

最後,Piscine是一場短跑衝刺賽,整個月都沒有週末,我當時每天早上七點去學校,晚上九點才回家,有時候更晚,一天平均待在學校14小時,所以考試前要把自己的體能跟心情調到最佳的狀態。Go go !

--

--