找工作,到底是選前端還是後端呢?為什麼美國很多都是全棧程式設計師?
1.前端
舉一個更加具體的例子
HTml,並不是一門程式語言,它是一種用來定義結構化資料的標記語言,你在瀏覽器上看到的網頁,其實就對應一個HTML檔案,檔案裡裝的就是HTML程式碼,而瀏覽器的職責之一,就是透過你輸入的網址,從網站下載對應的html程式碼,並把程式碼渲染成你肉眼看到的樣子,現在各種事的工作內容之一就是編寫HTML程式碼,使用一些技術來為頁面動態的生成HTML程式碼,任何一個網頁都可以透過瀏覽器的開發者工具,看到他的HTML程式碼,如果你仔細檢視一段HTML程式碼,你會發現它其實就是由一堆各種型別的尖括號和標籤組合巢狀而成。
前端開發中真正程式設計的部分是JacaScript不同網頁,如何與使用者互動?如何與後端互動?都是透過JacaScript的程式碼實現的,就像HTML程式碼和CSS程式碼是被瀏覽器執行一樣。
目前比較流行的前端框架和庫包括Bootstrap,jQuery,AngularJS和React(用於JavaScript),以及Sass和LESS(用於CSS)等等。前端開發人員還必須使用移動優先(mobile-first)或響應式設計(responsive design),以確保網頁在各種裝置上呈現良好。
2.後端
相當一部分的後端開發工作就是開發資料訪問服務,前端可以透過呼叫後端服務對資料進行增(create)刪(delete)改(update)查(read),也就是大家經常聽到的CRUD,從而實現前端對使用者的請求響應比如你在一個大型網站註冊時該網站的前端就會呼叫其後端一個後臺,把你的使用者資訊寫入資料庫,一個後端服務,其實不侷限於只被前端呼叫,還可以被mobile app呼叫,以及其他後端服務呼叫。
類比一下,前端往往需要透過呼叫後端服務來完成,對使用者請求的響應而後端服往往需要透過查詢資料庫來完成,對前端請求的響應。從這個類比可以看出,前端和後端的共性都是透過借用一個比自己更靠後的後臺對前方的客戶請求進行響應。
後端工程師的工作範圍較廣,幾個比較常見的是,後端服務的API,設計後端服務的架構圖。設計後端服務的資料庫寫程式碼,實現後端服務的業務邏輯,同時還需要保證你設計的後端服務可靠,仍然保持不宕機,不請求的響應時間短,或者吞吐量高我要從頭搭建一個新的後端服務那麼整個過程需要進行大量的系統設計。後端工程師面試時會考到的System Design,後段工程師平時一般需要與哪些技術和工具打交道?首先呢,就是後端伺服器和前臺伺服器一樣,後端伺服器也可以有幾乎任何一種程式語言實現,只要能把正確的資料返回給呼叫者即可,主流的程式語言也有各自流行的Web Framework,可以快速的實現一個後端服務。
3.全棧
全棧就是全乾,要能夠自己構建和部署一個完整的可以工作的web APP能獨立編寫前端後端程式碼能夠配置伺服器,還能夠設計資料庫。
總的來說,並沒有覺得哪個更容易或者哪個更好,新的技術考慮的方面不同。前端主要考慮使用者體驗,後端主要考慮底層業務邏輯,平臺穩定和效能。最主要的還是看你的興趣是什麼?你是喜歡做使用者看得見的部分,還是去考慮使用者看不到的部分?。
為什麼美國全棧的崗位多?總的來講,在美國做全棧朝九晚五,應屆畢業生的基本工資,哪怕不在灣區也是十萬美元起步有幾年工作經驗的會高的更多,所以大家基本上都衝著全棧程式猿去了。