1. 程式人生 > >移動開發 or web 前端?

移動開發 or web 前端?

之前寫了一篇文章「微信小程式」有哪些衝擊與機會?,然後公眾號後臺一大堆同學問我這麼一個問題,說正在準備或者已經在學習 Android 開發了,看完我的文章感覺很恐慌,更加難以選擇了。

其實在微信小程式出來之前,就有不少同學問我關於 web 前端與移動開發的選擇問題,只不過微信小程式出來了,微信的影響力不得不值得關注,這個問題就被放大了,所以,今天單獨寫篇文章來解答下你們的困惑。

1. 程式設計基礎是通的

首先我們要有這麼一個意識,就是隻要從事程式設計,不管你選擇什麼方向,web 前端、Android、iOS 還是後端開發,一些程式設計基礎是通的。比如資料結構、演算法、儲存、網路等等,不管你選擇什麼程式語言,在最初的時候大多數都是從 C 語言開始學習,C 語言基本上是我們程式設計的啟蒙語言了,沒錯,我從程式設計白痴最初也是從 C 語言開始學起的,之後一些計算機方面的基礎後面都有花時間去補習。

所以,不要覺得選擇了一個方向,就妄想著會用那些 SDK,會用一些 API 就夠了,遠遠不夠!

從程式設計基礎來說,移動開發與 web 前端沒多大區別。

2. 程式設計門檻

有人說了,既然程式設計基礎都是通的,那麼學習任一個方向就沒什麼區別了?

並不是,上面說了一些程式設計基礎是必須的,但是並不意味著這些知識在最初就必須掌握才能去學習程式設計,很多時候可以先入行,後面再慢慢補,俗話說:師傅領進門,修行靠個人!但是很多人往往連進門都還沒進門,因為程式設計這個行業相對其他領域來說,門檻還是蠻高的,尤其對那些自學程式設計的人來說,大部分人還沒開始就放棄了,門檻還是很重要的。

我個人認為,後端門檻大於前端,這個大家應該能理解,後端涉及到伺服器、大資料、演算法、併發等,稍有差池影響的可是幾百萬幾千萬使用者,這個不管是對基礎還是對經驗都是有較高要求,而前端則不,前端重視UI互動與效果,通常很少涉及到複雜的業務邏輯,假設某個版本出問題了,最多影響的是更新這個版本的使用者而已,開發也大多是從使用者角度去出發的,更貼近使用者。

目前來說這裡的前端其實包括移動端和 web 前端。移動端面向手機,web 前端面向瀏覽器,只不過現在再也不是單純的面向 PC 端瀏覽器了,還包括手機瀏覽器。從門檻角度來說,我認為移動端門檻比 web 前端門檻要高。且聽我說明原因:

做移動開發的知道最初學習的時候是不是要折騰一堆東西,搭建開發環境,下載 SDK,配置環境變數,學會使用 IDE 等,還要學相對應的程式語言,學完程式語言再學對應的 api,配稍微差點的電腦甚至都跑不起來,光搭建開發環境這步就讓不少人失去了耐心與興趣。

而 web 前端哪有這麼複雜,直接一個 txt 就可以上手寫 HTML 了,何況 HTML 很簡單,學習來毫不費勁,一開始學點簡單的 javascript 也沒多大壓力,電腦只要有瀏覽器就可以直接執行看效果,而且瀏覽器自帶除錯工具,沒有那麼多講究,幾年前的電腦都可以拿來做 web 前端開發,所以,我認為 web 前端的門檻要比移動開發門檻要低。

從程式設計門檻來說,web 前端比移動開發佔優!

但是門檻也只是讓你更快入門而已,web 前端想要做好,依然需要下不少苦功夫,web 前端必備技能 html、css、javascript 想要學好同樣不會那麼容易,需要不斷的學習與實踐才能掌握的爐火純青,何況當下 web 前端也需要懂點後端知識的,因為大部分 web 前端是依賴後端框架的,除非你是做純靜態的頁面。也就是說,想要在領域內做的出色,任何方向都不輕鬆!

3. 市場熱度

其實在微信小程式沒推出之前,web 前端已經慢慢有需求變大的趨勢。主要是 web 前端基於微信、微博的營銷推廣是不二之選,另一方面各種跨平臺框架如 React Native、weex 的推出更刺激了 web 前端的需求,之前 web 前端如果是不溫不火,那麼近期我認為市場熱度與薪資水平基本跟移動開發差不多,只不過微信小程式的推出,毫無疑問,起碼看起來 web 前端要更火了。

但是為什麼說是「看起來」呢?因為微信小程式也是剛推出,雖說機會很大,但是不確定性同樣很大。另外,微信小程式剛推出之後,我司就學習並且做了 demo 出來,發現微信小程式有個非常大的限制,就是不支援 WebView,不支援 WebView 這點對 web 前端影響很大,也就意味著你一個再有能力的再牛逼的 web 前端都很難在微信內部玩出花樣,大家都是用一樣的 SDK,遵循微信的規範來進行開發,所以我認為微信小程式對技術的要求沒有那麼高了,很多有點經驗的程式設計師都能學會,如果缺乏程式設計師的創業公司我相信可能會選擇外包,所以,我認為微信小程式決定的不是技術,起決定性因素的可能是你的產品,起碼目前來看是這樣的。

所以,市場熱度來說似乎 web 前端更火了,但是我還是那個觀點,對原生開發有衝擊,尤其是一些初學者,企業要求會更高,但是我認為對原生開發的影響不是那麼大,我們姑且可以把他看做新增了一個除 Android、iOS 以外的一個新的平臺而已。

4. 總結

綜上,web 前端的門檻比移動開發更低,未來的市場熱度也比移動開發更高,但是程式設計的基礎與程式語言是相通的。我對你們的建議概括下來如下:

  • i. 如果你是還未入行,打算自學程式設計的同學,那麼我推薦你學習 web 前端,學習微信小程式,因為入門更簡單些,而且小程式剛推出,可以縮小下跟那些老鳥們的差距,但是想學好一樣不容易。

  • ii. 如果你已經在學習 Android 或者 iOS 一段時間了,甚至已經有點工作經驗的人,那麼我建議你一門心思繼續把現在的學好,不要受任何影響,任何時候,任何市場,對優秀的人才都是搶手的,你被衝擊或者被影響只能說明你學的不夠好,能力不達標。

  • iii. 如果你對某一方向感興趣,比如 web 前端跟移動開發都接觸瞭解過,但是對某一個很感興趣,那麼我強烈建議跟隨你的興趣,不用擔心市場、專業不符等其他客觀條件,掌握好一門技能最多是工作而已,大部分人都是這樣的,但是你如果把興趣變成工作,這將是你的生活。一旦把興趣變成工作,你將充滿鬥志,比別人更投入,毫無疑問,只要堅持下去,你肯定會進步更快,在領域內更容易取得成果!

最後,程式語言是互通的,學會一門語言再學習另一門技術會非常容易,所以重要的是你必須要先掌握一門技能,假如未來真的受到衝擊,不用任何人提醒,你自己會第一時間去變通並且適應,相信我,這是人的本能。而很多時候興趣才是決定你能走多遠的決定因素,如果你的工作能是你的興趣所在,這難道不是每個人最期待的工作麼?

你們肯定會問我現在的工作是不是我最期待的工作?too young,我最期待的工作其實是:不工作!

本文原創釋出於微信公眾號 AndroidDeveloper (微信id: googdev),轉載請務必註明出處!