聊聊前端工程師如果做職業(yè)規(guī)劃
大家好,這里是瀟晨,這篇文章不聊技術(shù),聊一個(gè)比較開放的問(wèn)題,程序員如何做職業(yè)規(guī)劃。
其實(shí)這個(gè)這個(gè)問(wèn)題還是比較寬泛的,因?yàn)槊總€(gè)程序員的專業(yè)能力、背景、經(jīng)歷都不一樣,所以對(duì)每個(gè)人來(lái)說(shuō)很難總結(jié)出一個(gè)普世的職業(yè)發(fā)展建議,但是如果具體到每個(gè)專業(yè),比如前端工程師,具體到某一個(gè)年齡,比如35歲前,那還是能歸納出一個(gè)比較完善和通用的職業(yè)發(fā)展建議了。
1.專業(yè)能力方面
作為前端程序員,千萬(wàn)不要只會(huì)使用某個(gè)框架或者庫(kù),因?yàn)檫@些都是會(huì)隨時(shí)變化或者更新的,人的精力是有限的,可能今天流行這個(gè)框架,明天就是另一個(gè)框架了,在說(shuō)前端技術(shù)變化這么快,可能你現(xiàn)在用的技術(shù)過(guò)1年就不那么香了。
解決方案當(dāng)然是拓展自己技能的深度,在一些核心能力上下功夫,比如源碼、數(shù)據(jù)結(jié)構(gòu)和算法,就像武俠小說(shuō)里的招式和內(nèi)力一樣,這些框架和庫(kù),都是招式,而數(shù)據(jù)結(jié)構(gòu)、設(shè)計(jì)模式、源碼架構(gòu)的思想才是你的內(nèi)力,招式打的好不好,用出來(lái)的效果怎么樣,都需要強(qiáng)大的內(nèi)里支持,招式在變化,核心的算法和優(yōu)秀的設(shè)計(jì)模式都是基礎(chǔ),這些才是不太變化的東西。
舉個(gè)栗子,react源碼中用到了大量的鏈表,比如hooks鏈表,update鏈表、fiber樹等,調(diào)度的過(guò)程使用了小頂堆,優(yōu)先級(jí)的計(jì)算使用了二進(jìn)制位運(yùn)算的融合,還有對(duì)比新老節(jié)點(diǎn)的diff算法,那大家有沒有思考過(guò)react框架為什么會(huì)使用這么多的數(shù)據(jù)結(jié)構(gòu)和算法,本質(zhì)原因就是為了構(gòu)建快速響應(yīng)的應(yīng)用,既然優(yōu)秀的工程師設(shè)計(jì)的優(yōu)秀的庫(kù)都用到了這么多數(shù)據(jù)結(jié)構(gòu)和算法,我們還有什么不學(xué)習(xí)的理由呢
在舉個(gè)例子,比如你日常開發(fā)中要優(yōu)化組件,那如果你沒有什么源碼的底層,不了解你所使用框架的運(yùn)行機(jī)制,怎么能做好性能優(yōu)化呢,比如你用的是react,你不了解異步可中斷的更新,不了解concurrent模式是怎么優(yōu)化cpu層面和io層面的設(shè)計(jì),那你肯定不能設(shè)計(jì)好一個(gè)高性能組件。
2.公司選擇方面
如果你可以選擇小公司和大公司,一定要選擇大公司,也不是說(shuō)說(shuō)小公司不好,只是大公司的平臺(tái)優(yōu)勢(shì)和跳槽勢(shì)能,還有技術(shù)的廣度、基礎(chǔ)建設(shè)上不是小公司可以比的,如果你在一家大公司覺得沒什么上升通道了可以跳到另一家頭部互聯(lián)網(wǎng)公司,只有當(dāng)你做好了充足的準(zhǔn)備,不滿足于上班拿工資,才可以加入你認(rèn)為有潛力的小公司,并且一定要拿到股權(quán),這樣才有可能翻盤。
在選擇公司方面,一定要做好充分的了解,比如公司的前景、團(tuán)隊(duì)氛圍、技術(shù)棧等等,這些都是需要考慮的地方,每個(gè)公司其實(shí)團(tuán)隊(duì)之間的差異也是非常大的,如果你有一個(gè)好的leader,那才是一件非常幸運(yùn)的事。
還有一點(diǎn),不建議去外包,也不建議去國(guó)企或者傳統(tǒng)行業(yè)做開發(fā),一是一般這些公司技術(shù)比較落后,在里面呆上幾年之后,你的技術(shù)會(huì)落后市場(chǎng)一大截,到頭來(lái)跳槽就得不償失了。
3.職業(yè)選擇方面
如果你能靜的下心來(lái)學(xué)習(xí),那不建議你轉(zhuǎn)行,生活和技術(shù)都是圍城,大家都在羨慕著別人,其實(shí)不知道其他人也水深火熱,自己的技能和專業(yè)才是你的優(yōu)勢(shì),如果能在花些時(shí)間精進(jìn)自己的能力,學(xué)些日常使用的框架的原理、源碼、學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法、設(shè)計(jì)模式等,你相對(duì)于那些轉(zhuǎn)行過(guò)來(lái)的人來(lái)說(shuō)就是天然的能力優(yōu)勢(shì)。
如果你剛?cè)肼殘?chǎng),可以選擇技術(shù)氛圍強(qiáng)的公司,不要太在意加班和薪資,畢竟學(xué)習(xí)專業(yè)能力才是你的目的,入職場(chǎng)一年必須把常用的框架和庫(kù)能夠熟練使用,第二年開始就可以深入源碼或者自己加強(qiáng)自己的核心能力,比如算法,或者自己設(shè)計(jì)一個(gè)腳手架,組件庫(kù),參與開源項(xiàng)目等。
如果你正在處于準(zhǔn)備結(jié)婚生子的階段,可以選擇一些加班較少的公司,外企也可以,畢竟著一階段需要穩(wěn)定,但是一定也不要忘記了學(xué)習(xí),技術(shù)都是日新月異,不斷學(xué)習(xí)才能脫引而出
如果你是團(tuán)隊(duì)的leader,可以考慮如何提升團(tuán)隊(duì)的效能,做好技術(shù)沉淀和輸出,管理日常的任務(wù),做好新人培養(yǎng),但是不建議你不寫代碼了,除非你認(rèn)定你以后一定是一個(gè)很好的管理人才,否則技術(shù)永遠(yuǎn)是你吃飯的硬家伙。