以前寫了一篇文章「微信小程序」有哪些衝擊與機會?,而後公衆號後臺一大堆同窗問我這麼一個問題,說正在準備或者已經在學習 Android 開發了,看完個人文章感受很恐慌,更加難以選擇了。javascript
其實在微信小程序出來以前,就有很多同窗問我關於 web 前端與移動開發的選擇問題,只不過微信小程序出來了,微信的影響力不得不值得關注,這個問題就被放大了,因此,今天單獨寫篇文章來解答下大家的困惑。css
首先咱們要有這麼一個意識,就是隻要從事編程,無論你選擇什麼方向,web 前端、Android、iOS 仍是後端開發,一些編程基礎是通的。好比數據結構、算法、存儲、網絡等等,無論你選擇什麼編程語言,在最初的時候大多數都是從 C 語言開始學習,C 語言基本上是咱們編程的啓蒙語言了,沒錯,我從編程白癡最初也是從 C 語言開始學起的,以後一些計算機方面的基礎後面都有花時間去補習。html
因此,不要以爲選擇了一個方向,就妄想着會用那些 SDK,會用一些 API 就夠了,遠遠不夠!前端
從編程基礎來講,移動開發與 web 前端沒多大區別。java
有人說了,既然編程基礎都是通的,那麼學習任一個方向就沒什麼區別了?程序員
並非,上面說了一些編程基礎是必須的,可是並不意味着這些知識在最初就必須掌握才能去學習編程,不少時候能夠先入行,後面再慢慢補,俗話說:師傅領進門,修行靠我的!可是不少人每每連進門都還沒進門,由於編程這個行業相對其餘領域來講,門檻仍是蠻高的,尤爲對那些自學編程的人來講,大部分人還沒開始就放棄了,門檻仍是很重要的。web
我我的認爲,後端門檻大於前端,這個你們應該能理解,後端涉及到服務器、大數據、算法、併發等,稍有差池影響的但是幾百萬幾千萬用戶,這個不論是對基礎仍是對經驗都是有較高要求,而前端則不,前端重視UI交互與效果,一般不多涉及到複雜的業務邏輯,假設某個版本出問題了,最多影響的是更新這個版本的用戶而已,開發也大可能是從用戶角度去出發的,更貼近用戶。算法
目前來講這裏的前端其實包括移動端和 web 前端。移動端面向手機,web 前端面向瀏覽器,只不過如今不再是單純的面向 PC 端瀏覽器了,還包括手機瀏覽器。從門檻角度來講,我認爲移動端門檻比 web 前端門檻要高。且聽我說明緣由:編程
作移動開發的知道最初學習的時候是否是要折騰一堆東西,搭建開發環境,下載 SDK,配置環境變量,學會使用 IDE 等,還要學相對應的編程語言,學完編程語言再學對應的 api,配稍微差點的電腦甚至都跑不起來,光搭建開發環境這步就讓很多人失去了耐心與興趣。小程序
而 web 前端哪有這麼複雜,直接一個 txt 就能夠上手寫 HTML 了,況且 HTML 很簡單,學習來絕不費勁,一開始學點簡單的 javascript 也沒多大壓力,電腦只要有瀏覽器就能夠直接運行看效果,並且瀏覽器自帶調試工具,沒有那麼多講究,幾年前的電腦均可以拿來作 web 前端開發,因此,我認爲 web 前端的門檻要比移動開發門檻要低。
從編程門檻來講,web 前端比移動開發佔優!
可是門檻也只是讓你更快入門而已,web 前端想要作好,依然須要下很多苦功夫,web 前端必備技能 html、css、javascript 想要學好一樣不會那麼容易,須要不斷的學習與實踐才能掌握的爐火純青,況且當下 web 前端也須要懂點後端知識的,由於大部分 web 前端是依賴後端框架的,除非你是作純靜態的頁面。也就是說,想要在領域內作的出色,任何方向都不輕鬆!
其實在微信小程序沒推出以前,web 前端已經慢慢有需求變大的趨勢。主要是 web 前端基於微信、微博的營銷推廣是不二之選,另外一方面各類跨平臺框架如 React Native、weex 的推出更刺激了 web 前端的需求,以前 web 前端若是是不溫不火,那麼近期我認爲市場熱度與薪資水平基本跟移動開發差很少,只不過微信小程序的推出,毫無疑問,起碼看起來 web 前端要更火了。
可是爲何說是「看起來」呢?由於微信小程序也是剛推出,雖然說機會很大,可是不肯定性一樣很大。另外,微信小程序剛推出以後,我司就學習而且作了 demo 出來,發現微信小程序有個很是大的限制,就是不支持 WebView,不支持 WebView 這點對 web 前端影響很大,也就意味着你一個再有能力的再牛逼的 web 前端都很難在微信內部玩出花樣,你們都是用同樣的 SDK,遵循微信的規範來進行開發,因此我認爲微信小程序對技術的要求沒有那麼高了,不少有點經驗的程序員都能學會,若是缺少程序員的創業公司我相信可能會選擇外包,因此,我認爲微信小程序決定的不是技術,起決定性因素的多是你的產品,起碼目前來看是這樣的。
因此,市場熱度來講彷佛 web 前端更火了,可是我仍是那個觀點,對原生開發有衝擊,尤爲是一些初學者,企業要求會更高,可是我認爲對原生開發的影響不是那麼大,咱們姑且能夠把他看作新增了一個除 Android、iOS 之外的一個新的平臺而已。
綜上,web 前端的門檻比移動開發更低,將來的市場熱度也比移動開發更高,可是編程的基礎與編程語言是相通的。我對大家的建議歸納下來以下:
i. 若是你是還未入行,打算自學編程的同窗,那麼我推薦你學習 web 前端,學習微信小程序,由於入門更簡單些,並且小程序剛推出,能夠縮小下跟那些老鳥們的差距,可是想學好同樣不容易。
ii. 若是你已經在學習 Android 或者 iOS 一段時間了,甚至已經有點工做經驗的人,那麼我建議你一門心思繼續把如今的學好,不要受任何影響,任什麼時候候,任何市場,對優秀的人才都是搶手的,你被衝擊或者被影響只能說明你學的不夠好,能力不達標。
iii. 若是你對某一方向感興趣,好比 web 前端跟移動開發都接觸瞭解過,可是對某一個很感興趣,那麼我強烈建議跟隨你的興趣,不用擔憂市場、專業不符等其餘客觀條件,掌握好一門技能最可能是工做而已,大部分人都是這樣的,可是你若是把興趣變成工做,這將是你的生活。一旦把興趣變成工做,你將充滿鬥志,比別人更投入,毫無疑問,只要堅持下去,你確定會進步更快,在領域內更容易取得成果!
最後,編程語言是互通的,學會一門語言再學習另外一門技術會很是容易,因此重要的是你必需要先掌握一門技能,假如將來真的受到衝擊,不用任何人提醒,你本身會第一時間去變通而且適應,相信我,這是人的本能。而不少時候興趣纔是決定你能走多遠的決定因素,若是你的工做能是你的興趣所在,這難道不是每一個人最期待的工做麼?
大家確定會問我如今的工做是否是我最期待的工做?too young,我最期待的工做實際上是:不工做!
更多文章能夠關注微信公衆號 AndroidDeveloper(微信id:googdev),堅持原創,不只是技術分享!