工具 VS 業務的 Offer,我選擇了后者
最近面了一些公司,拿到一些 offer,這些 offer 的崗位做的事情可以分為工具、業務兩種,最終我選擇了業務開發的 offer。這篇文章來講下原因。
前面一篇文章講過前端工作的五個層次:引擎層、runtime 層、工具層、業務層、搭建層。
- 引擎層:定制容器,包括 JS 引擎、渲染引擎等。一般是 C++ 來做,這類工作主要集中在跨端領域。
- runtime 層:定制前端框架、SDK。小程序和跨端引擎等都要對接前端框架,需要做一些修改。音視頻等領域需要專業的團隊提供 SDK 供業務開發用。
- 工具層:定制工具鏈。包括編譯、調試、文檔等。處理的對象是代碼,為業務開發提供工具支持。
- 業務層:實現產品需求?;谇岸丝蚣芎凸ぞ哝溚瓿僧a品經理的需求。
- 搭建層:實現搭建工具,支持拖拽的方式生成代碼,并投放到不同環境。服務對象是非開發者。
這是前端工作的大概分類。
引擎層一般是 c++ 開發或者懂 c++ 的前端開發來做,做 runtime 層的定制前端框架、做 SDK 的人也很少,大部分前端還是做業務層的開發,還有一小部分人做工具層的開發。(搭建層其實和工具層做的東西類似,只不過服務對象不是開發者)
其實我個人的話,最開始是做業務開發,但是近幾年更多是做一些工具層的事情,比如在阿里跨端團隊就是專門做工具鏈的,包括:
- 編譯:把源碼編譯成跨端引擎能跑的代碼,中間做各種 lint 和 transform。
- 調試:對接 chrome devtools 來調試跨端引擎的代碼,還有其他基于 websocket 的調試服務
- IDE:修改 VSCode 源碼來定制 UI,集成其他工具。打造一系列 VSCode 插件,輔助開發。
- 文檔和代碼生成:通過編譯的方式,由 ts 生成 markdown、c++ 和 ios 的頭文件、android 的抽象類等
因為想去華為做編程語言才離職的,但最終沒去,所以又面了一些前端的崗位,拿到了一些 offer。
這些 offer 的崗位按照前面的前端工作層次劃分,分為 3 類:
- 工具層:繼續做編譯、調試、IDE 的工具鏈,包括小程序的和 React Native 的。
- 搭建層:做可視化搭建和投放的工具。
- 業務層:常規業務開發。
最終,我選擇了去一家外企做業務開發,原因有兩個:
- 做工具鏈主要是寫 Node.js,寫組件少一些,離瀏覽器上的前端技術遠一些。而且服務的對象是開發者,不是最終產品的用戶,離用戶遠一些。我想離瀏覽器、離用戶近一些,想提升下寫組件的技能,所以想做去業務開發。
- 外企工作時長相對短一些,大概是 10 6 5 的節奏,這樣每天自己可用來學習和寫文章的時間會多幾個小時。
其實,主要還是第二個原因,比起工作內容,我覺得有更多自己的時間更重要一些。因為我已經具備了在工具領域自主探索的能力,并不需要靠做工具的工作來進入這個領域。
當然,這是我個人的一個選擇,并不是說也建議大家這樣選。
如果要給建議的話,大概有 2 個:
- 在三年左右的時候最好能進入一家大廠,在大廠你的視野和成長速度和在小公司是完全不一樣的。比如阿里的前端四大方向:IDE、Serverless、搭建、智能化,這些小公司基本不會做,只有大廠能接觸到。而且內部也有很多技術分享,可以開闊視野,豐富你自己的發展方向。
- 大廠 titile 固然可以鍍金,但是更好的鍍金方式應該是你的作品。所以下一個目標應該是打造你個人的代表作,或者是某個業務產品、或者是某個工具等都可以。
這篇文章主要是講了前端工作的分類和我對工具 or 業務的 offer 的選擇。
每個人的經歷不同,想法不同,做的選擇也會不同。如果讓你來選擇,你會想做業務多一點,還是做工具多一點呢?
【編輯推薦】