一個(gè)自學(xué)前端的4年工作總結(jié)【三十而立,拒絕躺平】
點(diǎn)擊關(guān)注上方“Stephen”,
設(shè)為“置頂或星標(biāo)”,第一時(shí)間送達(dá)干貨
作者:海闊_天空
https://juejin.cn/post/7139463067792277534
關(guān)于我
中部不知名二本畢業(yè),半路轉(zhuǎn)前端,2018 年 9 月入坑,如今整四年,目前就職于一家中型公司
為什么走編程這條路?
其實(shí)是沒有選擇, 有時(shí) 沒有選擇,就是最好的選擇
這一路走來,笑過痛過,開心過也失望過,擁有過,也失去過
壯志未酬
很早就給自己定下了目標(biāo):兩年月薪 20k+,三年進(jìn)大廠(目標(biāo) top5 的互聯(lián)網(wǎng)公司)
第一個(gè)目標(biāo)很快就實(shí)現(xiàn),第二個(gè)目標(biāo)卻陷入了屢敗屢戰(zhàn)的死循環(huán)中
大廠絕緣體
大廠面了近 10 次,都是專家崗,到了這個(gè)年紀(jì)再面普通開發(fā)崗,可能連面試機(jī)會(huì)都不給
2 次面阿里,都是 hr 面掛掉;1 次面美團(tuán),也是 hr 面掛。最近 1 次是面京東,到手的 offer 因?yàn)椴脝T影響停止了招聘
收到的 offfer 有:小米、網(wǎng)易、喜馬拉雅、叮咚買菜等
阿里面試官后來也給我交了心:技術(shù)沒問題,但 hr 覺得你的學(xué)歷與履歷,與其他競(jìng)爭(zhēng)者相比沒有優(yōu)勢(shì)?,F(xiàn)在大環(huán)境不好,應(yīng)聘的人多,公司的要求更高了
我理解,很感謝他給我說這些話
夜很黑,路還很長(zhǎng)
站在風(fēng)口上的豬
時(shí)間回到 2018 年 9 月
我是半路出家轉(zhuǎn)前端,邊工作邊學(xué)習(xí)的情況下,自學(xué)了三個(gè)月時(shí)間,很順利就找到了前端的工作,還是甲方
我戰(zhàn)戰(zhàn)兢兢給 hr 要了 10k,令我意外的是,最終給了我 11k
能拿到 offer,我覺得有幾方面原因:
1)當(dāng)時(shí)前端正處于蓬勃發(fā)展的時(shí)期,vue 和 react 框架的成熟,給壓抑了十幾年的前端,帶來了一次脫胎換骨的巨變,而我只是踩在了這個(gè)風(fēng)口上
俗話說,站在風(fēng)口上,豬都能上樹,可能我就是那頭豬
2)我的大學(xué)同學(xué)在關(guān)鍵時(shí)刻,給我指明了方向,這些指引讓我了解市場(chǎng)所需,有針對(duì)性的學(xué)習(xí),在最短的時(shí)間達(dá)到入門的效果
混沌期
熬過去,活下來
工作第一天
雖然面試我混進(jìn)去了,但一開始工作,就把我打回原型
第一天上班,開始上手寫代碼大家就知道了我的水平,同事讓我調(diào)接口,我膽怯的說沒有調(diào)過接口,同事一下子就不說話了……
領(lǐng)導(dǎo)找我談話:我知道你的水平差,也沒想到這么差。我說希望給我一個(gè)月時(shí)間,如果到時(shí)候我還不能完成工作,就主動(dòng)離職
領(lǐng)導(dǎo)可能被我的真誠(chéng)打動(dòng)了,他同意了。這一個(gè)月,也是給我的最后期限,我心里完全沒底
工作第一天的晚上,就背著電腦去找朋友,讓他給我講項(xiàng)目
那一個(gè)月我?guī)缀醵际橇璩恳粌牲c(diǎn)才睡,早上六點(diǎn)多點(diǎn)就起床寫代碼
整個(gè)人是極度亢奮或者說是亢奮到麻木的地步
不知道困,也不知道餓
最終我的表現(xiàn)還是獲得了領(lǐng)導(dǎo)的信任,漸漸勝任了工作,算是在前端這個(gè)行業(yè)站住了腳
是的 我活下來了
上升期
量變引入質(zhì)變
團(tuán)隊(duì)的變化:加入了技術(shù)更強(qiáng)的團(tuán)隊(duì),后來團(tuán)隊(duì)中有人去了阿里、小紅書、攜程等 人員的擴(kuò)展:前端從原來的 3 人變成 15 個(gè)人的團(tuán)隊(duì) 項(xiàng)目的增多:從原來 2 個(gè)項(xiàng)目,變成了幾十個(gè)項(xiàng)目,最多時(shí)手里同時(shí)在跑十幾個(gè)項(xiàng)目 用戶的增長(zhǎng):從幾百用戶增長(zhǎng)到了百萬級(jí)用戶
項(xiàng)目的增多,給予的技術(shù)自由度也就更高,各種新技術(shù)都可以嘗試,不限制使用 vue 或 react
業(yè)務(wù)的擴(kuò)展,可以接觸到更多的場(chǎng)景,涵蓋了 pc、h5、小程序、app 的混合開發(fā)等,解決了很多適配與兼容性問題
邊界的擴(kuò)展,還搞了幾個(gè)純后臺(tái)的 node 抽獎(jiǎng)項(xiàng)目,學(xué)會(huì)了如何操作數(shù)據(jù)庫(kù),如何解決高并發(fā)、接口如何防刷等等
隨著用戶的增多,項(xiàng)目的性能與持續(xù)優(yōu)化就變成的異常重要
一百用戶與一百萬用戶的網(wǎng)站有著本質(zhì)區(qū)別,任何細(xì)節(jié)都變得更為重要
一個(gè)最常見的例子:商城項(xiàng)目的長(zhǎng)列表渲染優(yōu)化,長(zhǎng)列表渲染的性能效率與用戶體驗(yàn)成正比
用到的技術(shù)包括:分頁+虛擬滾動(dòng)、圖片懶加載、圖片的動(dòng)態(tài)裁剪等等
在挑戰(zhàn)中成長(zhǎng)
開始第一次負(fù)責(zé)大型網(wǎng)站的系統(tǒng)架構(gòu)、性能分析、網(wǎng)站優(yōu)化、網(wǎng)站監(jiān)控等方面
開始慢慢理解前端,開始注重用戶體驗(yàn),逐漸學(xué)會(huì)承受壓力
瓶頸期
目標(biāo)照亮前行的路
我不是一個(gè)自制力很強(qiáng)的人,需要給每個(gè)階段都設(shè)置一個(gè)清晰的目標(biāo),否則就會(huì)掉隊(duì)
一個(gè)風(fēng)箏,必須有一根繩子牽著,大廠就是這根繩子
備戰(zhàn)大廠
前后準(zhǔn)備了 8 個(gè)月時(shí)間,把制定的學(xué)習(xí)計(jì)劃具體到天
沒有嚴(yán)格的時(shí)間限制,學(xué)習(xí)進(jìn)度和效果就會(huì)大打折扣
| 時(shí)間 | 任務(wù) |
|---|---|
| 2 個(gè)月 | 系統(tǒng)性學(xué)習(xí)了前端的基礎(chǔ)知識(shí),瀏覽器運(yùn)行機(jī)制,重點(diǎn)練習(xí)手寫 js 題 |
| 2 個(gè)月 | 練習(xí)算法,對(duì)應(yīng)數(shù)據(jù)結(jié)構(gòu)與題型分類練習(xí)!刷了一百多道 leetcode 題 |
| 1 個(gè)月 | 利用 performanc 和 Lighthouse 分析工具,結(jié)合 web vitals 關(guān)鍵指標(biāo)計(jì)算方法,制定頁面的整體優(yōu)化方案 |
| 1 個(gè)月 | 搭建自己的腳手架,創(chuàng)建 pc、h5 項(xiàng)目模板等,手寫 webpack、手寫 babel 插件等 |
| 1 個(gè)月 | 復(fù)習(xí)了 node 知識(shí),學(xué)習(xí)了網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)安全與攻擊的防御方法等 |
| 1 個(gè)月 | 復(fù)習(xí) vue 與 react 源碼,學(xué)會(huì)如何手寫一個(gè)簡(jiǎn)單的 vue |
對(duì)算法的誤解
之前我對(duì)算法的理解,僅僅是為了應(yīng)付大廠的面試
在兩個(gè)月的算法練習(xí)中,我第一次體會(huì)到:編程不僅僅是技術(shù),還是藝術(shù)
比如簡(jiǎn)單的循環(huán),就可以解決很復(fù)雜的數(shù)學(xué)問題
算法對(duì)前端來說并不是非常重要,但卻是一個(gè)優(yōu)秀前端工程師的必備技能,對(duì)于提升編碼能力有著舉重若輕的作用
開局即巔峰
先從中型公司開始面,面了叮咚買菜、喜馬拉雅,下來開始面小米和網(wǎng)易,并順利了拿到 offer
然而花朵沒有綻放就枯萎了,后來的面試卻屢屢碰壁
結(jié)果已經(jīng)知道了,阿里+美團(tuán),hr 面掛了 3 次,京東到手的 offer 飛了
有半年的時(shí)間,不是在面試,就是在面試的路上
大廠基本都是 4 輪技術(shù)面+1 輪 hr 面,多次這樣的反反復(fù)復(fù),確實(shí)很累
特別是第一次被美團(tuán)的 hr 拒絕,那感覺錐心刺骨,以為成功觸手可及,其實(shí)是海市蜃樓,一場(chǎng)空
根據(jù)運(yùn)氣守恒定律,可能前期的運(yùn)氣太好,到大廠這一步怎么都邁不過去,就像一堵透明的墻。我認(rèn)為伸手能夠到,卻每次到最接近的時(shí)候又給當(dāng)頭一棒
備戰(zhàn)大廠的結(jié)果雖然差強(qiáng)人意,但也是我目前成長(zhǎng)最快的階段
很享受這種向著目標(biāo)沖鋒的滿足感,如今,我也可以違心的說一句:過程比結(jié)果更重要
迷茫期
后面的路怎么走?
靜下來、慢下來
過去幾年我一直很焦慮,怕技不如人 怕蹉跎歲月
經(jīng)歷了這一系列挫折,漸漸認(rèn)清了自己,我還是我,不忘初心
唯有在路上才能消除心中的迷茫
用心去研究一些框架,了解其設(shè)計(jì)原理和優(yōu)秀示例的寫法
輸出一些文章,也相當(dāng)于給自己做的總結(jié),大致分為幾個(gè)系列
系列 1:源碼解讀,比如正在寫的 elementUI 組件庫(kù)系列,經(jīng)典永遠(yuǎn)是經(jīng)典
系列 2:把這兩年備戰(zhàn)大廠的10w 字筆記,整理下發(fā)出來,溫故而知新
系列 3:個(gè)人隨筆,聊聊生活,談?wù)劺硐搿?/span>
難的不是編程,難的是生活
很喜歡《士兵突擊》中的這段話
許三多:我就是一個(gè)兵
袁朗:一個(gè)很安分的兵,不太焦慮,耐得住寂寞。有很多人天天都在焦慮,怕沒得到,怕寂寞。我喜歡不焦慮的人
失與得
唯一的堅(jiān)持
這幾年,唯一做的比較好的一點(diǎn):堅(jiān)持做筆記
把遇到的項(xiàng)目難點(diǎn)、解決方案,甚至是細(xì)小的知識(shí)點(diǎn)都記錄下來。不知不覺,十萬+的字?jǐn)?shù)應(yīng)該是有的
編程的好處
程序員活在自己的世界里
電腦沒有人那么復(fù)雜,如果你的代碼寫的好,你和電腦的關(guān)系就很好相處,可以指揮電腦做你想做的事,不用去關(guān)注外邊世界的繁雜與變化
編程的弊端
溝通能力的喪失,這一點(diǎn)是我這一年多才意識(shí)到的
可能是工作性質(zhì)的原因,平時(shí)也不太需要怎么溝通,辦公室哪怕一天不說話,也沒啥問題。時(shí)間長(zhǎng)了,感覺自己都得了“失語癥”
嘴的作用在淡化,任何技能都需要練習(xí),溝通的技能在代碼世界中,一天天喪失掉了
我在大學(xué)里做過班長(zhǎng),交際溝通能力還算不錯(cuò),到現(xiàn)在竟然落下了“殘疾”
三十歲的人,與社會(huì)的人打交道,怎么感覺自己還是個(gè)學(xué)生模樣呢
還有朋友圈的固化,想想微信快一年沒加過好友了吧,哎,要認(rèn)真反思了
越往上走,越發(fā)現(xiàn)溝通能力的重要性
選擇大于努力
上個(gè)月,我最好的朋友也離開魔都了,對(duì)于這個(gè)結(jié)果深感無奈又并不覺意外
他這幾年一直還是測(cè)試,工資沒漲多少,而我已經(jīng)漲了 3 倍(也只是中等水平)
他畢業(yè)于一本的大學(xué),當(dāng)時(shí)和我一起入職,是公司招的第一批本科測(cè)試。加上他的學(xué)歷高,人緣好,溝通能力強(qiáng),公司也把他當(dāng)成骨干培養(yǎng)
傳統(tǒng)測(cè)試的天花板很低,后來雖然都升了測(cè)試組長(zhǎng),但工資與開發(fā)的差距越拉越大
我要走了,勸他也轉(zhuǎn)行做開發(fā),他猶豫后拒絕了,因?yàn)樗呐笥丫褪俏覀児镜模幌敕珠_,覺得現(xiàn)在的生活挺好的
現(xiàn)在,壓彎他最后的一棵稻草,是談了 4 年的女朋友分手了,他覺得魔都對(duì)他沒有任何留戀的地方了
從他的語氣中,感覺他變化很大,很焦躁,雜著嘆氣與牢騷
他帶著滿心的遺憾與失望走了,不知到底是女朋友把他拋棄了,還是生活把他拋棄了?
假如他也做了編程,以他的學(xué)歷與聰明程度,他現(xiàn)在的境遇又是怎么樣呢?
有的人來了 有的人走了
鳥兒飛過天空 天空卻沒有留下翅膀的痕跡
結(jié)語
我不是一個(gè)努力的人,但我又是一個(gè)一天不學(xué)習(xí)就渾身難受的人
我不是一個(gè)樂觀的人,但我又是對(duì)明天充滿希望的人
END
關(guān)注 Stephen,一起學(xué)習(xí),一起成長(zhǎng)。
點(diǎn)“在看”支持下吧
點(diǎn) 閱讀原文 可優(yōu)惠充值話費(fèi),流量,視頻會(huì)員等。
