傳說中,只要學會這五步!就可以成為萬中無一的前端工程師
「優秀」的定義
在我們開始討論之前,答應我,先問自己這樣一個問題:優秀的前端工程師應該是什麼樣子呢?
如果你的答案是精通各種前端框架,或者是掌握各種前端技能,亦或者是理解用戶的真正需求,甚至是前後端通吃的全棧工程師,那麼恭喜你,你的答案和我剛開始思考這個問題時的答案差不多。
的確,在前端領域定義優秀,自然是精通一種甚至多種前端開發工具和框架,理解這些框架的底層邏輯,知道用戶的需求和痛點,有屬於自己的開源項目和技術博客,並且寫得出一手整潔且bug free的代碼。這些優秀的特質令每一個前端從業者神往,但同時也令人遺憾。因為一旦在腦海里形成這樣一種所謂「優秀的」前端工程師的定義,我們就會發現,自己似乎永遠也成為不了我們自己定義的優秀的前端工程師了。現在不是,以後也不知道何時會是。這足以讓我們反思,我們做不到「優秀」,究竟是我們自己不夠努力且沒有天分,還是對於「優秀」這個詞的定義有問題。
別著急,讓我們先來看一看有關「優秀前端工程師」的傳說。
優秀前端工程師的三個傳說
1. 無所不知
還記得之前那篇前端疲勞里的這張圖嗎?
沒錯,優秀的前端工程師掌握了這張圖上的幾乎一切。他們不受前端疲勞的困擾,他們可以跟上每一次技術更新迭代的腳步,將最新的工具和技術輕鬆收入囊中。大多數情況下,他們不需要查看技術文檔和手冊,因為那些東西好像就存在他們的腦子裡。無論是寫正則表達式,還是調用API,抑或處理複雜的JS代碼,他們都能信手拈來。
2. 完美代碼
每次code review,我的內心都很忐忑,因為自己丑陋且性能低下的代碼即將曝光在同事的眼前。優秀的前端工程師從來沒有這些煩惱,相反,他們的代碼往往是被作為模板來接受眾人膜拜的。簡潔,優雅,高效。有句話怎麼說來著,漂亮的不像實力派。偏偏漂亮還不夠,連注釋都恰到好處。總之就一句話,給你一個無法拒絕讚美它的理由。
3. 極度專註
在這樣一個時間被互聯網不斷撕裂的時代,專註早就成為了一種奢侈的品質。而優秀的前端便享有這份奢侈。他們似乎感覺不到疲憊,不是在寫代碼,就是在去寫代碼的路上。當大多數人都沉迷於吃雞農藥等遊戲中時,他們卻始終讓自己淪陷在代碼的世界裡。請你給我一個他們不優秀的理由。
傳說很難照進現實
不知道你的身邊有沒有做到以上三點的前端工程師。這種人當然存在,但作為普通前端的我們可能根本接觸不到他們。因為能做到三點中的一點都已經遠遠不止優秀這個詞可以形容了。 做到兩點或者以上的人應該已經不會是單純的工程師了,至少已經是leader或者是CTO了吧。我們可以把這些傳說中的特質視為自己的奮鬥目標,但我們不應該把「優秀」定義的如此高不可攀,不近人情,讓大多數勤奮的前端工程師們與優秀「絕緣」。
學習交流前端方面的技術,打算深入了解這個行業的朋友,可以加下小編的前端學習裙,不管你是小白還是大牛,小編我都歡迎,不定期更新最新的教程和學習方法,包括小編自己整理的一份2018最新的前端資料和0基礎入門教程,歡迎初學和進階中的小夥伴。每天晚上20:00都有大咖給大家分享前端學習知識和路線方法,歡迎小夥伴加入交流
五步,讓優秀觸手可及
1. 承認自己不知道
是的,你沒看錯,承認自己不知道絕對是一種優秀的表現。前端技術的爆炸式發展帶來了很多創新的理念和極致的體驗,它早已無處不在。但同時,它也讓前端開發者們處在需要時刻跟上前端發展步伐的迷茫和痛苦中。若不加判斷的追逐這種日新月異的技術進步,就會走入什麼都學了一點,但什麼都沒學會的境地。
不知道所有的技術沒有關係,你也不可能都知道。大膽的承認自己不知道,比打腫臉充胖子假裝自己知道的人要優秀的多。
「React好複雜啊,要加上ReactRouter和Flux才能寫大型應用」
「嗯嗯,我也這樣覺得(內心:React是什麼。。。)」
「那你平常用React做什麼?「
「。。。(卒)。。。」
2. 新技術 != 合適的技術
你可能不止一次的聽到過這樣的嘲諷:「什麼?你還在用Gulp?太過時啦,現在大家都用Webpack,比Gulp好用多了」。我不知道這種嘲諷有什麼道理。新的技術就一定比原來的好?
脫離了實際的應用場景去評價工具的好壞就是耍流氓。我們學習和使用新的技術,一定不能只是因為它新它酷炫,而是因為它能夠更好的幫助我們解決當前的問題。如果舊的技術已經幫我們完美的解決了問題,那我們完全可以選擇忽視新的技術。
下次再有人單純的因為沒用最新的工具來懟你,你就大膽的對他說:「小孩才分新舊,大人只看利弊,對解決問題有利的才是最好的。你呀,too young too simple。」
3. 有效地利用資源
能記住大量的技術細節當然是強大實力的體現,但記不住並不代表弱小和拙劣。在這樣一個信息量如此奢華的互聯網時代,大多數的知識都可以在5分鐘內百度谷歌到。很多大的公司不是喜歡將一些小業務外包出去嗎,我們也可以把自己的一部分記憶「外包」給互聯網。
這個道理就像計算機。內存的空間是寶貴的,而硬碟則沒有太多空間上的煩惱。我們的大腦就像內存,而互聯網就是我們的硬碟。我們只需要在大腦里存儲空間佔用極小的索引,把具體而龐大的知識細節交給互聯網這個巨大的硬碟存儲。如果我們把大量的知識和技術細節存儲在大腦——一個昂貴的內存上,這豈不是暴殄天物嗎。
因此,最重要的不是記住多少知識和技術,而是在需要用到它們的時候能夠快速高效的利用在大腦內建立的索引,然後在互聯網這個容量幾乎無上限的硬碟上找到它們。知道知識在哪,這絕對是一種優秀。
4. 不完美,怎麼了
每個程序員都想寫出完美的代碼,可問題在於,這一切都得從寫有問題的代碼開始。最重要的是,我們得開始寫,不能因為害怕不完美就不寫。這和寫作是一回事。我半年多沒有在簡書上寫文章了,這並不是因為我不想寫,而是我太想寫出精彩、完美的文章,反而讓自己無法下筆了。這讓我陷入深深的自我懷疑中,懷疑我平庸的才華無法匹配我對自己過高的期待。但我今天還是寫了這篇文章,因為我反覆告訴自己:簡單點,寫作的方式簡單點(這句話自帶旋律...)。總之,下筆先開始寫起來就對了。
寫代碼也是這樣,它得先被寫出來才能給我們讓它變得完美的機會啊。事實上,完美的代碼並不是寫出來的,而是改出來的。debug的能力比coding的能力還重要。我很喜歡這樣一句話:「Software is soft.」 軟體是軟的,代碼也是軟的。還記得我們小時候玩過的軟軟的橡皮泥嗎?沒捏好怎麼辦?沒關係啊,反正它是軟的,攤平了重捏啊。寫代碼就是這個道理。
5. 能沉進去,也能跳出來
我們都認為,優秀的人之所以優秀是因為他們能夠讓自己沉浸在自己所做的事情中,不受外界的打擾。這當然是對的,只有專註、聚焦在一件事情上,我們才能把那件事情做好。優秀的前端工程師一定是那些始終磨練著自己的技術和密切關注著前端領域發展的人。是他們的專註和不知疲倦造就了他們的優秀。可是事實是這樣嗎?並不完全是。
前端開發的腳步已經滲透到了人類社會的方方面面,每個行業都需要網站,都需要找到和特定人群交互的方式,而前端技術正是這類需求的最佳解決方案。作為前端開發者的我們,如果僅僅把自己局限在前端技術這個狹窄的領域內,技術的創新又從何而來呢?
我自己是音樂愛好者,平常會錄點音樂視頻自娛自樂。有一天我心血來潮,想知道前端領域和音樂有沒有碰撞出什麼火花。上谷歌一搜索,便發現了很多優秀的JavaScript的音頻庫。什麼howler.js,loop.js,audiosynth.js, tone.js,全都是music library for JavaScript。試問,如果那些作為前端開發者的音樂愛好者們只關注前端而放棄了自己的愛好,那麼,還會有這些優秀的令人腦洞大開的前端音樂工具存在嗎?
跳出前端,在不寫代碼的時候繼續培養自己的興趣和愛好,讓自己接觸到不同的領域和行業,從而使自己擁有不同的視角。正是我們把各種各樣的興趣引入到了前端的世界裡,才讓前端的創新層出不窮,技術蓬勃發展。
好了,現在的我已經準備好成為一名優秀的前端工程師了,你準備好了嗎?
推薦閱讀:
※前端日刊-2017.12.8
※前端開發負責人修鍊指北
※前端日刊-2017.12.9
※學習筆記01·柯里化精準計算
※前端日刊-2018.01.12