---
# System prepended metadata

title: (working draft) NTU Applied Zero Knowledge Open Source Student Dev Fellowship 中文
tags: [opensourceproj]

---

###### tags: `opensourceproj`

# (working draft) NTU Applied Zero Knowledge Open Source Student Dev Fellowship 中文
這是一個以台大學生為主的開源專案學習計畫，計劃裡面的專案會與應用零知識證明在區塊鏈有關。

計畫不會有完整的教學過程，也就是不會有教授或講師每週授課。參與學員在四個月的學習過程中會與3~4個學員一起「自主」實作一個開源專案內的貢獻或合作的組織提供的題目。開源專案或是合作的組織會有 mentor 可以適時的指導學員針對貢獻專案提出的問題。

至 [Program Detail](#Program-Detail) 段落可以了解更多上述內容的細節。

# Getting Started
* [Program Detail](#Program-Detail)
    * [What is this Program](#What-is-this-Program)
    * [Communication](#Communication)
    * [Program Timeline](#Program-Timeline)
* [Participation Guide](#Program-Timeline)
    * [Application](#Application)
* [FAQ](#FAQ)
* [Technical Resource](#Technical-Resource-and-Template-TODO)
* [Program Org Team](#Program-Org-Team)
* [Reference - Program Files](#Reference---Program-Files)
* [Reference - Open Source Program](#Reference---Open-Source-Program)

# Program Detail
## What is this Program
零知識證明 (Zero Knowledge Proof) 是近期區塊鏈的研究開發重點，能夠帶來隱私(privacy) 以及擴容 (scaling) 兩個優點。學員透過參與開源專案或合作企業的專案能藉由實作，培養能夠針對開源專案貢獻能力以及提升對應用零知識證明的理解。

這個計畫不會有完整的教學，也就是不會有教授或講師每週授課，學員若有需要了解更多零知識證明的細節，可自行透過下文[Technical Resource] 段落提供的材料，材料包含其他活動的零知識證明教學影片、材料。在開發過程中，學員會得到專案上的支持，會有至多每週一次的時間與 mentor 討論學員事前準備好的問題。

4個月的期間，學員會經歷以下的活動，這些活動也是檢核點: （TODO：是否有學分/是否是一堂課）
* **每週週會**
* **一個月一次的 Demo Day（共三次）**
* **(Optional) 實體 meetup**

包含閱讀文件，開發，學員一周可能需要非連續的15~20小時投入到這個計畫上。

## What will you work on
TODO
* **前兩次 demo day**
專案的 maintainer 會提供一些 feature request/bug fix 當作這兩次的 demo day
* **最後一次 demo day**
參與的學員會提出一個 feature proposal，並把這個 feature 實作出來並且發出 PR 到專案上並且被 merge 成功。

合作的專案以及對應的組織如下：
| 專案 | 組織 | 簡短說明 |
| -------- | -------- | -------- | 
| TODO     | TODO     | TODO     | 
| TODO     | TODO     | TODO     | 

## Who is it for?
理想上，學員要有以下技能。
* **良好的表達及寫文件的能力**
在實作專案裡面的功能時，與同組別的學員以及與 mentor 討論都需要良好的表達。這些開源專案所需要的能力未必跟困難的演算法/資料結構一樣困難，但通常有很多需要一起合作、花時間事先閱讀並跟彼此討論的文件，因此表達能力與寫程式能力一樣重要。每個人每兩週會需要寫下學習的摘要放在 GitHub 上，在此有個[書寫範例](https://hackmd.io/BNar42WrSuumbPwwf0e1-Q?view#Technical-Resource)。另外若有具體的貢獻（例如在專案上新加入功能）則可能會有需要在 GitHub 上增修專案的文件，因此寫文件的能力也是重要的。
* **有能夠讓你看懂開源專案並且開發的程式能力**
接觸一個開源專案能夠知道從哪裡開始，並且能夠從小的 issue 開始讓自己熟悉一個專案。你不需要是非常厲害的軟體開發者，也不需要對特定程式語言很精通，但要有能力快速學習開發中所需要的軟體以及技能。
* **自動自發並且負責**
在這個計畫中，學員必須要與同組組員一起合作將專案。若你預期在這個學期沒有辦法付出相對應的努力在這個計畫上，建議審慎思考是否申請。另一方面，mentor 固然在本計畫中是重要角色，但學員仍需要自己學習實作並與同儕討論，而精煉後的問題才在 office hour提出。

這些技能並不是在申請前就需要完全具備，但學員要能夠在申請資料中展現具備這些能力的潛力，並且在實際計畫進行時逐漸讓自己提升這些技能。

## Communication
這個計畫使用 discord 作為溝通的平台，在 discord server 你可以接觸到 mentor 或其他的學員。這些 mentor 不限於台灣人，因此討論語言不限於中文，若非使用中文的 mentor 則使用英文。

在本計劃，每週會有兩個會議：
* **Standup calls**
學員在此週會討論並簡短互相報告專案的進度，部分時候 mentor 可能會出現。
開會時間TBD
* **Office hours**
在 Office Hour，學員可以針對事先提出的問題與 mentor 進行討論。若沒有事前提出的問題，則 Office Hour 會**自動取消**，開會的時間（TBA），你可以在 [Mentorship Guide](https://hackmd.io/BNar42WrSuumbPwwf0e1-Q?view#Mentorship-guide) 學習如何與 mentor 討論並且預約一個 Office Hour

要繳交文件或是報告會在 GitHub 開一個 repository 能夠繳交，詳細說明請見 [Biweekly Report and Progrss Update](https://hackmd.io/BNar42WrSuumbPwwf0e1-Q?view#Biweekly-Report-and-Progress-Update)

## Program Timeline
這是個為期四個月的計畫。計畫時間從 9月到2024 1月
![](https://i.imgur.com/SCOvHNo.png)
Gantt Chart 請參考[此處](https://docs.google.com/spreadsheets/d/1PF6WTN3Toh7FGbWhvkdyexBrnoi72gR33PbiQ1-HAFI/edit?usp=sharing)

具體時間會由以下四個階段組成：

### Phase Zero：計畫事前準備
* **Mentor/合作組織提出Project 2023/5/1 ~ 2023/7/10** 
* **marketing campaign 2023/7/10 ~ 2023/8/20** 
    * 次數/日期/內容 TBD
* **Application during 2023/7/10 ～ 2023/8/20**
* **Screening applicant 2023/8/20 ~ 2023/8/31**
申請細節以及篩選標準請見 Application 段落

### Phase One：計畫開始
* **期間：2023/9/1~2023/9/7，9/7退選截止**
* **program orientation**
介紹本計畫、計畫主要關注領域、了解合作的專案及組織
* **2023/9/7 前填寫 project 意願，9/8公布**
為平衡各組人數，並不能保證 project 意願與最終媒合 project 相同

### Phase Two：完成指定 feature request/bug fix
* **期間：2023/9/8~2023/11/26**
* **Weekly Standup call/Office Hour**
    * 每週一次，Demo Day 當週不用開 Standup call，時間TBD
    * 參與 Standup call 你該注意的，參考此
* **Biweekly Report and Progress Update**
    * 每兩週一次，繳交截止時間TBD
    * 每週的進度以及學習到的心得，參考此
* **Monthly Demo Day**
	* 每月一次，共兩次
	    * 2023/10/10 週日 晚上 （雙十連假最後一天）
	    * 2023/11/26 週日 晚上 （期末課程回饋期末考尚未開始）
	    
### Phase Three：自主發想專案 feature
* **期間： 2023/11/26~2024/1/7**
* **Weekly Standup call/Office Hour**
    * 提出一個 feature proposal，並把這個 feature 實作出來。本階段的 Standup Call 主要是在繳交 proposal 前與 mentor 及其他學員討論 feature 可行性
* **Biweekly Report and Progress Update**
    * 每兩週一次，共兩次
    * 第一次的 biweekly report 必須繳交 proposal，proposal
* **Monthly Demo Day**
    * 每月一次，共一次
    * 2023/1/7 週日 晚上 （1/1教師繳交成績期限，學校課程已經結束）

### Program End
* 專案結束，可在後續繼續貢獻區塊鏈零知識證明的開源生態系

上述的時間為原則上的時間點，若學員或 mentor 有特定的需要，都能夠在雙方合意下彈性的重新安排時間。

# Participation Guide
## Choose a Project
在第一週根據合作組織介紹的 project 以及相對應的 GitHub 原始碼連結，選出你最有興趣且認為有能力勝任的專案。

## Weekly Standup call
* 一週最多可以安排一次 mentor 時間
* 每人時長原則上不用超過10分鐘，可多人一起
* 口頭討論，若有需要可做投影片輔助，討論可包含（但不限於）以下內容：
        1. 現在在開發什麼
        2. 下週要做什麼
        3. 目前有無任何困難
        4. 針對困難的議題已經做過什麼研究
## Biweekly Report and Progress Update
TODO
繳交文件或是報告會在 GitHub 開一個 repository 能夠繳交，這個 repo 的目的為：
1. **讓這個計畫進行的細節成為開源的一部分**
你的貢獻可以公開地在網路上被看到，也能被檢驗
2. **未來類似計畫的參考依據**
3. **為未來有興趣研究類似主題的人提供資源**

TODO: 增加更多說明
https://github.com/eth-protocol-fellows/cohort-three/blob/master/program-guide/repo-guide.md

## Mentorship guide
Mentor 協助你並且給你專案進度上的回饋，但**不會**鉅細靡遺教導並對你的專案提供指引，問問題之前先自己思考過、查詢過網路、或甚至問過 chatGPT （並查證！）

如何與 mentor 互動：
* 發問前先研究，提出你做過的嘗試，以及搜尋過後的 reference
* 在 discord 的 #你的專案 channel 內發問並標注 mentor，適當的開一個thread，讓其他人比較好分類並回溯查訊息
* 若討論的內容更長，mentor 或學員可以決定是否要在 office hour 討論。若問題相對比較大，需要完整的時間，可以預約一週一次的 office hour，在討論之前發一個 issue，包含 預計討論內容、時間以及會議連結，參考[此處](https://github.com/eth-protocol-fellows/cohort-three/issues/334)

## Application
### Selection Criteria
TODO
### Screening Process
hw0, application form, 
TODO

# FAQ
* **是否會需要以英文進行與 mentor 的討論**
有可能，這部分取決於合作的組織
* **學員預期付出時間**
學員一周可能需要10~25小時
* **我會得到 mentor 什麼樣的協助**
學員自主提出問題，但不應期待 mentor 會完整的教導零知識證明的概念、如何開發特定功能
* **時程有多長**
4 個月
* **這個專案是否有後續與合作組織合作實習的機會**
這不包含在專案計畫中，合作組織有可能因為學員表現優異邀請實習或面試，但這此計畫並不保證相關機會。
* **是線上進行還是實體進行**
線上進行，可能會有實體的聚會，但非強制性
* **是否有限制系所以及年級**
不會限制任何系所的同學參與，也不會限制年級
* **是否有限制校內同學參與**
TODO current thought: 是

# Technical Resource and Template
TODO
* **Suggested Reading List**
零知識證明的基本介紹，待補完XXX TODO
* **how to launch an office hour**
在 mentor 與學員簡短討論過後，若問題相對比較大，需要完整的時間，可以預約一週一次的 office hour，在討論之前發一個 issue，包含 預計討論內容、時間以及會議連結，參考[此處](https://github.com/eth-protocol-fellows/cohort-three/issues/334)
* **how to write up a progress update for biweekly report**
TODO
https://github.com/eth-protocol-fellows/cohort-three/blob/master/development-updates.md#update-1
ignacio
gabriel
https://github.com/eth-protocol-fellows/cohort-three/blob/master/notes/0xgabi.md#10312022
有個blog post的，在這找找https://github.com/eth-protocol-fellows/cohort-three/blob/master/development-updates.md
* **how to write up a project proposal**
第二階段提出一個 feature proposal，並把這個 feature 實作出來，參考[此處](https://github.com/eth-protocol-fellows/cohort-three/blob/master/projects/consensus_client_reward_APIs.md)


# Program Org Team
TODO