大家好,我是若川。今天分享這篇,相信讀完會有些收獲。本文經作者授權轉載,原文鏈接:https://juejin.cn/post/6980671091526074404
個人簡介
19年底12月進入字節實習, 第二年7月畢業轉正。到前幾天正好全職一周年。
進入公司前在一個普通一本大學的數學院,四年總的來說,折騰了一年前后端PHP + JQuery一把梭,折騰了一年游戲,折騰了一年AI, 最后一年本來打算考研,由于個人興趣原因放棄,轉而到字節專心做前端。感興趣的可以看這篇標題黨:我是如何從雙非非科班到大廠程序員的?
目前在字節跳動國際化電商團隊, 主要做中后臺相關的工作。目前團隊還在北京、上海、深圳招聘前端工程師,包括但不限于實習、校招、社招。感興趣歡迎翻到文末了解投遞信息。
入職這一年多來做過中臺業務、C端業務、B端業務。從0到1做過C端組件庫,目前也在折騰procode提效工具。整體而言,還是經歷了不少。
個人經歷
某中臺C端業務
經歷
正式畢業前做了一段時間的中臺支付頁面。
彼時項目草創, 需要用服務端提供的shell腳本生成一個id,然后在本地起node服務的時候還需要手動去mock一些cookie,賬號之類的, 上線前再把mock代碼去掉。
其次是當時開發的Form, 在需求開發中不斷加入了新的功能, 代碼逐漸變得難以維護。當時準備調研業界的表單方案,做一個重構。一個是當時的前端水平還有限,一個是需求緊張排不上日程。
當時還因為一些頁面組件同時承載了多個業務方,到我開發第三個業務方的時候, 需要測試和回歸的工作量也進一步加大。所以冒著風險重構拆分, 將公共的部分抽離為公共組件的形式。
感悟
當時沒有意識到,其實有很多問題反而是一種機會,這受限于當時的技術視野和能力。現在看來,可以從研發提效到質量保障推進許多方案。
比如最簡單的把需要mock改代碼的地方抽離到多環境env文件中,通過自定義webpack-plugin的方式來實現啟動時自動生成id號。
比如梳理現有業務并考慮未來變化建設C端組件庫。
使用e2e測試對覆蓋關鍵case,確保上線的質量等。
C端組件庫建設
經歷
在團隊啟動國際化電商業務前有一段時間的空窗期,感激這段時間的自己,每天像海綿一樣吸收團隊現有項目中的技術實現,學習相關技術棧,從一個對前端工程化一竅不通到具有一定的認識。
很幸運能在剛畢業的時候就有機會自主對一個C端組件庫從技術選型到開發落地,當時調研了公司內外的C端組件庫技術方案,結合我們業務的特點整理了一套技術方案。
除了實現組件庫本身, 也適當“折騰”了一下,比如當時我們習慣使用的styleguidist不支持移動端預覽, 不支持RTL[1]、暗黑模式的預覽, 為了避免重復去寫一些h5 Demo頁供UI驗收, 使用webpack的別名的方式+自定義展示容器的方式實現了styleguidist在移動端的預覽。后面產出了技術分享: 聊聊 React 組件庫的技術選型與設計
感悟
這段時間面臨了較多的技術挑戰,在完成工作的同時技術水平得到了快速的成長。搭上了業務快速發展的便車。
國際化電商中后臺業務
經歷
這是最近半年多做的一塊業務, 整體投入到業務中的一個小模塊。
技術上接觸到了微前端、中后臺低代碼搭建體系等, 針對中后臺常見的表單+表格場景折騰了一個procode代碼生成工具,目前正逐步完善中。
業務上開始了解自己負責的業務模塊的背景知識、業務數據, 參與業務的中長期規劃,合作各方角色的雙月目標。和兩三名同學一起進行該模塊的開發,跟進項目進展。
同時開始作為新人導師帶領新人融入團隊和工作中。
感悟
這個階段遇到了許多業務之外的挑戰, 個人的軟素質逐漸成為成長的瓶頸, 對于新人的培養等事情也缺少經驗。需要再多思考、多總結, 優化做事情的方式方法。
對前端技術的認識
個人目前對前端的認識主要是三駕馬車:效率、 性能和質量。
通過這三駕馬車對業務產生基本的完成需求以外的更大的價值。比如人效的提升可以支撐更多的業務需求, 性能的提升可以提高用戶的留存和在漏斗中的轉化率。質量的保證能確保用戶穩定的體驗。
除了業務開發以外的事情,基本都圍繞這三件事情來展開。
對于前端體系的認識這里不在展開,已經有太多相關的總結和結構圖。
對前端工程師的認識
一個靠譜的前端工程師不僅需要扎實的技術基礎,更需要思考技術對業務的價值。
很多事情說起來很簡單, 但少有人能做到, 比如靠譜二字, 比如
事事有回應, 件件有著落。
充分考慮工作的優先級, 有序進行。
合理排期, 及時暴露項目風險。
......
除了技術之外, 還有許多具有挑戰的事情, 比如新人的培養等等。
工作習慣建議
分享一些很普通但有用的工作習慣。
每天第一件事情
每天上班的時候,我會先看看今天的日程,有哪些必須參加的會議,占用的時間。
然后是清理待辦事項,比如目前手上有哪些需求,是否需要和合作的同學溝通當前的進展和排期。
接著估計,今天有多少可支配的時間,按照優先級規劃一下今天在不同時間段做的事情。
收錄
首先工作中遇到的一些重要文檔,我會收錄在一個個人的doc里。
按照和我相關性的高低來分類, 依次是物流 -> 運營平臺 -> 麥哲倫電商。
特別是做一個需求的時候,可能會有PRD(產品文檔)、服務端技術文檔、測試case文檔等等,為了避免需要的時候找不到文檔,及時收錄是非常有必要的。當然如果這個需求需要出前端技術文檔,可以歸攏到前端技術文檔中。
開會之前
重要會議之前必須認真閱讀文檔(一般是PRD或者技術方案),做到心里有數,帶著問題來參加會議,提高效率。
會上整理TODO, 如有必要發到群里at相關處理人。— 會后將相關文檔整理到個人的工作文檔集中,確保需要的時候能快速檢索到。
學習建議
方向
前期結合自己的工作來學習,優先學目前以及未來一段時間工作用得到的。這樣能有更多正反饋,保持學習的動力,同時也能更快地把學習轉化為工作上的產出。后期再考慮學得更加系統,建立體系化的知識。好奇心 多一點好奇心,比如工作中為了插入一個icon用到了svg,使用base64的方式無法覆蓋它的顏色,通過更改源文件的fill屬性解決了問題。那么使用svg還有哪些方式?各種方式的優缺點?如果項目使用了svgr/webpack將所有的svg作為React Component引入了, 這時候有部分svg文件又希望用base64的方式引入要怎么做?等等。再比如,每天都在跑的項目, 是如何配置的?yarn dev背后做了什么。提交的代碼經過了CI/CD。我們的項目是怎么配置CI/CD的?這些都可以在完成需求之后, 有余力的時候去學習。我們的項目本身就是一個最好的學習資料。因為它是真正的一些技術在實戰中的落地,有疑問可以請教相關同事。
深度
一個是你自己切實做的事情,從技術調研、選型到落地, 并產出分享,這是最扎實的。
廣度
可以用中午休息的時間,會議中間的碎片時間,或者需求之間一些比較休閑的時間來多看看。比如其他部門的周報,了解他們做了什么,公司內外的技術社區等。這些內容簡單瀏覽并不能學得非常深入,但是可以成為你后面做技術調研時候的想法的來源,遇到能借鑒的場景的時候,能想到它們。同時也逐漸對前端技術有一個整體的認識。
熱情
是否對于技術抱有熱情,這可能是非常重要的一點。如果對技術的熱情一般,也可以通過學習和工作最相關的技術,轉化為在工作中結局問題,來使自己獲得充實感。因為有些技術,局限于我們當前的工作用不到,可能很長時間是比較難在工作里運用的,容易打擊學習的積極性,這也是為什么更加建議從工作相關的部分入手。
開放
需要對技術抱有更加開放的態度,能接受和了解不同的技術選型、技術觀點。可以去做一些分享,讓其他人來幫你review和提出建議。
新人落地建議
每個新人必定經歷的就是熟悉公司內的基建, 到能完成中小規模的需求(針對校招、實習同學來說)。在逐漸達到這個能力的過程中,可以從一些簡單但是很有價值的事情入手, 做的需求中有沒有哪些組件是可以復用的, 抽象成公共組件?如果原來一個組件只是在你的頁面上使用,那么它的設計和通用性都沒有那么嚴格,如果是需要作為公共組件,還需要考慮哪些?前期還是集中精力在自己能力范圍內寫好代碼,對于溝通、對業務的理解都可以在能把代碼寫得相對OK之后再花心思去做, 畢竟成長具有階段性。同時可以思考自己的長處和短板,發揮長處相對來說比較容易,但克服短板可能是一個長期的過程。就我來說,我的短板在于過于焦慮,這一點從我的經歷中可以很明顯的看出。最近在慢慢讓心態變得平和一些,希望可以克服這個短板。新人比較大的一個問題就是容易有問題不及時溝通, 逞強。這一點我也是這樣,有一些同學會做的比我好些。排期上明顯不合理,遇到的問題確實自己思考了也無法解決,這時候就要尋求mentor、 其他同事、leader的幫助。
關于焦慮
我常常很焦慮,所以關于這個,可能是比較有經驗的,主要考慮以下幾點:
正視自己的成長是有階段的, 是需要時間的。
對未來需要有計劃和預估,但做事情的時候更多關注當下,這樣你會更專注,也能減少一些焦慮。
多付出。焦慮本身是一種對自己的狀態不滿意的心理,如果希望做得更好,首先要接受付出更多。要正視到付出得到回報是有延遲的。就比如各位在進入公司之前也花了一段時間準備和學習,那個時候頭上并沒有一個距離拿到字節offer還有多少的進度條。所以這件事,還是一個延遲滿足的問題。同時,可能要偶爾思考一下付出是否在一個正確的方向。比我我剛入職那會看現在寫博客很熱,也想著去寫一些博客。但是現階段更重要的還是輸入,自己的提高。付出這件事情,考慮清楚優先級和方向,持續投入,然后相信會有回報。
可能網上(主要是脈脈和知乎)會有許多關于前端和程序員35歲的焦慮, 我剛入職的時候也經歷過很長一段時間的這個焦慮。所謂狹路相逢勇者勝,我們在自己的這條賽道上付出更多些,做得更好些也就不錯了。這個階段,更多把精力放在適應工作節奏以及個人的成長上面去, 面向未來兩三年做規劃,關注成長、保持學習即可。
一起戰斗
字節跳動國際化電商(麥哲倫)團隊招新啦!校招實習皆可投遞,不打雜,可轉正,可回撈!
【加入國際化電商(麥哲倫),美好生活觸手可及】 盼望著,盼望著,字節的機會又來啦~就現在!有一個絕好的機會(麥哲倫項目)擺在你面前哦,快來找我內推吧!來這里,你的每一行代碼都在影響眾多消費者,每實現一個功能都會被商家使用。來這里,你將有機會對接字節跳動全產品矩陣,見證國際化電商業務(麥哲倫)團隊成長,支撐公司的收入增長。如果你也想和我們一起探索下一個國際化電商引爆點,在億萬級用戶的場景中應用最新技術,解決業界頂尖的技術難題!那就快來加入我們吧!各崗各級,統統都喜歡!最nice的團隊氛圍和最nice的成長機會,還等什么?快來找我內推!
【崗位類型】:前端/后端/客戶端/測試開發工程師等。
【職位地點】:北京/上海/深圳
【投遞方式】:發送郵件, 主題格式【名字+手機號碼+城市+崗位+實習/校招/社招】到xushaojun.0@bytedance.com. 可以隨時發送郵件查詢投遞進展,可以加wx: xushaojun0獲取簡歷優化建議、 面試準備建議。
參考資料
[1]
RTL: https://developer.mozilla.org/zh-CN/docs/Web/CSS/direction
最近組建了一個江西人的前端交流群,如果你是江西人可以加我微信?ruochuan12?私信 江西?拉你進群。
推薦閱讀
我在阿里招前端,該怎么幫你(可進面試群)
畢業年限不長的前端焦慮和突破方法
前端搶飯碗系列之Vue項目如何做單元測試
老姚淺談:怎么學JavaScript?
·················?若川簡介?·················
你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》多篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。
同時,活躍在知乎@若川,掘金@若川。致力于分享前端開發經驗,愿景:幫助5年內前端人走向前列。
點擊上方卡片關注我、加個星標
今日話題
略。歡迎分享、收藏、點贊、在看我的公眾號文章~