能不能提出自己的判斷,是很大的分水嶺
其中一個 Senior 跟 Junior 工程師很大的差別是:你能不能就事情提出自己的判斷,並且清楚說明為什麼這樣做比較好。 Senior 工程師要有自己的意見,也要讓別人理解這個意見背後的思考
剛開始工作時,先照著做很正常
剛開始工作的時候,很多事情都還不熟悉。你可能不知道這段 code 為什麼要這樣寫,也不確定這種 component 拆法和另一種方式差在哪裡。看到不同 framework 的選擇,也很難判斷背後的取捨。
這時候 Senior 說怎麼做,就先照著做。在自己還不懂的情況下,先相信有經驗的人,本來就是最快的學習方式。
剛開始時很多人只能先了解結論,但不知道背後的原因。
經驗累積後,開始建立自己的看法
隨著經驗累積,你會開始踩到更多坑。你可能發現某種寫法雖然當下很快,但後續維護非常痛苦。也可能發現某個架構當初看起來很漂亮,實際上卻讓團隊開發速度變慢。
這些經驗會慢慢幫助你建立自己的判斷,你開始會有一些自己的看法。比如說這段 code 其實不需要過度抽象、這個需求應該先求穩定,而不是先追求最完美的設計、這個 library 雖然熱門,但未必適合目前團隊等等。
很多人卡住,是因為不敢表達意見
但即使已經累積了不少經驗,很多人還是不太敢說出自己的想法。
常見的原因是怕自己想得不夠全面、怕講錯被質疑、怕遺漏某些關鍵資訊、怕自己的經驗還不夠資格發表意見等等。這種心情很常見,尤其是在能力很強的團隊裡,更容易覺得自己還不夠好。
但其實沒有人真的什麼都會,每個厲害的人,也都是從一無所知開始,一步一步累積起來的。差別往往只在於有些人願意先整理自己的思考,然後把它提出來。
提出意見,本身就是成長的開始
你不需要每次都是對的,更重要的是你願不願意在需要判斷的時候,先去思考然後整理出自己的觀點。例如在 code review 時,你可以提出來說:這裡如果改成共用 component,未來維護成本可能會更低,或是在討論需求時,你提出這個流程如果拆成兩個階段上線,風險會比較小。
你的建議有可能是對的,也有可能最後被證明有更好的解法,這都很正常。更重要的是,當結果和預期不同時,你願不願意勇敢承擔、並回頭思考是哪個判斷出了問題、是哪個知識點理解不夠完整、下一次可以怎麼做得更好。
Senior 的能力,是一次次累積出來的
每一次提出意見,都是一次思考訓練。每一次修正自己的判斷,都可以成長更多。你需要在一次又一次的判斷、犯錯、修正、學習之中,慢慢建立起自己的思維系統。
從只會問別人怎麼做,到開始思考為什麼要這樣做,再到能夠提出自己的方案,並幫助團隊一起做更好的決策,這就是真正的成長。
工程師走得更遠的核心能力
技術會持續更新,工具會一直改變,而獨立思考、清楚表達、持續修正判斷的能力,是讓工程師走得更遠的核心。
如果你也正在從 Junior 工程師往 Senior 成長,想培養自己的判斷力、提升技術視野,或是更了解資深工程師是怎麼思考問題的,找一位真正有經驗的前輩聊聊,往往比自己一個人摸索更有效。
