前端到底要不要學后台,這個問題估計困擾了很多個要入行的小哥,而且各大招聘信息上很多都寫着需要了解一到兩門后台語言優先。這一點讓很多小伙伴很方啊。
那么要不要學了,我的觀點的是需要了解,不需要深入學。
為什么這樣講了?首先,從邏輯上來講。如果你一個做前端的去公司還要做后台的工作,那么不直接招一個更加專業的后台人員了?講道理,現在市場上的后台技術人員是比前端要多的,就你的那點前端技術剛好可以混個工作,憑啥你可以去搶后台的工作了。所以,各位小伙伴們,不要想當然了,公司招你去是不會要你去做后端的事情的。如果是這個道理,那么寫上那些要求干嘛了?這不是在有事沒事制造招人障礙,讓人知難而退?
其實不然,任何一個有過3年以上的工作經驗的前端最起碼接觸過后台的,不管是java,php,python或者說前端都可以是涉及的node.js,你可以去問問他們,基本都有過了解,但這個了解不是完全會去寫,而且了解一個過程。
有過工作經驗的小伙伴應該都知道,除了程序員跟討厭的產品經理之間的矛盾外,最大的矛盾就是前后台的矛盾了。我之前有過好幾個做后台的學員,我問他你為什么要學前端,他告訴我,迫於無奈,前端寫的代碼實在是太惡心了,太不規范了,每次拿到前端模板要改一半的代碼,弄的我現在天天加班。我跟他說,要我的話就直接懟過去了,他說懟不得啊,基本都是妹紙,罵也罵不得,沒辦法,趕緊來學個前端,不然以后會猝死的。我相信有做后台的小伙伴看到這個故事肯定感同身受吧。所以,為了前后台開發效率更加高,更和諧,W3C和各大公司做了一系列的努力,什么前后端分離,基於MV*的前端架構等等。這也就是為什么,現在前端的要做的事情越來越越多了,學的東西也要越來越多了。
究其原因,實際上就是前端對后台的一個工作形式不了解,對HTTP協議,數據傳輸,服務器性能等等都不了解。要我說,這些前端也要去學,並且前端對於HTTP協議還有服務器性能還要了解更加深入,不要把眼光老是關注與頁面以及瀏覽器的效率。
比如,你如果了解每一張圖片的加載其實就是一個請求,而減少請求其實就是減少對服務器的負載,那么就會使用精靈圖來減少請求。如果你了解阻塞I/O,那么你在面對高並發事件時會使用AJAX,而大部分的小伙伴剛剛開始的時候不是在一味覺得AJAX很強,但根本不知道用在哪里,只知道這個東西很強,很牛×,我要學。簡直毫無意義。
讀到這里,現在應該知道了吧,我們到底要不要學后台了呢?
但是對於所有學前端的小伙伴,我建議的是一定要學一個node.js。這個其實不是一個框架,應該叫基於JS的后台語言,只不過他的解釋權是V8引擎而已,本質還是屬於后台。如果你在前端學到一定的水平,那么JS肯定不會差的,那么這個語言你學起來不會很困難。只需要花時間去了解HTTP,數據庫,服務器等方面的知識就可以了。至於高並發,非阻塞I/O,事件驅動啥的,等你學透了自然而然會懂的。等你用node到一定的階段,會認識的node的一個不足和優點,到時候就會去擴展第二第三語言了,接下來學起來就沒有那么困難了。你要知道一點,后台所有語言的本質是差不多的,所有,屆時學起來困難也不會像剛開始接觸那么困難。
接下來的文章我想分享一些前端知識點,不會再寫經驗之談了,希望大家學習順利。