下文中的前端僅僅指 Web 前端,據我所知,魅族把 Android 和 iOS 界面的分出來,也叫前端,這些不在其中。還有本文觀點比較片面,看看就好。前端
著名的10000小時定律,我想你們都不陌生,『要成爲某個領域的專家,須要10000小時』,這個定律來源於《異類》的做者,格拉德威爾。程序員
做爲一個程序員,天天工做10小時,每週工做五天,大約4年就能達到10000小時,那是否是每一個程序員認真工做,勤勤懇懇的過完4年他就能成爲專家呢?答案是顯而易見的。編程
首先10000小時只是必要條件,並不是充分條件,也就是說,即便你花了這10000小時,可能也沒什麼用,再次簡單的工做重複10000小時並不能給你帶來什麼提升,天然也就成不了專家。小程序
吳軍老師在《智能時代》一書中提過一個這樣的觀點:後端
在將來的智能時代,真正受益於技術進步的我的可能不超過人口的2%。微信小程序
以後他又補充了一句:微信
坦率的講,僅僅會寫幾行 JavaScript 的人不屬於我說的2%的行列,這些人偏偏在將來是要被計算機淘汰的。機器學習
當時看到這裏,我其實十分不解,吳軍老師是否是過久沒擼碼了,如今 JavaScript 這麼火,Node 那麼牛掰,什麼 React Native,Grunt,Gulp,Webpack,Vue,Weex,微信小程序等等,這些都是風生水起啊,怎麼 JavaScript 就跪了呢?還有,咱們高大上的前端工做怎麼就擠不進這 2% 呢?工具
後來仔細想一想,這裏定義的是『僅僅會寫幾行 JavaScript 』,事實上,若是10000小時都花在改界面,修改 DOM,改個色值,切個圖,替換下圖標這種簡單重複的工做裏面,固然擠不進這 2% 。事實上,要學的東西遠遠不夠,前端要有危機意識。性能
再來看,前端工做怎麼就擠不進 2% 的人呢? 2% 看起來還挺多,但是想一想,每種職業都有其 2% , 搬磚的有搬磚的 2%,寫程序的有些程序的 2%,總不可能寫程序的去搶搬磚的活兒吧。能不能擠進這 2% 要看是否善於使用智能工具,很不幸,我發現一些熱門的技術的發起都和前端沒啥關係,什麼數字化,VR/AR,基因測序,大數據,機器學習,人工智能……
說到這裏,智能手機的飛速發展帶起了移動互聯網,可是這波紅利被終端開發給佔了一大半,直到近兩年,手機性能提高才讓前端開始發力。爲何 PhoneGap (現已更名 Cordova)搞了那麼久沒什麼人用,React Native 纔出了沒多久就已經煊赫一時。除了 React Native 師出名門,還由於它的出現是爲了解決終端開發效率低以及更新審覈慢的問題。
好吧,前端不那麼容易成爲 2%,那咱們仍是繼續付出10000小時,爭取作個專家吧。
那麼簡單的重複不足以稱爲專家,那對於前端來講應該要怎麼作呢?個人想法是『跨界』,不知足於作前端,而是去更多的學習終端,學習後端的知識,帶來思惟的轉變和編程能力的提升。
看看如今很是熱門的 JavaScript 編譯器 Babel,其做者 Sebastian McKenzie 寫出這樣一個編譯器,必須具備很強的編程能力和熟悉編譯原理。這樣一我的雖然寫的是 JavaScript,可是已經不是一個前端了,而是大神。
上文中說到的 React Native 雖然寫的也是 JavaScript,可是學了一段時間,你就會發現須要用到很是很是多的終端知識,包括封裝原生控件,作和終端混合的應用,這個時候你必須去了解終端開發,去看 Java 和 OC,去學習終端知識。
如今前端出現的不少新技術,新概念,好比 工程化,MVC,MVVM 等,都已經在後端和客戶端存在多年了。後端和客戶端開發的理念比前端超前不少,因此如今後端和客戶端什麼理念火,也許就是之後前端會火的東西。
固然,首先要作好本職工做,也就是把前端作好,畢竟這是讓你養家餬口的根本,可是不要守着這一點東西進行低水平的重複,在工做中積累必定的分析問題解決問題的能力,同時跨界的時候不要像一張白紙,而是要能複用以前作前端的時候的知識,能力,這樣纔是一個好的跨界,否則每次都是從頭開始,永遠缺乏積累。
跨界,更多的是思惟的轉變和能力的提升。
前段時間有很嚴重的學習焦慮症,天天沒看書就懊惱不已,以致於叫我幹什麼與看書學習無關的事情我都會以爲浪費時間,並且人也會很焦慮。讀了一些文章,調整了心態,勤奮學習和享受生活並非對立的,而是互爲補充的,10000 小時是一場長跑,惟一的對手是你本身。
想一想本身,有好長一段時間沒寫過 Python 了,要從新抓起來。
這篇一開始發在我我的的公衆號,結合最近又有的一些感悟,有所刪減。
最近總想記錄一些所思所想,寫寫科技與人文,寫寫生活狀態,寫寫讀書感悟,主要是扯淡和感悟,歡迎關注,交流。
微信公衆號:程序員的詩和遠方
公衆號ID : MonkeyCoder-Life