你是否應該成為一名全棧工程師?

來源:互聯網
上載者:User

Asaf Yigal是Logz.io的聯合創始人與產品副總裁。在Logz.io之前,Asaf與他人聯合創立了Currensee,這是一個社會化交易平台,後來在2013年被OANDA收購。在 Currensee之前,Asaf在Akorri負責管理和開發一款端到端的效能監控平台,在Onaro開發過一款儲存資源管理平台。後來,Akorri 與Onaro都被NetApp收購了。在Onaro之前,Asaf在以色列海軍帶領一個研究團隊,從事人工智慧系統的開發與軍事化應用相關工作。近 日,Asaf撰寫了一篇文章,談到了他對於全棧工程師的認識與理解。

你常常聽說“全棧工程師”這個叫法吧,不過這到底表示什麼意思呢,你覺得自己應該成為一名全棧工程師嗎?下面我們就來探討一下這個話題。在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等容器技術。這些平台、服 務與架構都擁有自身的特性。因此,一個人幾乎無法成為能夠掌握所有技術的全棧工程師。

通才與專才

本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/PC/it/

在當前的環境下,成為全棧工程師的好處在於沒多少人擁有足夠的知識、經驗與溝通能力來整體把控使用了各種平台與架構的項目,如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開發人員來說都是光明的,無論是前端、後端,還是全棧。要堅持學習一切有價值的東西;掌握新 的架構、語言與平台;並且與開發人員同事及終端使用者保持高效的溝通。在這種情況下,無論世界發生什麼變化,你都會始終立於不敗之地。

來源 InfoQ

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。