對于這個問題,我是這么理解的:前端開發面向"用戶",后端開發面向"機器"。
前端開發理解和定位如何理解和定位前端開發,最簡單的方法是從各大招聘網站上,查看各個公司對前端開發職位的崗位要求,就能清晰了解前端開發: 前端開發主要負責圖形化類產品的研發、制作和升級,參與手機端和PC端的WEB產品、APP開發,根據產品需求開發高質量前端頁面,積極探索前端開發技術的發展, 優化用戶交互方式,提升用戶體驗。
前端開發主要技術前端技術包括Javascript、CSS、XML、HTML5、JSON等,需要熟悉使用HTML和CSS進行頁面布局,掌握JQuery、Vue、React、Angular等框架或庫的技術原理和使用方法, 前端開發也需要對不同設備及平臺有一定了解,理解不同操作系統及瀏覽器的兼容性區別。
后端開發理解和定位后端開發的工作職責主要包括參與業務系統需求分析、產品討論、系統架構設計、技術選型、產品研發、系統優化重構等。后端開發需要具有扎實的計算機科學功底、扎實的編程基礎,掌握常用的系統架構原理、搭建和優化方法,解決系統建設面臨的關鍵問題和技術難點。
后端開發主要技術后端開發以設計開發高可用、高效率、高安全系統為目標,不局限于單一編程語言,主要技術包括分布式計算、中間件、數據庫、計算機網絡、人工智能、信息安全等方面技術,由于后端開發涉及面廣,后端開發人員最好具備一定的項目管理知識和經驗,有助于組織協調,推進項目開展。
前端開發與后端開發的聯系如果將系統分為"視圖-控制-模型"三層,前端開發主要實現"視圖"層,后端開發實現"控制"和"模型"層。技術上都是運用"分層、解藕、模塊化"的思路提高開發集成效率、增強可維護行和可擴展性,近年來前端開發出現的Vue, React, Angular等框架大大推動了前端技術的發展,前端開發前途光明。
通常,web后端的難度更大一些。
所以大部分公司的人員配置也是后端多于前端。前端的難度在于知識體系的瑣碎和技術的頻繁更新換代,需要有學習能力、有積累經驗的意識。
后端的難度(個人覺得)在于數據庫和架構,有時候還有算法相關的內容,入門也挺容易的,但是做大了之后就需要考慮很多東西,設計模式、緩存、分布式、服務化......很多后端還要兼任DBA和運維。
web前端工程師不光需要會html,js,css等一些前端編程語言,還需要有美工基礎,最早的前端工程師沒有那么精細的分工,需要你從原型設計到切圖在寫靜態頁面,調試瀏覽器兼容性等一系列問題,但是現在前端分工詳細了,分工明確的公司可能UI和前端都分開了,但這并不意味著是好的,一切和設計相關的職位,我建議都需要有美術功底,這樣你在設計的時候會比其他門更具優勢,希望可以幫到你