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


硬件工程師看了只會找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師

(仰天長嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師

如何成為一名合格的KaihongOS南向驅(qū)動開發(fā)工程師
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師
如何成為一名嵌入式軟件工程師?



硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體
如何成為嵌入式開發(fā)工程師?
如何成為一名合格的北向應(yīng)用開發(fā)工程師

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實(shí) #YXC晶振 #揚(yáng)興科技

硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師

評論