一文帶你了解前端、後端、全棧的主要內容與工作職責
科技時代,哪個行業工資最高?待遇最好?當然是互聯網IT行業。
2017年中國軟體產業規模已超過5萬億元,軟體和信息技術服務業占我國電子信息產業的比重將超過30%,軟體產業能力顯著提升。
但據國內權威數據統計,未來五年,我國信息化人才總需求量高達1500萬—2000萬人。其中「軟體開發」、「網路工程」等人才的缺口最為突出。以軟體開發為例,我國軟體人才需求以每年遞增20%的速度增長,每年新增需求近百萬。
這也是目前很多非科班出身的同學為了搭上互聯網的快車開始學習編程的原因,但是剛開始應該選擇哪個學科,卻給很多同學帶來了很大困擾。
然而,大家對於「前端、後端、全棧」的概念還非常模糊,今天小編就帶大家去了解什麼是前端、後端以及全棧。
一、前端方向
網站的「前端」是與用戶直接交互的部分,包括你在瀏覽網頁時接觸的所有視覺內容--從字體到顏色,以及下拉菜單和側邊欄。這些視覺內容,都是由瀏覽器解析、處理、渲染相關 HTML、CSS、Javascript 文件後呈現而來。
技能與工具
前端開發,就是要創造上面提到的網站面向用戶的部分背後的代碼,並通過建立框架,構建沉浸性的用戶體驗。為了實現這個目標,開發需要熟練運用下列語言、框架、工具庫:
三大語言: HTML,CSS,和 Javascript;
此外,掌握 jQuery 和 LESS 等工具庫也很重要,它們能幫助開發者以更高效的方式編碼;
很多前端開發崗也要求 Ajax 方法的使用經驗,它可以幫助你使用 Javascript 在後台從伺服器拉取數據,協助實現頁面的動態載入。
工程師的職責
-為網站上提供的產品和服務實現一流的Web界面,優化代碼並保持良好兼容性。
-Web前端表現層及與前後端交互的架構設計和開發。
-JavaScript程序模塊開發,通用類庫、框架編寫。
-利用各種Web技術模擬開發產品原型。
-配合後台開發人員實現產品界面和功能。
-Web新技術調研和資訊整理。
-精通HTML/XHTML、CSS,熟悉頁面架構和布局,對Web標準和標籤語義化有深入理解。
-精通Ajax、JavaScript(或者ActionScript)、DOM等前端技術,掌握面向對象編程思想。
-熟悉一種以上後台開發語言(如PHP/Java或C/C++/.NET)以及一種資料庫(如MySQL/Oracle),有Linux系統操作。
web前端開發工程師需要長期的web開發經驗,例如:
-對Web技術創新及豐富互聯網應用開發(Rich Internet Applications)有濃厚興趣。
-對用戶體驗、交互操作流程、及用戶需求有深入理解。
二、後端方向
是什麼給網站前端提供支持?數據存放在哪裡?這就涉及後端內容了。網站後端包括伺服器、應用還有資料庫。後端開發者構建並維護這些組件,為網站提供多方面支持。
技能與工具
為了讓伺服器、應用、資料庫能夠彼此交互,後端工程師需要具有如下技能:
用於應用構建的伺服器端語言: PHP, Ruby, Python, Java, .Net 等;
數據相關工具: MySQL, Oracle, SQL Server 等;
PHP框架: Zend, Symfony, CakePHP等;
版本控制工具:SVN, CVS , Git 等;
還要熟練使用 Linux 作為開發和部署環境。
工程師的職責
在Web開發世界中,大多數後端開發人員從事於構建他們正在工作的應用程序背後的實際邏輯。
通常,前端開發人員構建用戶界面,而後端開發人員編寫代碼,使其工作。
例如,前端開發人員在應用程序中創建一個界面,上面有一個按鈕,按下按鈕來獲取客戶的數據。
後端開發人員寫可使得按鈕工作的代碼,通過指出從資料庫中提取哪些數據並將其傳回到前端(並最終顯示在那裡)。
後端開發人員也可能會大量參與系統架構,決定如何組織系統的邏輯,以便能夠正常維護和運行。
他可能會參與構建框架或系統架構,以便於更容易編寫程序。後端開發人員比前端開發人員花費更多的時間在實現演算法和解決問題上。
三、全棧
有時前後端之間並沒有明確的界限,「前端開發者通常需要額外學習後端技巧,反之亦然,尤其在特定市場條件下」,Matranga 說:「開發者需要跨領域知識,有時甚至需要成為全才。」
全棧工程師,最初是6年多以前由 Facebook 帶動的概念。全棧的核心,是指這批開發者能夠承擔包括前端、後端在內的所有功能開發任務,他們擁有一個技能全家桶。
「能夠同時承擔伺服器端和客戶端工作會為你帶來更多機會,」 Grovo 的全棧工程師 Federico Ulfo 說 「當然這也就意味著更多的挑戰。以廚藝作類比,掌握烹飪和烘焙都需要時間與經驗積累,同時掌握兩者要花費更多精力。照著菜譜做誰都可以,我此處所說的是做出真正美味東西的能力。」
技能與工具
-通過終端連接到非圖形化界面環境的遠程伺服器
-基本的 shell 腳本編程
-管理伺服器的用戶和用戶組
-管理伺服器程序比如 Apache 和 Nginx,以便其服務於應用程序
-管理防火牆和許可權
-安裝新軟體,更新軟體版本
工程師的職責
懂得如何通過 Docker 或虛擬機比如 Vagrant 來創建良好、健康、隔離的開發環境。
熟諳版本控制系統,才能夠可靠地生成可共享的、協作的代碼庫及其備份, 並且隨時間流逝跟蹤其變化。
除了實際管理的或虛擬化的伺服器,開發者可能還需要知道雲 – 託管平台,像 Heroku、Google Clould、Azure、AWS 等。
看了這些,是不是對於選擇職業有了更清晰的認識了呢?
※玉雕大師劉北山:一生鑄就一項完美事業
※IT行業5大熱門行業,你更中意哪個?
TAG:華信智原 |