從前,有一個(gè)前端程序員,他無意間得到了一盞神燈。神燈許諾會(huì)實(shí)現(xiàn)他一個(gè)愿望。于是他向神燈許愿,希望有生之年能夠?qū)W會(huì)所有的前端技能。神燈思考了片刻,賜給了他永生。。。
“優(yōu)秀”的定義
在我們開始討論之前,答應(yīng)我,先問自己這樣一個(gè)問題:優(yōu)秀的前端工程師應(yīng)該是什么樣子呢?
如果你的答案是精通各種前端框架,或者是掌握各種前端技能,亦或者是理解用戶的真正需求,甚至是前后端通吃的全棧工程師,那么恭喜你,你的答案和我剛開始思考這個(gè)問題時(shí)的答案差不多。
的確,在前端領(lǐng)域定義優(yōu)秀,自然是精通一種甚至多種前端開發(fā)工具和框架,理解這些框架的底層邏輯,知道用戶的需求和痛點(diǎn),有屬于自己的開源項(xiàng)目和技術(shù)博客,并且寫得出一手整潔且bug free的代碼。這些優(yōu)秀的特質(zhì)令每一個(gè)前端從業(yè)者神往,但同時(shí)也令人遺憾。因?yàn)橐坏┰谀X海里形成這樣一種所謂“優(yōu)秀的”前端工程師的定義,我們就會(huì)發(fā)現(xiàn),自己似乎永遠(yuǎn)也成為不了我們自己定義的優(yōu)秀的前端工程師了?,F(xiàn)在不是,以后也不知道何時(shí)會(huì)是。這足以讓我們反思,我們做不到“優(yōu)秀”,究竟是我們自己不夠努力且沒有天分,還是對(duì)于“優(yōu)秀”這個(gè)詞的定義有問題。
別著急,讓我們先來看一看有關(guān)“優(yōu)秀前端工程師”的傳說。
優(yōu)秀前端工程師的三個(gè)傳說
1. 無所不知
還記得之前那篇前端疲勞里的這張圖嗎?
沒錯(cuò),優(yōu)秀的前端工程師掌握了這張圖上的幾乎一切。他們不受前端疲勞的困擾,他們可以跟上每一次技術(shù)更新迭代的腳步,將最新的工具和技術(shù)輕松收入囊中。大多數(shù)情況下,他們不需要查看技術(shù)文檔和手冊(cè),因?yàn)槟切〇|西好像就存在他們的腦子里。無論是寫正則表達(dá)式,還是調(diào)用API,抑或處理復(fù)雜的JS代碼,他們都能信手拈來。
2. 完美代碼
每次code review,我的內(nèi)心都很忐忑,因?yàn)樽约撼舐倚阅艿拖碌拇a即將曝光在同事的眼前。優(yōu)秀的前端工程師從來沒有這些煩惱,相反,他們的代碼往往是被作為模板來接受眾人膜拜的。簡潔,優(yōu)雅,高效。有句話怎么說來著,漂亮的不像實(shí)力派。偏偏漂亮還不夠,連注釋都恰到好處。總之就一句話,給你一個(gè)無法拒絕贊美它的理由。
3. 極度專注
在這樣一個(gè)時(shí)間被互聯(lián)網(wǎng)不斷撕裂的時(shí)代,專注早就成為了一種奢侈的品質(zhì)。而優(yōu)秀的前端便享有這份奢侈。他們似乎感覺不到疲憊,不是在寫代碼,就是在去寫代碼的路上。當(dāng)大多數(shù)人都沉迷于吃雞農(nóng)藥等游戲中時(shí),他們卻始終讓自己淪陷在代碼的世界里。請(qǐng)你給我一個(gè)他們不優(yōu)秀的理由。
傳說很難照進(jìn)現(xiàn)實(shí)
不知道你的身邊有沒有做到以上三點(diǎn)的前端工程師。這種人當(dāng)然存在,但作為普通前端的我們可能根本接觸不到他們。因?yàn)槟茏龅饺c(diǎn)中的一點(diǎn)都已經(jīng)遠(yuǎn)遠(yuǎn)不止優(yōu)秀這個(gè)詞可以形容了。 做到兩點(diǎn)或者以上的人應(yīng)該已經(jīng)不會(huì)是單純的工程師了,至少已經(jīng)是leader或者是CTO了吧。我們可以把這些傳說中的特質(zhì)視為自己的奮斗目標(biāo),但我們不應(yīng)該把“優(yōu)秀”定義的如此高不可攀,不近人情,讓大多數(shù)勤奮的前端工程師們與優(yōu)秀“絕緣”。

