官术网_书友最值得收藏!

Facebook只招全棧工程師

“全棧”是一個(gè)外來詞,對于中國讀者而言,會(huì)覺得它很陌生。當(dāng)我第一次對某人提到“全棧工程師”時(shí),他一頭霧水:“全棧?您是說全端工程師嗎?”

其實(shí),“全?!狈g自英文full-stack,表示為了完成一個(gè)項(xiàng)目,所需要的一系列技術(shù)的集合。“?!笔侵敢幌盗凶幽K的集合。這些軟件子模塊或者組件組合在一起即可實(shí)現(xiàn)既定功能,不再需要其他模塊。

全棧中的“?!迸c計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu)中的“堆?!辈皇峭粋€(gè)概念,后者是指先入后出的串行數(shù)據(jù)結(jié)構(gòu)。順便說下,“隊(duì)列”是指先入先出的串行數(shù)據(jù)結(jié)構(gòu)。

IT行業(yè)之外的人其實(shí)很難理解Web開發(fā)是多么復(fù)雜的工程。人們一般認(rèn)為,在計(jì)算機(jī)公司或者互聯(lián)網(wǎng)公司工作的人,就應(yīng)該能夠解決與計(jì)算機(jī)相關(guān)的所有問題:電腦開不了機(jī)、應(yīng)該買什么型號(hào)的手機(jī)、家里上不了網(wǎng),等等。在他們眼中,計(jì)算機(jī)行業(yè)的從業(yè)者天生就帶有“全棧光環(huán)”。

但是拿著這本書的您知道,要開發(fā)一個(gè)Web頁面,工程師需要掌握的知識(shí)至少包括:服務(wù)器(比如Linux)、數(shù)據(jù)庫(比如MySQL)、服務(wù)器端編程語言(比如PHP)、前端標(biāo)記語言和腳本語言(HTML、CSS、JavaScript)等。這些技術(shù)中的每一個(gè),都需要幾年的學(xué)習(xí)和練習(xí)才能達(dá)到精通的程度。Web工程是一個(gè)如此大的專業(yè)類別,以至于IT公司為每一個(gè)環(huán)節(jié)都設(shè)置了專門的部門和崗位,來把每一個(gè)環(huán)節(jié)做好。

服務(wù)器、數(shù)據(jù)庫、服務(wù)器端編程語言、HTML、CSS、JavaScript等組合在一起就是一個(gè)“?!薄_@個(gè)“棧”是用來制作Web站點(diǎn)的,所以又叫Web棧(Web-Stack)。最常使用的服務(wù)器是基于Linux的。Web發(fā)布使用Apache,數(shù)據(jù)庫使用MySQL,服務(wù)器端編程語言使用PHP的組合,所以它們往往一起統(tǒng)稱為LAMP(Linux-Apache-MySQL-PHP)整體解決方案。

如果要開發(fā)一個(gè)在手機(jī)中運(yùn)行的應(yīng)用,開發(fā)者需要的知識(shí)包括:服務(wù)器、數(shù)據(jù)庫、服務(wù)器端編程語言、iOS或者Android開發(fā)技術(shù)。這些技術(shù)的集合稱為App棧(App-Stack)。

一個(gè)簡單的Web棧模型:包含前端技術(shù)和后端技術(shù)。

我們知道,前端工程師就是負(fù)責(zé)頁面瀏覽器端編程的人,后端工程師就是負(fù)責(zé)服務(wù)器端編程的人,那么什么才是全棧工程師呢?

對于全棧工程師,業(yè)界并沒有嚴(yán)格的定義,并不是說一定要一種都不能少地具備哪幾項(xiàng)知識(shí)才能叫做全棧工程師。我傾向于認(rèn)為,應(yīng)該從能力和思維方式兩方面,來判定一個(gè)人是否是一個(gè)合格的全棧工程師。

國外是怎么定義全棧工程師的呢?在著名的問答網(wǎng)站Quora上有人提出了這個(gè)問題。一個(gè)獲得了高票的回答是:

全棧工程師是指,一個(gè)能處理數(shù)據(jù)庫、服務(wù)器、系統(tǒng)工程和客戶端的所有工作的工程師。根據(jù)項(xiàng)目的不同,客戶需要的可能是移動(dòng)棧、Web棧,或者原生應(yīng)用程序棧。

基本上,當(dāng)客戶需要一個(gè)全棧工程師的時(shí)候,客戶需要的是一個(gè)全能的“大神”。簡單來說,全棧工程師就是可以獨(dú)立完成一個(gè)產(chǎn)品的人。當(dāng)客戶讓他去做一些舒適區(qū)之外的工作時(shí),他敢于迎難而上,并成功完成任務(wù)。

我們每一個(gè)工程師,進(jìn)入到公司和企業(yè)工作之后,就會(huì)有一個(gè)職位頭銜。我的職位頭銜是“UI工程師”,其他人的頭銜可能是“交互設(shè)計(jì)師”“PHP開發(fā)工程師”,等等?!叭珬9こ處煛辈恍枰^銜。他既有全面的技術(shù)能力,也渴望跨界工作的狀態(tài)。

“全棧”好像是一個(gè)遙不可及的夢想,所以對于初次了解“全棧工程師”這個(gè)概念的工程師而言,有可能覺得“不可思議”或者抱著“這不可能”的排斥心理。但如果我們回頭看看Web開發(fā)的歷史,就知道“全?!逼鋵?shí)沒那么難。

主站蜘蛛池模板: 耿马| 平度市| 高淳县| 宁安市| 永德县| 莆田市| 织金县| 鄂托克旗| 禹城市| 青神县| 喀喇沁旗| 雷山县| 大英县| 山阴县| 肥东县| 旅游| 延庆县| 东乌| 图们市| 罗甸县| 顺昌县| 莫力| 瑞金市| 南城县| 东明县| 定陶县| 泗阳县| 出国| 浦县| 涞水县| 内黄县| 澄城县| 高密市| 乐东| 泉州市| 开阳县| 准格尔旗| 沁阳市| 宜都市| 南岸区| 伽师县|