指導計畫 - 針對學員
申請流程
申請會透過各計畫網站提交,例如 Google Summer of Code 和 LFX 指導計畫 。
提案
Jaeger 指導計畫專案收到很多申請 (每個專案最多 150 個),因此我們要求申請人提交專案提案,以便我們找到最合適的候選人。即使特定計畫的準則並未要求提交提案,請將其納入其他申請文件,例如求職信 (PDF 文件優先於超連結)。
我們希望提案涵蓋以下主題
- 關於您
- 您為何對這個特定的專案感興趣?
- 您有哪些相關經驗或技能可協助您成功?
- (選填) 您有哪些開放原始碼經驗?請連結至一些值得注意的提取要求。
- 您在指導期間的時間承諾為何?
- 關於專案
- 您如何理解此專案中需要完成的工作?
- 您預期會有哪些技術挑戰,以及您建議如何解決?
- 您打算如何處理專案 (路線圖、里程碑、時程表)?
提案並非越長越好。重點在於品質,以及展現哪位候選人更了解問題並掌握解決之道。您無需解釋 Jaeger 的功能和運作方式。相反地,請專注於專案的特定問題,並思考挑戰和解決方案。
訓練營
為了更了解專案並提出合理的解決方案,熟悉 Jaeger 及其程式碼庫始終很有幫助。我們強烈建議以下步驟
- 瀏覽一些 Jaeger 教學課程,例如 這篇部落格文章 或 這段影片 。
- 親自執行 HotROD 示範 。部落格和影片可能已過時,親自操作體驗會很有幫助。
- 檢閱 Jaeger 架構 並了解各個元件。
- 分支並複製相關的儲存庫,以便能夠在本地建置和執行專案 。
- 了解參與的最佳實務,包括如何簽署程式碼並參與 。
- 嘗試解決您可以在 Jaeger 儲存庫中找到的一些簡單的未解決問題。
評估標準
我們沒有用於評估的確切檢查清單,但以下標準具有高度影響力
- 候選人有幾個提取要求合併至 Jaeger,這證明
- 他們對程式碼庫的理解,
- 他們對我們開發工作流程的理解,
- 他們的程式碼編寫和解決問題能力。
- 高品質的提案,證明
- 對問題的良好理解,
- 已執行技術盡職調查,
- 解決問題的可行方法。
- 先前完成高品質開發工作的證據,例如,在其他開放原始碼專案中。
指導
恭喜您獲選為 Jaeger 學員!當您開始專案時,可能會感到有些畏懼,因此以下是一些指南,可協助您入門。
入門檢查清單
- 請檢閱 CNCF 行為準則 。它提供了一個導引,讓導師和學員都應遵守,以確保溝通環境的安全。
- 在 CNCF Slack 上建立帳號,並使用照片/圖片個人化您的帳號,以幫助您脫穎而出。
- 將您的 Slack 帳號發送給您的導師,以便我們可以將您加入私人頻道。我們會建立一個只有您和您的導師的頻道,以及第二個永久性的私人頻道,其中包含所有過去和新的學員和導師。
- 加入 #jaeger 公開頻道。在這裡您可以從 Jaeger 社群獲得幫助。
- 向您的導師、其他學員和 Jaeger 社群說「哈囉」;如果您覺得自在,可以簡單介紹一下自己。
- 閱讀我們的貢獻指南 ( #1 , #2 ),其中包含有關開發工作流程的說明。
- 熟悉 Jaeger 文件 ,其中提供 Jaeger 的架構概述、所有 CLI 旗標的完整清單等等。
- 仔細閱讀 Github issue,以充分理解需求。在該 issue 上發布任何澄清問題,確保您自己、導師和社群在日後可以參考。
保留進度日誌
由於指導是遠端的,確保您穩定進展並讓您的導師了解情況的最佳方式是保留定期的進度日誌。
- 在本學期開始時,複製此 Google 文件範本 並與您的導師分享 (允許評論)。
- 在每週開始時,為該週建立一個章節,其中列出您想要實現的目標。
- 在每天結束時,在相應的目標下添加註明日期的日誌條目,並簡要總結您所做的事情。
- 這可能只是一句話,例如:「閱讀 XYZ 文件 {連結}」。
- 理想情況下,記錄一些關於您所做的工作如何影響您未來計畫的結論/決策。
- 如果您在某一天無法處理專案,也請記錄下來,以確保透明度。
為什麼日誌很重要
- 日誌讓您的導師可以了解您的進度,並讓他們可以進行調整。
- 如果您無法在一週內寫下您的目標,這表示您可能誤解了某些地方,您的導師需要與您合作以釐清需求和方法。
- 許多專案需要研究/分析如何最好地解決特定問題。寫下您的發現可以幫助您組織自己的理解,並及時獲得導師的回饋。請記住,導師可能也不熟悉該特定領域,他們需要您研究、綜合並呈現影響專案的資訊。
- 清晰的寫作是軟體工程師最重要的技能之一。您可能會認為是編碼技能,但是當您變得更資深時,寫作是您溝通想法並與團隊/社群達成共識的方式。利用這次指導來磨練您的寫作技巧。
- 將指導專案視為一份工作,有責任取得進展並達成目標。
提示
- 提出問題!一個好的經驗法則是,如果您花了一個多小時仍然無法在文件或程式碼中找到答案,那麼請不要猶豫向您的導師尋求幫助。您也可以在 #jaeger 和 #jaeger-mentorships Slack 頻道中提問。
- 在開始相對較大的變更之前,請寫下您計畫要做什麼、為什麼以及潛在的挑戰或未知數的計畫。考慮將其記錄為 Jaeger 中的 新 issue 。
- 一次處理小型的可交付成果,並在過程中進行小的改進。將大型任務分解為較小的部分可以幫助使看似艱鉅的任務變得易於管理。它也有助於減少審閱者的認知負荷!😀
- 在處理問題時,同時面對不確定您的做法最終是否會奏效,可能會很有挑戰性。一個基本概念驗證可以保證最終結果,可以幫助突出要單獨解決的子問題,同時讓您有機會探索各種替代解決方案並確定最佳選項。
- 歡迎您加入 每月 Jaeger 視訊通話 。
- 編寫單元測試,如果適用,請在本地執行即時整合測試。測試可以向您自己保證您所寫的內容有效,向程式碼讀者記錄預期的行為,並防止未來貢獻造成的倒退。
- 我們鼓勵您以友善和建設性的回饋來審閱其他人的 PR (例如來自您其他學員的 PR)。這是在熟悉程式碼庫的同時,學習良好編碼實務的好方法。
- 隨時提出改進建議!例如,如果您在開發工作流程中遇到很多摩擦,我們是否可以透過更好的文件或自動化來改善開發人員體驗?