Eden Pan 已發佈 2019-11-9

成為一個好的前端工程師

最近自己在工作上遇到的問題以及與老闆、主管討論後的心得,與大家分享

關於 Coding 這件事

  • 寫程式其實很像在寫論文,需要有嚴謹的架構與合理的推論邏輯,才能確保假設與驗證後的結果是搭得上且有品質的。Coding 也是一樣,有一定實力的工程師在進行的功能常常是 StackOverflow 查不到或沒有關鍵字可以 Google 的,這時候該怎麼辦?邏輯與架構就是唯一能依靠的。這個功能有什麼 Interaction ? 該如何拆解這個 Interaction 變成多個小步驟?每個步驟之間的關係是什麼?等等,都是邏輯與架構能力派上用場的地方,如果持續進行這樣的練習,會學習到很多新的 Know How 與不同的 Model 思維。
  • 寫程式一定要把過程看得比結果重要,前一點提到的邏輯推演、程式如何架構、行為設計、是否可以避開潛在的問題等等都是過程,但這些過程都會直接影響到結果與產出的好與壞。
  • 學習一門新技術不在於功能是什麼、能做什麼,而是在學會基本功能後去研究這們技術在什麼情境下適合使用?能達到什麼原本做不到的?有什麼限制?使用的人都用在哪裡?會使你更清楚技術的意義與原理。
  • 要掌握技術細節最好是直接看文件,因為文件就是說明書,通常會把概念說明得比較清楚。了解概念後再去 Google 實際案例,看其他人都用在哪?會印象更深刻(如果可以把學到的東西寫出來會更好)。其實很多 Senior 工程師平常就在幹這些事,所以他們解決問題的資料庫很龐大,加上好的邏輯思考會加速解決很多難題。
  • 寫程式就像拼積木一樣,一定是從小範圍先拼起,如果小的拼不好中型或大型一定倒更快,也就是說在實作一個功能時最好用最小規模測試可行性與概念,再慢慢擴充,基礎才會穩固。
  • 不用上太多教程,Side Project 也不是必備,重點是在工作的專案上鑽研得夠深,持續優化自己的程式,挑戰更多困難的功能與 Bug,成長幅度一定會更大。因為教程其實是教概念為主,實際上的專案會複雜許多,而且會有更多外部因素影響到你的開發。因此可以利用教程了解一門技術的概念與輪廓,並利用 Side Project 練習,這是沒問題,但不要過度依賴。
  • 前端工程師 JavaScript 底層基礎要打好,再來是 SPA 相關知識基礎。因為在未來五年內 SPA 生態體系會越來越完整,前後端分離也會逐漸成為常態,原本後端要控制的行為都會改成由前端控制。這個時候如果只會切版的前端工程師,就會越來越沒價值直到被淘汰。
  • 永遠不要對自己的 Code 感到滿意,要帶著學習的心態看待 PR 的 Comment。

關於團隊合作

  • 在主管或外部廠商提出開發需求時把對方提出的需求逐條記下來,在會議結束後整理好內容主動傳訊息給對方確認。這個動作除了讓對方或主管安心之外,也是保護自己與自己的團隊。
  • 如果自己在某個狀態做出的決定會影響到團隊其他人時,務必把這個議題丟出來與相關人等討論。
  • 團隊合作最重要是信任,信任的前提是資訊要完全透明。資訊透明的意思是讓所有人知道你現在的開發進度到哪裡?有沒有卡住?會不會 Delay ? 讓其他人可以預期你的進度與行為。
  • 不要閃避問題或 Bug,即便它發生的機率不高。要學會正面挑戰問題,因為一個小 Bug 可能會影響到後續的開發,造成更大的浪費。所以看到問題但可能無法解決時,可以先拋出來討論,看如何解決,而不是閃避它。

關於提問、溝通

  • 不要因為自尊或怕覺得自己很廢而不敢提問,Senior 工程師就是寫程式路上最好的師父,讓自己以學習的健康心態來問問題。如果一間公司覺得提問的人就是不好的工程師,那應該也不是值得留戀的公司。
  • 提問的內容除了確認產品 Spec、確認功能 Interaction 之外,跟主管討論技術性問題也是有必要的,所謂技術性問題可以包括三個階段:
  • (1) 思考功能如何開始實作時,可以跟主管討論組件、資料夾、命名如何規劃,也可以討論用什麼技術實現,中間可能會遇到什麼問題並預先思考 Solution 等等。
  • (2) 在實作中間遇到的問題,問題可能千奇百怪,有些是明明知道怎麼寫卻一直有錯誤、有些是根本就沒有頭緒、有些是寫到一半發生沒有預期到的錯誤。這些請務必提出討論,當然也可以花一些時間自己解,但請給自己一個時間底線,例如半小時或一小時,解不出來就馬上提出。
  • (3) 功能完成了,但想知道有沒有更好的做法可以優化,可以在 Code Review 時確認。這點算是 Option,但一個成功的工程師通常會希望自己的 Code 可以寫得更好。
  • 學習到的新知識、技術也可以跟主管討論,看有沒有機會在專案中嘗試。

結論
要成為一個好的工程師從來不是一件簡單的事,除了技術本身之外還有很多要注意的。但其實說難也沒那麼難,一步一步踏實的往下走哪一天回頭一定會發現原來走了那麼遠,與大家共勉之。

關於筆者

暱稱:Eden Pan

介紹:前端工程師 - 遠距工作者 - 奶爸 我的 Medium => https://medium.com/@edenpan

文章列表 文章列表