十三年老程序員,跟你聊聊前端

我叫定安,“提筆安天下,上馬定乾坤”的定安!34歲,半只腳步入中年?;仡欉^去十多年的職業(yè)生涯,我此起彼伏,于是乎我有一個想法,做一些總結(jié),也看一眼未來的規(guī)劃。接下來我會用兩部分內(nèi)容說明一下,我對前端的理解和前端職業(yè)應該如何規(guī)劃;
第一,我結(jié)合自身的親身經(jīng)歷來講述我在前端職業(yè)生涯中是怎么一步步走過來的。
第二,我會結(jié)合切身經(jīng)歷來聊一聊我對前端這個職業(yè)的看法,以及我對整個前端未來的看法。
每個人的經(jīng)歷必然都是不同的,如果我的觀點和你的理念存在爭議,希望大家能夠求同存異,如果你能從中得到一些靈感那不勝榮幸!
親身經(jīng)歷
莽夫的童年
和大部分山區(qū)、農(nóng)村的孩子一樣,從小的家庭教育,導致我對學習沒有明確的認知,所以上學時沒有好好讀書,大學馬馬虎虎上完,就出來折騰。所幸喜歡玩游戲,愛搗鼓電腦,所以和電腦結(jié)下了不解之緣。我從小性子倔,游戲不喜歡認輸,也愛鉆研,所以一般的游戲我都是高手。這份小自豪,也讓我覺得自己什么都能干,什么也敢挑戰(zhàn),現(xiàn)在說起來就是——莽夫!也是這樣的性格決定了我后續(xù)的職業(yè)生涯。
開端:幸運與努力
我的第一份工作來的非常有趣,是一個中外新聞社,他們要招網(wǎng)絡管理員,就是開發(fā)網(wǎng)站,然后發(fā)布文章,甚至還要處理一些圖片后期。當時,面試這個崗位的人挺多的,而且學歷都比我高,我是朋友推薦過去的。非常巧的是,在面試時,新聞社的社長電腦總是藍屏,攝像頭也不怎么好使,我因為上學那會經(jīng)常給同學做系統(tǒng)修電腦,我就幫他弄好了,然后問我會不會做網(wǎng)站,我其實當時啥都不懂,但我覺得這是一個機會,我想了不到1秒鐘,我就回答說會做。當時這個社長就讓我試用一個星期,如果沒問題就可以正式去上班了,試用期給我安排的第一個工作就是要做一個新聞的專題頁。
記得當時還是用dreamware來寫頁面,頁面布局還用的是表格布局,那一周每天晚上去網(wǎng)上找資料學習,那時的資料少的可憐,很多資料都是要收費的,最后下血本買了一些,從網(wǎng)上找了一些,每天搞到凌晨1、2點,還真就在一個星期內(nèi)給搞出來。搞出來后就開始要維護他們當時的網(wǎng)站,是用php寫的,又開始學php和mysql,兩個月時間就這樣邊學邊實踐,最后終于可以把這攤事情hold住了。這次的經(jīng)歷,我深刻的認識到人的潛力真的非常大,有時候你不逼一下自己,你都不知道自己有多牛逼。也是從這個時候開始進入網(wǎng)站開發(fā)這個行業(yè)了。
北漂:學習與機會
我2010年來的北京,在北京找的第一份工作是一個莆田系的醫(yī)院,剛來北京的時候工資很低,一個月2000多,但是包吃住,但一切以先活下來為主要目的。我到這家公司的時候,他們也是剛成立,一切都處于從零開始的狀態(tài)。當時電腦都是我從京東上買零件,然后自己攛出來的,辦公室的網(wǎng)線是我拉的,網(wǎng)站是從零到一開發(fā)出來的。這些前期的零零散散的工作大概用了一個多月,一切都跑順后,醫(yī)院開始正常運轉(zhuǎn),當時是需要在百度上做推廣的,也就是sem,但是找了2、3個人都沒搞好,后面老板讓我學著試試,于是又開始學 seo和sem,學了大概一個月,開始嘗試著做,經(jīng)過了一個月的實踐總結(jié),然后就開始能盈利了。后面越做越大,每天操作的sem賬戶消費大概能到上萬級別。在這家公司干了有2年時間,學到了很多東西,比如他們醫(yī)院的運作模式,訪談節(jié)目怎么做,網(wǎng)絡營銷怎么做等等,后續(xù),覺得沒啥意思就想要出去看看,收入也能支撐我在外面租房生活。
創(chuàng)業(yè):熱忱與認知
當時,內(nèi)心充斥著創(chuàng)業(yè)干一番大事的激情,但我清楚的知道真想要成事欠缺的東西還很多,所以當時就找了一家營銷公司,就是幫其他企業(yè)出策劃方案的,這家公司還是有點實力,當時暴龍、思念、雅閣等很多的全案策劃都是找他們做的,我就想去這家系統(tǒng)性的學習一下,一個產(chǎn)品是如何推向到市場并且盈利的。我當時在這家公司的職位是網(wǎng)絡主管,主要做一些網(wǎng)站的開發(fā),公眾號的開發(fā)等等。在本職工作外,跟他們學產(chǎn)品的定位,人群畫像,市場營銷、品牌包裝等等。在這家公司算是對公司運營、對產(chǎn)品運營有了一個清晰的認識。有了之前的經(jīng)歷,趕上14年開始的全民創(chuàng)業(yè)潮,也隨著這波浪潮折騰了三年,做過O2O洗車、O2O醫(yī)療等等,這時才開始意識到,想要真正的創(chuàng)業(yè)不是簡單的有一些理論就能成功的。心態(tài)、人脈、資本等等這些細節(jié)都會成為限制你成功的因素。這三年非常辛苦,但是是我覺得職業(yè)生涯中最有趣的一段經(jīng)歷,每天腦子里都是一些天馬行空的想法,然后把這些方法和其他人探討落地實踐,雖然最后沒能成功,但是給我留下了非常充實的一段人生,也讓我對于創(chuàng)業(yè)有了更全面深刻的了解,同時也結(jié)識了一群非常有趣的創(chuàng)業(yè)伙伴。
穩(wěn)定:積累與思維
18年結(jié)婚,因為要還房貸,需要一個相對穩(wěn)定的工作。所以去了汽車之家,真正的前端深入應該說是從這段工作開始的。入職汽車之家的時候是高級前端開發(fā)的職位,做數(shù)據(jù)可視化項目。當時思維還沒有從一個創(chuàng)業(yè)者轉(zhuǎn)變?yōu)榇蚬ふ?,所以跟上級相處的并不好。這個沖突的解決契機是,當時董事長有一個想法,要做一個三維的數(shù)據(jù)圖表,這個活難度還是挺大的,團隊中沒人愿意接,最后我就給接下來了。接下來后,在市面上調(diào)研了一圈,沒有可重復使用的輪子,那就只能自己造,最終鎖定的是用three.js 來實現(xiàn),之前也沒有相關(guān)的經(jīng)驗,只能買書、查資料一步步的試。歷經(jīng)一個月從零到一就給實現(xiàn)出來的,團隊也因此得到了董事長的獎勵,領(lǐng)導也開始認可我的技術(shù)能力,開始分配一些管理方面的工作,從那時開始虛線帶團隊,負責團隊的架構(gòu)工作。一些有挑戰(zhàn)的項目,一些前沿的技術(shù)我會打頭陣,把整體的框架建立起來,然后將細節(jié)部分的實現(xiàn)分配給其他小伙伴。在這個過程中,積累了大量的編程知識,同時也獲得了團隊所有人的認可。同時也認識到,創(chuàng)業(yè)不一定要自己成立公司才能算創(chuàng)業(yè),基于平臺把一件事做好其實也是一種創(chuàng)業(yè),從此開始轉(zhuǎn)變思維。從汽車之家出來就想找一個獨角獸公司,通過期權(quán)或股票來實現(xiàn)財務夢想,先后在幾家公司做技術(shù)負責人和技術(shù)聯(lián)創(chuàng),但又趕上了資本寒冬和全球局勢緊張,公司活下來都成了問題,所以,現(xiàn)在需要沉下心將之前的收獲好好沉淀一下,并認真的研究一下未來的發(fā)展規(guī)劃。
職業(yè)規(guī)劃
我分析了自己性格中的讓我受益的部分,也想分享給大家,希望大家也能從中獲益
敢于接受挑戰(zhàn):人與人之間的分水嶺,可能也就差那么一兩次挑戰(zhàn),躍過去以后,你可能發(fā)現(xiàn)后面海闊天空。同時這也決定了你看待問題的方式,你能否能從困難中看到的更多機會。
滿招損謙受益:當你很菜的時候,你身邊都是菜雞,如果你習慣從他們身上找優(yōu)越感,那么你永遠不會有很大的進步,只有你真正的有本事后,你就會發(fā)現(xiàn),你要學到東西太多了,多到你根本學不完,就拿前端來說,vue全家桶、react全家桶、構(gòu)建工具、ts、領(lǐng)域知識(數(shù)據(jù)可視化、3D)、多人協(xié)同、直播、vr、xr、小程序、app、桌面端、低代碼、在線編輯器等等,這么多的東西,單說一個vue你做到精通了嗎?所以你要對自己有個清晰的認知,你才能知道你欠缺的是什么,你要如何去補足自己的短板。
不要給自己設限:不要僅僅把自己定位成一個前端開發(fā),未來充滿了不確定性,如果前端行業(yè)不行了你怎么辦?所以,抱著這一個原則,哪有錢往哪干,不會就學。人生和職場上需要學習的東西太多了,你不但要在專業(yè)技能上能夠勝任,你還要學會怎么做自我管理、如果你擔任小領(lǐng)導,你還需要學團隊管理,在生活中,你要學怎么經(jīng)營你的人際關(guān)系,你還要學會理財?shù)鹊?,這些東西都是學校和父母教不了你的。只能你有了切身體會,才能形成自己的認識?,F(xiàn)在比較好的是,很多知識網(wǎng)上都有人整理出來了體系,你只要跟著學即可。當然也需要你能夠去偽存真,這都是長時間的鍛煉培養(yǎng)出來的。
我對前端的定位,劃分成了5個階段,每個階段我會從技能上和行為上來闡述,在當前階段應該具備哪些要素。
1、初中級前端
對這個階段的前端工程師,你只需要能夠完成公司安排的前端工作,就可以算是合格的了
技能要求
前端框架:vue 全家桶 或 react 全家桶,熟悉并且能夠基于此完成項目。
js:了解常用的DOM、BOM、ES 內(nèi)置對象、熟悉js語法,能夠通過js完成頁面交互。
css:各種頁面布局以及一些簡單的動效都能實現(xiàn),并能夠使用less、sass等預處理寫樣式。
git:能夠使用 git 和團隊成員協(xié)作開發(fā)。
行為要求
保質(zhì)保量完成業(yè)務需求。
管好自己,和直屬領(lǐng)導能夠配合好。
2、高級前端
這個階段,你應該是一個能夠獨當一面的前端工程師了,能夠完成絕大多數(shù)前端需求,針對一些沒有用過的庫或框架,可以快速入手,并應用到項目中。同時還要肩負起指導新人的職責。
技能要求
初級工程師具備的所有技能
構(gòu)建工具:熟悉項目中使用的打包工具 如 webpack、rollup等,針對項目的定制化需要,可以通過配置或開發(fā)插件來解決,并開始關(guān)注網(wǎng)站的性能,知道從哪些方面可以優(yōu)化這些性能。
了解 C/S 的運行原理:開始了解網(wǎng)絡協(xié)議、瀏覽器渲染流程、緩存策略、網(wǎng)關(guān)等原理方面的知識
大量接觸并學習第三方庫,如數(shù)據(jù)可視化中的 echart、d3,如游戲 pixi、Tween 等等
移動端開發(fā)| 小程序開發(fā):能夠使用框架或原生 來開發(fā)移動端頁面和小程序。
行為要求
能夠獨立完成一些有難度的項目,并有攻關(guān)技術(shù)難點的能力
技術(shù)水平和知識結(jié)構(gòu)已經(jīng)開始初具雛形,針對問題,有可以分享的觀點
協(xié)助領(lǐng)導更好的把控項目
能夠帶新人,在新人有問題時可以給與幫助
3、前端專家
這個階段,你應該對前端有了一個全面且深刻的認識。在面對需求時,能夠拿出完整的解決方案,并能夠把控整個前端項目的開發(fā)節(jié)奏,以及解決項目開發(fā)中遇到的各種問題。并且開始關(guān)注,團隊成員的培養(yǎng),以及新技術(shù)的攻關(guān)工作。
技能要求
高級前端的所有技能要求
深入框架或庫的原理,在需要時有改寫第三方庫的能力
前端工具鏈:CI\CD,jenkins、nginx、docker等有大致的了解
在某個領(lǐng)域內(nèi)積累了豐富的知識:比如3D領(lǐng)域內(nèi)、游戲領(lǐng)域內(nèi),在這個行業(yè)中可以提供成體系的解決方案
行為要求
能夠用技術(shù)驅(qū)動業(yè)務,將技術(shù)應用到產(chǎn)品中
關(guān)注團隊建設,可以合理劃分梯隊,并通過機制和制度保障團隊的戰(zhàn)斗力。
能夠站在團隊的角度,考慮整體的利益,并通過規(guī)劃來創(chuàng)造更多的價值,從而給團隊內(nèi)的其他兄弟帶來利益
有完整的知識體系,了解前端各個環(huán)節(jié)的組成及細節(jié)部分,能夠快速定位問題,并解決問題。
4、技術(shù)負責人
當你在這個階段的時候,你就不能僅僅將自己局限于前端上了,你開始接觸后端、數(shù)據(jù)庫、運維這些和網(wǎng)絡相關(guān)的所有環(huán)節(jié)。同時你要為整個團隊負責,你要有管理經(jīng)驗,保障團隊的產(chǎn)出,同時你還需要為團隊去爭取利益等等。
技能要求
數(shù)據(jù)庫:關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫都要了解,起碼知道核心能力和常用形式。
后端語言:java、node等,java起碼知道一些,但node必須是精通的,后端語言具備通用性,所以精通一門,再遷移理解另外的就比較容易。
運維相關(guān):nginx、docker、k8s、虛擬主機、分布式、網(wǎng)關(guān)等等,你需要知道大中小型公司在演變過程中,整體的技術(shù)架構(gòu)變遷是如何實現(xiàn)的。
協(xié)作相關(guān):不單需要從技術(shù)角度考慮架構(gòu)問題,你還需要從工作流上設計合理的架構(gòu),公司在不同的發(fā)展階段,你應該選擇最高性價比的方式,隨著業(yè)務的發(fā)展不斷的調(diào)整整體的架構(gòu)。
業(yè)務相關(guān):你要深入的了解,公司的業(yè)務形態(tài),基于這樣的形態(tài),考慮技術(shù)是否可以更好的賦能,比如將之前線下的形式遷移到線上等。
行為要求
你現(xiàn)在已經(jīng)是團隊的決策層了,所以你要對團隊內(nèi)的所有人負責,這個階段你需要保持更 open 的心態(tài)去學習,你要接觸行業(yè)內(nèi)的其他大佬,保持敏銳的嗅覺,找到機會點,只有這樣你才能帶領(lǐng)團隊創(chuàng)造出價值。
開始關(guān)注團隊的成長,培養(yǎng)核心骨干,適當?shù)膶?quán)力下放。
從具體的研發(fā)事務中抽身,將專門的事情安排給專門的人負責,通過制度保障團隊的產(chǎn)出。
給團隊背鍋,而不是把鍋甩下去
5、一個人就是一個團隊
這個階段,基本算是返璞歸真的階段了,你一個人就能獨立完成各種需求。這個階段要求你有敏銳的市場洞察,可以發(fā)現(xiàn)一些商機,通過技術(shù)手段快速變現(xiàn)。剛開始時,可以做一些小需求,如果其中一兩個產(chǎn)生了客觀的收益。你有兩種選擇,這兩種選擇主要看個人喜好。
一種是基于此成立公司,招人繼續(xù)做大。
另一種就是自己維護著,同時再去找一些其他的方向去做一些小產(chǎn)品。這種形式也能帶來客觀的收入,相對也很自由;
最后
一路走來真誠的希望大家能夠在此得到一些收獲。