不久前微信小程序一出即在IT圈子掀起一波討論,不管是產品方向還是技術。而其中,筆者聽到最多的聲音就是:前端又一次要火了,native端趕緊轉方向吧。
真是這樣嗎?
1、小程序的沖擊
小程序出現的大背景是:流量紅利時代已經結束,目前是內容為王的時代,app獲取用戶的成本不斷攀升。因此,小程序的出現即將打破這種僵局,讓用戶獲取成本降低,讓用戶更接近內容。如同張小龍說的“用完即走”,小程序注定是輕量級的,也就是每個小程序盡量只包含核心功能。且不說這種愿景是否可能出現,至少,初期階段,微信小程序的開發是各家app公司避免不了的,甚至部分公司會放棄app。
從用戶的角度看,絕大多數手機里都有超過百個app,但常用的就那么幾個,聊天(微信)、吃飯(點評)、行(高德)等。因此,用戶越來越不喜歡下載app了。很可能未來的場景是,當用戶遇到新的app的時候,首先搜索小程序是否有,再考慮是否下。
因此,從市場和產品形態來看,小程序肯定會沖擊native應用的。而從公司角度來看,要么引進,即招聘小程序的開發者,要么內部解決,即開發者轉型。
2、開發者的選擇
從微信公開的資料看,小程序只能算是輕量級應用,也就是個富客戶端。RIA的概念大家可以去搜搜,能不能走下去得再觀察。
目前來看,小程序并不能承載太多的功能。比如現在很多的王者榮耀,小程序就沒辦法駕馭。因此,app不會消亡。
從市場來看,肯定會有大量的對于html+javascript的開發者的需求。而且目前處于剛起步階段,應聘難度估計也不會太大,對于很多開發者來說是個機會。
因此,目前來看,選擇繼續app開發,或者小程序開發,都是有機會的。
3、開發的本質
回過頭來,我們看到小程序只是一次機會,而對于開發者來說,這樣的機會,重要嗎?
筆者先下個結論:完全不重要。
開發者的職業發展,應該是按照技術深度來規劃的:
1、剛入門,學會看文檔按照API開發;
2、研究組件,會自定義組件,了解生命周期等框架知識;
3、深入底層開發,能夠開發底層。
目前絕大多數考慮是否進入小程序開發的,基本都處于前面說的第一階段或者第二階段。處于第一階段的,筆者建議不應該跳,因為跳過去了那只是學會了另外一個工具,編程能力并沒有獲得本質的提升。處于第二階段也不應該跳,因為那只是再一次重復自己。當然,從開發者興趣來說,如果對小程序更有興趣,更愿意深入學習,那跳過去無可厚非。
很多人都見到過,有些程序員能在十分鐘迅速解決一個bug,而有些程序員,同樣的bug可能要一天。這個的差異在于對技術有沒有深入的了解,有沒有全盤的把握能力,有沒有豐富的經驗;而不在于該程序員會幾門語言的API。
從公司角度來說,無論哪一門語言的API,只掌握到這一層,待遇都是剛入門程序員的待遇。即使你會十門語言的API,都只能算是入門程序員。
舉個例子,14年左右,iOS開發工程師非常火爆,于是很多人踴躍加入培訓班。而現在,絕大多數公司不招聘初級工程師,這些剛培訓出來的工程師再一次面對找不到工作的困境。
4、商業發展
很多人歡呼其實這是一次產品和運營的狂歡,的確是。因為小程序本質上加速了產品的開發和迭代,拉近了用戶與產品的距離。
當所有產品都加快了試錯迭代,公司的核心競爭力反而更重要了。一般公司核心競爭力在于:內容、技術。內容為王的公司,比如簡書用戶產生大量的內容。技術,比如今日頭條,靠著推薦系統獲取了大量忠實用戶。
其實隨著技術發展,商業上前端的核心競爭力已經越來越弱了,最終技術公司靠的還是后端能力取勝。并且,隨著大個公司不斷的開源,技術的門檻越來越低,比如十年前大數據很難計算的,現在個人就可以跑Hadoop來計算大數據了。
因此,商業的發展上來看,技術一直處于不斷深入當中,誰能最先攻克業界難題,誰就可能勝出。
而對個人來說,核心競爭力其實越來越多在于算法、架構能力上。
回到題目上,小程序對于開發者不是什么選擇,就好比是一門語言而已。開發者應該關注在自身技術的深入發展上,而不應該跟著熱點走。