※ 引述《marmot00 ()》之銘言:
: 避免廢話打太多,先把問題打在前面
: senior / 高階 / 大神 (或其他同義詞) 跟新人碼農有什麼不一樣?
: 在大家的團隊裡都負責什麼樣的工作呢?
給你一個極端的案例 剛好senior跟新人都是我團隊內親眼見過的案例
新鮮人:
1. 滿滿的義大利麵式程式碼
有的時候還會直接copy&paste給你看
2. 一個功能規格寫各一段code 也沒思考過重構與共通邏輯
只為完成需求而寫程式 沒去想其他延伸或後續問題
3. 因為自己不會做或懶得做 會直接告訴團隊其他人做不到
但老手接手後發現完全可行
4. 問問題也不自己先想過 像是在學校伸手要作業答案一樣
5. 會常常寫出一些效能不好的程式碼(對函式庫或是技法不熟)
當然不是所有的新鮮人都這樣,只是我見過上面5點全中的
senior:
1. 一開始寫的code就有條有理 會一邊開發一邊重構
2. 開發時會思考延伸問題 會確實排入工作項中
3. 樂意處理團隊內外的大小問題 自己份內的工作也能完成
在研發時發現有新的可能性或效益會主動告知PM與規格設計者
4. 樂於解決問題而不藏私
5. 通常寫的程式已有不錯的效能
還會順便幫忙整理別人的
: 團隊內較資深的成員約在4年上下,熟悉的是公司軟體架構(表面上看起來)
: 自己常常套用新的技術達成了需求,常在想「這樣到底對不對呀?」,卻又沒人能問
: 如果有高手是不是就可以在code review時告訴你這樣會有問題或是根本就搞錯了?
如果技術可以達成需求 除非有潛在的問題 不然我覺得應該不用太過鑽牛角尖
重要的是senior通常不會只知道開發上的技術
對於產業的趨勢與用戶需求也能了解 具備domain knowledge
如果連自己domain面臨or需要克服的問題是什麼
就算操控工具的技術是100分 沒在刀口上還是沒用
: #演算法
: 讀書時覺得演算法不知道在做什麼用的,都沒在聽
: 轉職後不免俗的刷了一些leetcode以後才發現原來好壞差這麼多
: 但到了實際工作環境,頂多注意一下nested loop不要跑太多層
: 不曉得是只有特定領域才會用到,還是小弟還沒到那個層次所以看不出來?
確實是看工作內容 如果工作核心不是在演算法開發或最佳化其實機會不多
具備基本的演算法與資料結構知識 我個人認為還是有用的
總之就是看緣分 但有總比沒有好 有些人是連stl的容器都會挑錯使用場合
某些狀況下你也可能需要設計特殊機制來做資源管理
這時這些知識一定能幫上你的忙