你常常聽說“全棧工程師”這個叫法吧,不過這到底表示什么意思呢,你覺得自己應該成為一名全棧工程師么?下面我們就來探討一下這個話題。在Web與軟件開發的世界中有3個基本的關注點:前端、后端與全棧。下面就來解釋一下他們的含義。
何為全棧工程師?
前端工程師:在打開一個網站時,屏幕上的一切都屬于前端。前端工程師負責創建用戶界面背后的代碼。這些工程師不僅要熟悉HTML、JavaScript與CSS,還要掌握很多框架。這些框架有Foundation、Angular JS、Ember JS、Backbone及Bootstrap等等。前端工程師要與設計師和其他專家協同工作,從而將網站從模型轉換為可使用的模式。 后端工程師:在你每天所訪問的網站背后有服務器網絡、數據庫以及各種應用,他們相互協作將你所請求的網頁與數據傳遞給你。后端工程師負責構建這些組件。他們要擅長各種編程語言,如Python、.Net、Ruby、Java及PHP等等,從而通過這些語言來編寫程序。他們還需要使用各種數據庫程序如MySQL、SQL Server及Oracle等來操縱信息并將其傳遞給最終用戶。后端工程師需要與組織中的各種經理及其他成員通力配合來完成工作。 全棧工程師:全棧工程師既要了解后端開發,也要了解前端開發。他們是“全方位”的工程師,熟悉服務端的同時又懂客戶端用戶體驗。全棧工程師理解Web開發進程的每一個方面,同時又會就整體策略與最佳實踐對相關干系人提出建議與指導。
角色演變
在早期的桌面計算時代,我們常常會看到一個人就完成了整個應用的開發工作。隨著程序變得越來越復雜,以及越來越多的技術涌現了出來,一個人很難再完全掌控應用開發的各個方面。在21世紀初期,一些擁有專業化技能的專家開始出現。由于復雜性的持續攀升,當Web 2.0站點開始出現時,很多程序員又回到了更簡單的方式上來。相比于構建復雜的數據庫和企業計算網絡,開發者開始部署穩定的LAMP棧(Linux、Apache、MySQL與PHP),并創建出了靈活的面向對象語言,如Django與Ruby on Rails。在這種環境下,全棧工程師的價值變得越來越大,因為他們熟悉大多數現代框架與語言。
運維復雜性的回歸
不過,由于移動計算與iOS和Android平臺的興起,我們又回到了復雜性的新時代:低成本的云服務器如Amazon Web Services和微軟的Azure、MongoDB等數據庫、Node.js與Angular.js等前端技術、Docker等容器技術。這些平臺、服務與框架都擁有自身的特性。因此,一個人幾乎無法成為能夠掌握所有技術的全棧工程師。
通才與專才
在當前的環境下,成為全棧工程師的好處在于沒多少人擁有足夠的知識、經驗與溝通能力來整體把控使用了各種平臺與框架的項目,如HTML5、機器學習及Scala等。因此,高水準的全棧工程師總是供不應求的。不過,壞處則在于對于全棧工程師來說,他需要能夠熟練掌握這些組件,但這是非常困難的事情,況且未來還會有新的技術涌現出來。你可能很聰明,但這些組件本身卻是非常復雜的,每幾個月都會出現新的語言和平臺。要想時刻保持技術上的領先是一件極其困難的事情。出于這個原因,專才擁有自己獨特的優勢。組織傾向于雇傭專門的角色,因此相比于其他開發者來說,專才在深層次的知識以及某個狹窄領域的經驗上會更勝一籌。
全棧工程師的薪資
無論選擇在前端還是后端進行深入學習,抑或是將自己定位成一個全棧的通才,從工作前景上來看都是好的。根據美國勞工統計局發布的統計信息來看,軟件工程師是未來10年最具發展潛力的職業之一。2014年,大約有718,000名軟件工程師;從全國范圍來看,其平均薪資大約為$95,510。這個數字未來還會繼續攀升。那么,到底什么才是最好的工作呢?這取決于你的背景、經驗與目標。前端工程師需要掌握如下技能:
HTML與HTML5
CSS、CSS3與SASS
PHP
JavaScript
jQuery、Angular.js、React,js與Node.js
Websockets與Ajax requests
瀏覽器開發工具與調試器
Python
Git
后端開發者應該精于服務端編程、語言與框架,如:
C與C++
Python
JavaScript
Ruby on Rails
PHP
Perl
Node.js與Express
MongoDB
Postgres
MySQL與NoSQL
Git
Web APIs
Go
如果想要向著全棧工程師的方向邁進,你應該掌握很多知識與技能,并且熟悉上面提到的各種組件。此外,還要提升自己的個人溝通技能,這樣才能管理并與前端與后端開發者實現較好的協作。好消息是未來對于每一類Web開發者來說都是光明的,無論是前端、后端,還是全棧。要堅持學習一切有價值的東西;掌握新的框架、語言與平臺;并且與開發者同事及最終用戶保持高效的溝通。在這種情況下,無論世界發生什么變化,你都會始終立于不敗之地。
各位讀者,相信大家也對Web開發的前端、后端及全棧工程師有著自己的認識和理解。你現在的工作可能就位于這3種類型中的一種或是幾種。當然了,無論是前端還是后端都有大量的知識和技能需要我們理解并掌握,對于通才與專才的理解也是見仁見智的。在某一個領域做到很深的程度會為公司與用戶帶來價值;熟練掌握各個領域的知識也是頗具價值的。那么,在你的眼里看來,何為全棧工程師呢?要想成為全棧工程師需要開發者付出哪些努力呢?全棧工程師的價值與專注于特定領域的工程師價值之間是如何對比的呢?你認為自己是否應該成為全棧工程師呢?歡迎發表你的看法與見解,并與其他讀者一同交流和討論。
-
工程師
+關注
關注
59文章
1569瀏覽量
68508
發布評論請先 登錄
相關推薦
評論