看板 Soft_Job 關於我們 聯絡資訊
※ 引述《p52189 (鼠霸)》之銘言: : 各位前輩大家好 : 我是一個研究生 : 正在為了畢業奮鬥中(說到畢業真是一把眼淚阿) : 老闆希望我能把手上的程式交給兩位大學部學妹 [--] 這裡我將它明確定為 工作交接,而非成長引導 : 不過老實說...在這之前我已經帶過好幾批學弟妹,成功率非常低 : 我想這應該是我的問題 : 所以想上來問問有什麼好的解決方案 : 先說一下我現在的狀況 : 我手上有一個專案,使用LAMP,伺服器作業系統是Ubuntu和CentOS : 裡頭包含幾支定時爬蟲程式 : 幾支實作別人論文的後端程式,主要是用OpenStreetMap的地圖資料算一些路徑問題(使用php,沒有使用任何框架,全部手刻,雖然我盡力寫整齊了不過能力有限,整體不是很漂亮) : 一個MySQL資料庫,程式裡大部分是不太難的query,因為我也是現學現賣orz 但是因為是跟前述的程式很緊密的一起工作,所以不容易直覺的理解的地方應該是實作的演算法本身的邏輯 : 一個處理暫時資料的Redis資料庫(基本只有用到最入門的那幾個資料結構,主要是用list來處理多個process一起來要資料的問題) : 一支DEMO用的前端程式,使用AngularJS、地圖相關的畫圖用函數庫,以及一些例如轉換色彩模型啊讀讀XML之類的小東西 : 老師希望能讓學妹們使用已經寫好的函數,兜一兜做一些分析之類的應用 : 學妹的狀況就是普通大學生 : 會乖乖讀書寫作業但是不會主動寫玩具,也不太關注業內新聞的那種 : 想問問各位板友,如果是你們的話會怎麼規劃呢? : 因為我在別的匿名討論區問過類似的問題……結果大歪串 : 所以附注一下,希望板友認真一點回覆QQ 我不是男生不要再建議我帶回家教學了orz : 謝謝!! : ----- : Sent from JPTT on my HTC_M9u. 有些任務與角色需要區分的。 交接任務是把東西傳遞給對方,讓他可以重製你現有的成果。 並確認你移交的事項是完整可用的 (未完成的部分靠 known issue 清單解決) 輔助他們完成 hello world 等級的實作,可以算在交接的一部分 但不需包含『個人』應該努力學習的基礎知識, 你的角色是知識傳遞者,非導師(mentor),他們後續該怎麼成長 是否會與其中一些人建立出密切的師徒關係,這就靠緣份了。 目前的情境來談交接的話,你可以大致區分: [基礎建設安裝] 1. 基本系統架設(裝哪一個 Linux Distribution), 裝完後要裝哪些應用程式(LAMP?) 2. 基本系統參數調整,剛裝好要調哪些設定 ulimit、my.cnf、... 3. 第三方套件與應用程式,其他不是由 software repo 來的, 像要自編的東西,或另外設 repo 的軟體 [既有應用安裝] 簡單說,就是屬於你們 lab 的創作(相關開發工具應該前一階段安裝) 0. 如何取得程式(版本控制系統與授權、基本的倫理概念) 1. 程式怎麼編譯 2. 程式怎麼更新 3. 程式由哪些地方執行(也就是你提到的 cron job) 4. (optional) 如果有問題時的排查策略與方法 [開發環境建立] 有了前 2 者的基礎後,應該會比較容易指導開發環境的建立 考慮到開發者可能是用 windows,也許得用 vagrant(或直接使用 vbox)輔助 如果能直接出 Vagrantfile 會更方便 (出 image 檔也很方便只是有檔案肥大的缺點) [新功能開發] 1. 各程式元件與功能的介紹 2. 如何在各元內新增功能? 資料由哪裡來,該往哪裡去,偏好以什麼型式記錄結果 3. 開發完怎麼部署到 {開發、正式} 環境 4. 團隊版本控制系統使用的慣例 ============================================================== 以上每一個大項該學的東西,都可以列出 Reference 不管是書單、官方網址、快速上手教學。 真的太『基礎』通用的,請務必列入該 lab 『新生訓練』課程, 編好簡單的教材,一代傳一代,不該由你獨立去弄。 有 lab 就不該單打獨鬥啊!團體作戰發揮的力量比較大。 若你真的非常有動機指導他們成長,那也要這些東西都會做之後才算有意義。 ============================================================== 若是『脫離』了學生階段,進入正式工作的情況下,會用些更有效率的工具 (其實我覺得,學生階段就能先接觸更好,沒人規定學生就得苦勞地手作啊!) [基礎建設安裝] <== ansible, puppet, chef, ... [既有應用安裝] <== ansible, puppet, chef, ... [開發環境建立] <== docker, vagrant, packer, ... [新功能開發] <== 弄成空白專案的範本, 或出 code generator 或出 IDE plugin 給團隊使用 基礎知識部分則是個人的責任, 大概只有 domain 相關知識才會特別拿出來『新生訓練』 Deploy 部分就用 CI/CD 的工具,例如 Jenkins -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.21.157.224 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1471416134.A.FD1.html ※ 編輯: qrtt1 (211.21.157.224), 08/17/2016 14:43:07 ※ 編輯: qrtt1 (211.21.157.224), 08/17/2016 14:44:21
Mtcat: 推推 08/17 14:49
d1288999: 推~說明詳細 08/17 14:57
y2468101216: 推推 08/17 15:00
benq210005: 大大實在太認真回答了 推推推 08/17 15:03
yyc1217: 但很多老師還是習慣用同一套工具教練 很少會跟上主流的 08/17 15:12
manaup: 理想很豐腴而現實是很骨感的 08/17 15:16
nsysukober: 推這篇 08/17 15:32
ian90911: 推 08/17 16:20
gn00273680: 專業 08/17 19:43
vn509942: 認真 08/17 20:10
Hevak: 推 08/17 21:41
b510336: 推用心!!! 08/18 00:34
p52189: 我是原PO 太謝謝你了 大大 我會按照這個方向準備一些 08/18 02:36
p52189: 文件和範例 真是解救了我XD 謝謝!! 08/18 02:36
wildpeanut: 推q大!有時後知識傳遞和導師的角色沒有那麼明確 08/18 08:37
zerofinal: 推一個 08/18 10:01
angusyu: 插補大學生第一步就困難重重,第三步就失敗逃跑 08/18 12:45
cocoyan: 推 08/18 17:56
viper9709: 推這篇~夠實用 08/18 22:58
lzyx: 真的寫得很詳細,在學校的時候根本沒人教 08/19 00:46