從去年開(kāi)始不少朋友讓我?guī)兔榻B前端工程師,絕大部分忙都沒(méi)幫上,原因是真找不到人。我當(dāng)時(shí)是這么跟他們分析的:過(guò)去的客戶端以browser為主,所以html/css/javascript是唯一選擇,現(xiàn)在可是mobile first,于是大量前端開(kāi)發(fā)者被native開(kāi)發(fā)分流,以及原本想做前端工程師的后備力量應(yīng)屆生們也選擇學(xué)native開(kāi)發(fā),導(dǎo)致前端人荒。隨著情況改變,H5(HTML5的大眾昵稱(chēng))在傳播上體現(xiàn)的商業(yè)價(jià)值巨大,無(wú)論是創(chuàng)業(yè)團(tuán)隊(duì)還是巨頭自然重視這塊低成本高收益的事。好像前端開(kāi)發(fā)的春天又來(lái)了,但局面是后備人才不足,想轉(zhuǎn)前端開(kāi)發(fā)的又會(huì)發(fā)現(xiàn)貴圈比以前還亂,除了標(biāo)準(zhǔn)依然滯后,各種框架、工具冒出來(lái),沒(méi)一兩年又淘汰,過(guò)去好像會(huì)jQuery就可以混,現(xiàn)在的門(mén)檻確實(shí)高不少。沒(méi)辦法創(chuàng)業(yè)團(tuán)隊(duì)要招到優(yōu)秀的前端工程師只能靠情懷和燒錢(qián),巨頭們需要重新培育起好的技術(shù)文化吸引人才,尤其是肯花錢(qián)和時(shí)間在前端技術(shù)的培訓(xùn)、積累和創(chuàng)新上。之前有人說(shuō)web已死,現(xiàn)在看說(shuō)這話的人可以去死了。在前端技術(shù)儲(chǔ)備上加大投入,很長(zhǎng)一段時(shí)間內(nèi)都是非常值得的。
回到主題,標(biāo)題其實(shí)是病句“初學(xué)前端工程師”。前端工程師是種崗位的title,怎么用學(xué)呢。我想將錯(cuò)就錯(cuò)說(shuō)說(shuō)職業(yè)的問(wèn)題。前端社區(qū)三類(lèi)人:前端工程師、前端開(kāi)發(fā)者、“玩票”者。首先要明確前端工程師是種職業(yè),是專(zhuān)職為公司業(yè)務(wù)提供前端開(kāi)發(fā)服務(wù)的一個(gè)工種。前端開(kāi)發(fā)者意義更廣,凡是用前端技術(shù)開(kāi)發(fā)的都算,但這里我想狹義上指前端開(kāi)源社區(qū)貢獻(xiàn)者和自由前端開(kāi)發(fā)者。“玩票”者,指原本是其它語(yǔ)言的開(kāi)發(fā)者,因喜愛(ài)前端技術(shù)經(jīng)常參與社區(qū)互動(dòng)并貢獻(xiàn)開(kāi)源項(xiàng)目的人。前端工程師和后兩者的主要區(qū)別就是——職業(yè)性,后兩者主要關(guān)注和解決通用問(wèn)題(提高前端開(kāi)發(fā)的生產(chǎn)力啊、推進(jìn)標(biāo)準(zhǔn)的實(shí)現(xiàn)和發(fā)展啊),而前端工程師的職能是解決所在公司的產(chǎn)品開(kāi)發(fā)中的前端工程問(wèn)題(工程和技術(shù)是不同概念,之前我分享過(guò)一個(gè)關(guān)于什么是前端工程的話題,在這里)。明確定義后,開(kāi)始談?wù)勎易隽诉@么多年前端工程師的一點(diǎn)感受。
“他是我見(jiàn)過(guò)的最好的前端工程師”,這是多年前一位前同事對(duì)我的評(píng)價(jià),我自己會(huì)克制的在后面加上“之一”。如果他說(shuō)的是“最好的前端開(kāi)發(fā)者”,我絕對(duì)不會(huì)接受這種評(píng)價(jià)。我的github如此冷清,編程上也沒(méi)有突出的才能,也沒(méi)貢獻(xiàn)過(guò)任何有影響力的開(kāi)源項(xiàng)目。但我覺(jué)得自己是很好的前端工程師,我參與的產(chǎn)品開(kāi)發(fā)效率很高,對(duì)技術(shù)發(fā)展很敏感,很少走偏,多少還有點(diǎn)前瞻性。身在一線,對(duì)技術(shù)上的或人上的問(wèn)題看的比較準(zhǔn)。共同之處:追求更好更有效的解決工作上的實(shí)際問(wèn)題。我不會(huì)盲目追求“最流行”的技術(shù),更不會(huì)把它強(qiáng)加給產(chǎn)品,除非我覺(jué)得它真的適合這個(gè)項(xiàng)目,切實(shí)解決問(wèn)題為導(dǎo)向。剛到豆瓣時(shí),我問(wèn)自己:豆瓣產(chǎn)品前端的最大問(wèn)題是什么?不是統(tǒng)一UI、不是搞個(gè)新框架,而是要通過(guò)建全基礎(chǔ)設(shè)施,改變開(kāi)發(fā)方式將原來(lái)集中式的業(yè)務(wù)代碼徹底解藕才是癥結(jié)。這里面有技術(shù)問(wèn)題還有跨角色合作的問(wèn)題,因此不能孤立前端團(tuán)隊(duì),搞合作不搞對(duì)立。當(dāng)時(shí)組建的通用工具組集合了各種背景的資深工程師,一起討論方案,成果對(duì)后面支撐公司業(yè)務(wù)的快速發(fā)展起到了重要作用。做這些事情要忍耐默默無(wú)聞、要經(jīng)常跳出自己的舒適區(qū),到另一個(gè)不熟的領(lǐng)域甘心當(dāng)小白,目的只有一個(gè)——切實(shí)有效的把產(chǎn)品中的問(wèn)題解決掉。對(duì)個(gè)人而言,通常這么做可以收獲到更多更深刻的經(jīng)驗(yàn)和知識(shí),所以我也樂(lè)此不疲。不理解的人或許會(huì)覺(jué)得這人不牛逼啊,別人的看法不重要,收獲到實(shí)實(shí)在在的有價(jià)值的東西才是硬道理。新人不該看重虛名,裝逼不健康。沉浸到每一個(gè)項(xiàng)目中(別。挑。活),做到具體問(wèn)題具體分析,不生搬硬套,獨(dú)立思考,虛心交流一定會(huì)快速成長(zhǎng)起來(lái)。不要拿追求“完美”當(dāng)幌子,不愿做沒(méi)技術(shù)含量的事,這樣的話干脆別干前端了。
擁抱變化是我在前公司工作時(shí)被灌輸?shù)膬r(jià)值觀。對(duì)于剛走上前端工程師崗位的同學(xué)們來(lái)說(shuō),要慢慢習(xí)慣前端技術(shù)的快速變化,并且擁抱它。要stay hungry, stay foolish。其中也有重點(diǎn),在不易變的方向上多花時(shí)間學(xué)習(xí)越深入越好,不糾纏、執(zhí)著于那些易變的東西。對(duì)新技術(shù)始終保持好奇心。
工具是最易變的,工具包括從各種庫(kù)、框架到構(gòu)建工具、編輯器等等。我對(duì)工具的態(tài)度是實(shí)用至上、喜新厭舊。對(duì)于新人來(lái)說(shuō)盡可能多的體驗(yàn)各種工具沒(méi)壞處,從工具的設(shè)計(jì)思想上也能學(xué)到不少知識(shí),但是要清醒的認(rèn)識(shí)到,會(huì)用很多工具不是工程師核心的開(kāi)發(fā)能力,也不是個(gè)人的核心競(jìng)爭(zhēng)力。
前端技術(shù)本身的變化是演變,不像工具那樣完全棄用變成全新的。比如多花些時(shí)間學(xué)習(xí)CSS2.1一點(diǎn)都不會(huì)浪費(fèi),多研究一些Javascript的基礎(chǔ)特性也不會(huì)輕易過(guò)時(shí)。然后有預(yù)見(jiàn)性的學(xué)習(xí)新技術(shù),在項(xiàng)目中積極擁抱新標(biāo)準(zhǔn),比如ES6。幸運(yùn)的是現(xiàn)在有大量工具讓我們可以提前在產(chǎn)品開(kāi)發(fā)中應(yīng)用新標(biāo)準(zhǔn)。
開(kāi)發(fā)思想不存在過(guò)時(shí)的問(wèn)題,這些需要在長(zhǎng)期的開(kāi)發(fā)實(shí)踐中不斷的總結(jié)、反思,比如分離關(guān)注點(diǎn)是70年代提出的,從它衍生出很多開(kāi)發(fā)理念,它永遠(yuǎn)不會(huì)過(guò)時(shí)。這些好像很“虛”的東西,在駕馭復(fù)雜的項(xiàng)目中非常有用。
我覺(jué)得前端工程師是所有工程師角色中最有也最需要“工匠精神”的。前端工程師的基本職責(zé)就是還原設(shè)計(jì),把一個(gè)躺在設(shè)計(jì)圖上的死的設(shè)計(jì)變成可以用的活的設(shè)計(jì)。所謂“工匠精神”體現(xiàn)在這個(gè)“活”字上。可視方面,一個(gè)動(dòng)畫(huà)的過(guò)程是否順暢,一個(gè)交互動(dòng)作全部狀態(tài)是否都做到位,適配上是否足夠靈活。代碼方面,一段通用代碼是否足夠通用,代碼冗余是否最小,性能是否足夠快等等。簡(jiǎn)單的實(shí)現(xiàn)是最低要求,剩下的部分產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理不會(huì)要求,那是優(yōu)秀的前端工程師發(fā)揮的空間。前端工程師的成長(zhǎng)就是一個(gè)修煉的過(guò)程,修煉的開(kāi)始就是在學(xué)會(huì)了那些書(shū)本上可以學(xué)到的編程知識(shí)后。在前端工程師的素質(zhì)中,我認(rèn)為應(yīng)用能力是最重要的。這種應(yīng)用能力可看成是一種產(chǎn)品的塑造能力,前提要有產(chǎn)品思維和設(shè)計(jì)思維,能自主發(fā)現(xiàn)并彌補(bǔ)產(chǎn)品、設(shè)計(jì)的空白和不合理環(huán)節(jié),可以很好的控制代碼的復(fù)雜度,高效高質(zhì)量的完成開(kāi)發(fā)需求。提升這種能力,紙上談兵不行,只能在各種項(xiàng)目中摸爬滾打,如同醫(yī)生不斷積累臨床經(jīng)驗(yàn)一樣。如果公司項(xiàng)目不能滿足,就自己找項(xiàng)目做。我在剛畢業(yè)的時(shí)候,接過(guò)不少私活,通常這類(lèi)項(xiàng)目發(fā)揮空間大。
每個(gè)開(kāi)發(fā)團(tuán)隊(duì)都有自己的一套游戲規(guī)則:代碼規(guī)范、code review、git或svn的用法、開(kāi)發(fā)流程等等,先按照規(guī)則玩,再想著如何添磚加瓦。團(tuán)隊(duì)意識(shí)是一種職業(yè)態(tài)度。在一個(gè)好的團(tuán)隊(duì)里工作會(huì)很開(kāi)心,團(tuán)隊(duì)會(huì)促進(jìn)個(gè)體更快的成長(zhǎng)。但一個(gè)好團(tuán)隊(duì)也是靠所有個(gè)體共建。不要抱怨自己所在的團(tuán)隊(duì)不夠好,用更開(kāi)放的心態(tài)分享和交流,慢慢的一個(gè)好的氛圍便會(huì)形成。
最后再說(shuō)說(shuō)前端工程師的態(tài)度問(wèn)題。前端技術(shù)發(fā)展很快,因此要不斷學(xué)習(xí),不應(yīng)該輕易自滿。之前在知乎里回答過(guò)一個(gè)問(wèn)題,我是這么寫(xiě)的:“程序員容易陶醉在自己的代碼中,甚至有某種自戀。我也有過(guò)這種時(shí)候,我甚至認(rèn)為不夠自戀就不是好程序員,藝術(shù)家沒(méi)有不自戀的。但如果跳出自己的世界看,你寫(xiě)出來(lái)的東西到底價(jià)值有多大,產(chǎn)品因此成功?到底能影響什么,一二個(gè)同事,一個(gè)團(tuán)隊(duì),整個(gè)行業(yè)?跟心目中大神的差距?這個(gè)時(shí)候會(huì)冷靜一些,原來(lái)只是比以前的自己進(jìn)步一些而已。”
前面并沒(méi)有說(shuō)成為一名優(yōu)秀的前端工程師具體應(yīng)該學(xué)習(xí)什么技術(shù),會(huì)不會(huì)有些失望?因?yàn)榫唧w的技術(shù)會(huì)變,不變的是那些特質(zhì)和觀念。希望我的分享對(duì)新入行的前端工程師有所啟發(fā)和幫助。
-
工程師
+關(guān)注
關(guān)注
59文章
1573瀏覽量
68680
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web3/M00/05/24/wKgZPGd9BIKAasMYAAP9Ml_injM792.jpg)
不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過(guò)于真實(shí) #YXC晶振 #揚(yáng)興科技
![](https://file1.elecfans.com/web3/M00/03/3A/wKgZPGdlPVGAXA8HABFHYewc6WA055.png)
笑死,掌握一眼識(shí)別資深硬件工程師的訣竅了!# #電路知識(shí) #電工 #硬核拆解
![](https://file1.elecfans.com/web1/M00/F3/FA/wKgaoWciDI6ABdEhAAJtvu-cw_c556.jpg)
當(dāng)你的工程師朋友失聯(lián)時(shí),別氣,ta真的是在忙工作 #搞笑 #電子愛(ài)好者 #硬件工程師 #晶振 #揚(yáng)興科技
![](https://file1.elecfans.com/web2/M00/07/FB/wKgZombz6VuAFeotAAIjSCj1HKI007.jpg)
硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師
FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?
![](https://file1.elecfans.com/web2/M00/FF/40/wKgaomahti2AV26dAAMiNIjdnKg435.jpg)
![](https://file1.elecfans.com/web2/M00/FE/5C/wKgaomaaQAGASltQAAbqv2SgV1E642.png)
![](https://file1.elecfans.com/web2/M00/EB/14/wKgaomZXAd-AWEwjAAuV2RdwuSM130.png)
干硬件這一行,各種辛酸只有同行才懂吧 ? #電路設(shè)計(jì) #電子愛(ài)好者 #硬件工程師 #電子工程師
嵌入式軟件工程師和硬件工程師的區(qū)別?
![](https://file1.elecfans.com/web2/M00/E5/09/wKgZomZB1aqAfoLMAALwKMk88bw153.jpg)
電子工程師常見(jiàn)面試題(二)看看你能答對(duì)幾道吧#電子工程師 #電子工程師面試 #電子信息 #電工
![](https://file1.elecfans.com/web2/M00/DF/FB/wKgZomY1H9uAdzzJAAMwQMmJ0js548.jpg)
“班長(zhǎng)!說(shuō)好畢業(yè)后當(dāng)硬件工程師,你怎么..." #搞笑 #電子行業(yè) #電子工程師 #晶振 #揚(yáng)興科技
![](https://file1.elecfans.com/web2/M00/DE/DE/wKgZomYwuQ-AegjsAAISSibiD4I286.jpg)
![](https://file1.elecfans.com/web2/M00/C5/1E/wKgaomXxdsmAENR6AAKEdyutPEU736.jpg)
一位硬件工程師的歷練之路:從入門(mén)學(xué)習(xí)理論到... #搞笑 #硬件工程師 #電子工程師 #揚(yáng)興科技
![](https://file1.elecfans.com/web2/M00/C1/DF/wKgZomXfAbCATSsHAA8xXbkMaK8112.png)
![](https://file1.elecfans.com/web2/M00/C1/46/wKgaomXUeXuAXDwNAAJ_XqvplMU996.jpg)
評(píng)論