學(xué)習(xí)交流前端方面的技術(shù),打算深入了解這個(gè)行業(yè)的朋友,可以加下小編的前端學(xué)習(xí)裙:330336289,邀請(qǐng)碼寂靜
不管你是小白還是大牛,小編我都?xì)g迎,不定期更新最新的教程和學(xué)習(xí)方法,包括小編自己整理的一份2018最新的前端資料和0基礎(chǔ)入門教程,歡迎初學(xué)和進(jìn)階中的小伙伴。每天晚上20:00都有大咖給大家分享前端學(xué)習(xí)知識(shí)和路線方法,歡迎小伙伴加入交流
五步,讓優(yōu)秀觸手可及
1. 承認(rèn)自己不知道
是的,你沒看錯(cuò),承認(rèn)自己不知道絕對(duì)是一種優(yōu)秀的表現(xiàn)。前端技術(shù)的爆炸式發(fā)展帶來了很多創(chuàng)新的理念和極致的體驗(yàn),它早已無處不在。但同時(shí),它也讓前端開發(fā)者們處在需要時(shí)刻跟上前端發(fā)展步伐的迷茫和痛苦中。若不加判斷的追逐這種日新月異的技術(shù)進(jìn)步,就會(huì)走入什么都學(xué)了一點(diǎn),但什么都沒學(xué)會(huì)的境地。
不知道所有的技術(shù)沒有關(guān)系,你也不可能都知道。大膽的承認(rèn)自己不知道,比打腫臉充胖子假裝自己知道的人要優(yōu)秀的多。
“React好復(fù)雜啊,要加上ReactRouter和Flux才能寫大型應(yīng)用”
“嗯嗯,我也這樣覺得(內(nèi)心:React是什么。。。)”
“那你平常用React做什么?“
“。。。(卒)。。?!?/p>
2. 新技術(shù) != 合適的技術(shù)
你可能不止一次的聽到過這樣的嘲諷:“什么?你還在用Gulp?太過時(shí)啦,現(xiàn)在大家都用Webpack,比Gulp好用多了”。我不知道這種嘲諷有什么道理。新的技術(shù)就一定比原來的好?
脫離了實(shí)際的應(yīng)用場(chǎng)景去評(píng)價(jià)工具的好壞就是耍流氓。我們學(xué)習(xí)和使用新的技術(shù),一定不能只是因?yàn)樗滤犰?,而是因?yàn)樗軌蚋玫膸椭覀兘鉀Q當(dāng)前的問題。如果舊的技術(shù)已經(jīng)幫我們完美的解決了問題,那我們完全可以選擇忽視新的技術(shù)。
下次再有人單純的因?yàn)闆]用最新的工具來懟你,你就大膽的對(duì)他說:“小孩才分新舊,大人只看利弊,對(duì)解決問題有利的才是最好的。你呀,too young too simple?!?/p>
3. 有效地利用資源
能記住大量的技術(shù)細(xì)節(jié)當(dāng)然是強(qiáng)大實(shí)力的體現(xiàn),但記不住并不代表弱小和拙劣。在這樣一個(gè)信息量如此奢華的互聯(lián)網(wǎng)時(shí)代,大多數(shù)的知識(shí)都可以在5分鐘內(nèi)百度谷歌到。很多大的公司不是喜歡將一些小業(yè)務(wù)外包出去嗎,我們也可以把自己的一部分記憶“外包”給互聯(lián)網(wǎng)。
這個(gè)道理就像計(jì)算機(jī)。內(nèi)存的空間是寶貴的,而硬盤則沒有太多空間上的煩惱。我們的大腦就像內(nèi)存,而互聯(lián)網(wǎng)就是我們的硬盤。我們只需要在大腦里存儲(chǔ)空間占用極小的索引,把具體而龐大的知識(shí)細(xì)節(jié)交給互聯(lián)網(wǎng)這個(gè)巨大的硬盤存儲(chǔ)。如果我們把大量的知識(shí)和技術(shù)細(xì)節(jié)存儲(chǔ)在大腦——一個(gè)昂貴的內(nèi)存上,這豈不是暴殄天物嗎。
因此,最重要的不是記住多少知識(shí)和技術(shù),而是在需要用到它們的時(shí)候能夠快速高效的利用在大腦內(nèi)建立的索引,然后在互聯(lián)網(wǎng)這個(gè)容量幾乎無上限的硬盤上找到它們。知道知識(shí)在哪,這絕對(duì)是一種優(yōu)秀。
4. 不完美,怎么了
每個(gè)程序員都想寫出完美的代碼,可問題在于,這一切都得從寫有問題的代碼開始。最重要的是,我們得開始寫,不能因?yàn)楹ε虏煌昝谰筒粚憽_@和寫作是一回事。我半年多沒有在簡書上寫文章了,這并不是因?yàn)槲也幌雽?,而是我太想寫出精彩、完美的文章,反而讓自己無法下筆了。這讓我陷入深深的自我懷疑中,懷疑我平庸的才華無法匹配我對(duì)自己過高的期待。但我今天還是寫了這篇文章,因?yàn)槲曳磸?fù)告訴自己:簡單點(diǎn),寫作的方式簡單點(diǎn)(這句話自帶旋律...)??傊?,下筆先開始寫起來就對(duì)了。
寫代碼也是這樣,它得先被寫出來才能給我們讓它變得完美的機(jī)會(huì)啊。事實(shí)上,完美的代碼并不是寫出來的,而是改出來的。debug的能力比coding的能力還重要。我很喜歡這樣一句話:“Software is soft.” 軟件是軟的,代碼也是軟的。還記得我們小時(shí)候玩過的軟軟的橡皮泥嗎?沒捏好怎么辦?沒關(guān)系啊,反正它是軟的,攤平了重捏啊。寫代碼就是這個(gè)道理。
5. 能沉進(jìn)去,也能跳出來
我們都認(rèn)為,優(yōu)秀的人之所以優(yōu)秀是因?yàn)樗麄兡軌蜃屪约撼两谧约核龅氖虑橹?,不受外界的打擾。這當(dāng)然是對(duì)的,只有專注、聚焦在一件事情上,我們才能把那件事情做好。優(yōu)秀的前端工程師一定是那些始終磨練著自己的技術(shù)和密切關(guān)注著前端領(lǐng)域發(fā)展的人。是他們的專注和不知疲倦造就了他們的優(yōu)秀??墒鞘聦?shí)是這樣嗎?并不完全是。
前端開發(fā)的腳步已經(jīng)滲透到了人類社會(huì)的方方面面,每個(gè)行業(yè)都需要網(wǎng)站,都需要找到和特定人群交互的方式,而前端技術(shù)正是這類需求的最佳解決方案。作為前端開發(fā)者的我們,如果僅僅把自己局限在前端技術(shù)這個(gè)狹窄的領(lǐng)域內(nèi),技術(shù)的創(chuàng)新又從何而來呢?
我自己是音樂愛好者,平常會(huì)錄點(diǎn)音樂視頻自娛自樂。有一天我心血來潮,想知道前端領(lǐng)域和音樂有沒有碰撞出什么火花。上谷歌一搜索,便發(fā)現(xiàn)了很多優(yōu)秀的JavaScript的音頻庫。什么howler.js,loop.js,audiosynth.js, tone.js,全都是music library for JavaScript。試問,如果那些作為前端開發(fā)者的音樂愛好者們只關(guān)注前端而放棄了自己的愛好,那么,還會(huì)有這些優(yōu)秀的令人腦洞大開的前端音樂工具存在嗎?
跳出前端,在不寫代碼的時(shí)候繼續(xù)培養(yǎng)自己的興趣和愛好,讓自己接觸到不同的領(lǐng)域和行業(yè),從而使自己擁有不同的視角。正是我們把各種各樣的興趣引入到了前端的世界里,才讓前端的創(chuàng)新層出不窮,技術(shù)蓬勃發(fā)展。
好了,現(xiàn)在的我已經(jīng)準(zhǔn)備好成為一名優(yōu)秀的前端工程師了,你準(zhǔn)備好了嗎?
請(qǐng)把這篇文章分享給正在學(xué)習(xí)前端的朋友,希望該篇文章可以幫到一些小伙伴節(jié)省時(shí)間,加快開發(fā)。
最后祝所有程序員都能夠走上人生巔峰,讓代碼將夢(mèng)想照進(jìn)現(xiàn)實(shí),有不懂的問題可以隨時(shí)問我,工作不忙的時(shí)候希望可以給大家解惑。