全棧工程師

1.什么是全棧工程師

最近有個(gè)招聘挺火的:

Is it reasonable to expect mere morals to have mastery over every facet of the development stack? Probably not, but Facebook can ask for it. I was told at OSCON by a Facebook employee that they only hire ‘Full Stack’ developers. Well, what does that mean…

這是facebook的招聘青瀑,說是只招Full Stack Engineer剃诅,在中文翻譯過來就是全棧工程師舷丹,也叫全端工程師。那么什么是全棧工程師呢,就是前端和后端全通。前端技術(shù)有html未妹,css和javascript,后端技術(shù)有多種流派空入,比如java络它、php、python等执庐,除此之外酪耕,還需要數(shù)據(jù)庫設(shè)計(jì),比如mysql轨淌、oracle迂烁、Microsoft SQL Server等。說點(diǎn)通熟易懂的递鹉,我們把it開發(fā)行業(yè)與建筑業(yè)相比盟步。一個(gè)全棧工程師能獨(dú)立完成一棟5層的別墅;而一堆普通前端后端工程師一起完成一幢上百層的摩天大廈躏结。話說回來却盘,其實(shí)我們IT民工與他們普通民工,并沒有本質(zhì)上的區(qū)別媳拴,他們?cè)诎岽u黄橘,而我們?cè)诎醔it,他們曬著太陽累一點(diǎn)活得長一點(diǎn)屈溉,我們吹著空調(diào)卻死得早一點(diǎn)塞关。

2.全棧工程師的價(jià)值

也有人說,你牛逼子巾,懂八種技術(shù)帆赢,但你能干八個(gè)人的活嗎小压?全棧工程師并不是說一個(gè)人能干幾個(gè)人的活,我們從幾個(gè)方面來看待這個(gè)問題椰于。

1)溝通成本

項(xiàng)目越大怠益,溝通成本越高,做過項(xiàng)目管理的人都知道瘾婿,項(xiàng)目中的人力是1+1<2的蜻牢,人越多效率越低。因?yàn)闇贤ㄊ切枰杀镜钠悖煌夹g(shù)的人各說各話孩饼,前端和后端是一定會(huì)掐架的,后端API和移動(dòng)客戶端也是一定會(huì)掐架的竹挡。每個(gè)人都會(huì)為自己的利益而戰(zhàn),毫不為已的人是不存在的立膛。

而全棧工程師的成本幾乎為零揪罕,因?yàn)楦鞣N技術(shù)都懂,知道問題的所在宝泵,一不小心自己演示怎么去做就變成全都自己干了好啰。即使是在團(tuán)隊(duì)協(xié)作中,與不同技術(shù)人員的溝通也會(huì)容易得多儿奶。一個(gè)不懂技術(shù)的你框往,讓一個(gè)后端和一個(gè)前端去溝通,那完全是雞同鴨講闯捎,更不用說設(shè)計(jì)師與后端了椰弊。但如果有一個(gè)人懂產(chǎn)品懂設(shè)計(jì)懂前端懂后端,那溝通的結(jié)果顯然不一樣瓤鼻,因?yàn)樗麄冎v的秉版,彼此都能聽得懂。

2)全局觀念

現(xiàn)代項(xiàng)目的開發(fā)茬祷,很少說只用到一兩種技術(shù)的清焕,特別是移動(dòng)互聯(lián)網(wǎng)大潮下。隨便一個(gè)互聯(lián)網(wǎng)項(xiàng)目中用到的技術(shù)祭犯,就會(huì)需要用到后端開發(fā)秸妥、前端開發(fā)、界面設(shè)計(jì)沃粗、用戶體驗(yàn)設(shè)計(jì)粥惧、數(shù)據(jù)庫、安全等級(jí)保護(hù)設(shè)計(jì)陪每、各種移動(dòng)客戶端影晓、三屏合一設(shè)計(jì)镰吵、restFul API風(fēng)格設(shè)計(jì)和OAuth授權(quán)等等,一些比較前衛(wèi)的項(xiàng)目挂签,可能會(huì)用到第三方開發(fā)疤祭,像微信SDK,微博SDK饵婆,支付寶SDK等等勺馆。

Web前端也遠(yuǎn)遠(yuǎn)不是從前的切個(gè)圖用個(gè)jQuery上個(gè)AJAX兼容各種瀏覽器那么簡單了。現(xiàn)代的Web前端侨核,你需要用到模塊化開發(fā)草穆、多屏兼容、MVC搓译,各種復(fù)雜的交互與優(yōu)化悲柱,甚至你需要用到Node.js來協(xié)助前端的開發(fā)。

所以說一個(gè)現(xiàn)代化的項(xiàng)目些己,是一個(gè)非常復(fù)雜的構(gòu)成豌鸡,我們需要一個(gè)人來掌控全局,他不需要是各種技術(shù)的頂級(jí)專家段标,但他需要熟悉到各種技術(shù)原理與實(shí)現(xiàn)涯冠。對(duì)于一個(gè)團(tuán)隊(duì)特別是互聯(lián)網(wǎng)企業(yè)來說,有一個(gè)全局性思維的人非常非常重要逼庞。

3)項(xiàng)目進(jìn)度

軟件工程項(xiàng)目的進(jìn)度管理是比較困難的事情趁窃,完全按部就班的進(jìn)行一個(gè)項(xiàng)目幾乎是不可能的十电。期間將涉及到諸多問題赊舶,或多或少將影響項(xiàng)目的安排摸恍。在制定項(xiàng)目可行性方案時(shí)最大約束就是合同期,里程碑璧南、基線等東西吨瞎。最根本的計(jì)劃只有一條:竭盡一切所能使項(xiàng)目在合同期內(nèi)保證質(zhì)量的完成項(xiàng)目全部工作。

那么穆咐,誰來評(píng)估并且制定周密可行性方案成了首要問題颤诀。這個(gè)艱巨的任務(wù)只能落在對(duì)項(xiàng)目有全面了解,并且懂各方面技術(shù)的人員身上对湃。計(jì)劃要分粗細(xì)崖叫,粗的計(jì)劃就是里程碑,界定某段時(shí)間內(nèi)要出哪些成果拍柒。細(xì)的計(jì)劃也就是任務(wù)執(zhí)行計(jì)劃心傀,要注意預(yù)留單元測試修改的時(shí)間,并且要預(yù)留未知干擾的時(shí)間拆讯。計(jì)劃的制定不單單要滿足工期要求還要可行脂男,再漂亮的計(jì)劃如果不可行就是花瓶养叛。計(jì)劃是可以調(diào)整的,但里程碑計(jì)劃盡量不要調(diào)整宰翅∑基線是一些重要的里程碑,一旦建立汁讼,萬不得已是不能改變的淆攻,否則在多線程的項(xiàng)目將出現(xiàn)扯皮推諉的情況。同時(shí)設(shè)置各個(gè)檢查點(diǎn)嘿架,在規(guī)定的時(shí)間間隔內(nèi)對(duì)項(xiàng)目進(jìn)行檢查瓶珊,比較實(shí)際與計(jì)劃之間的差異,并根據(jù)差異進(jìn)行調(diào)整耸彪。

接下來伞芹,我們需要人來計(jì)劃執(zhí)行情況跟蹤,必須定期跟蹤計(jì)劃的執(zhí)行情況蝉娜,根據(jù)實(shí)際情況做相應(yīng)調(diào)整丑瞧。也就是要監(jiān)督計(jì)劃執(zhí)行。監(jiān)督審查跟蹤蜀肘,推薦由女生來擔(dān)當(dāng),但是調(diào)整項(xiàng)目計(jì)劃需要項(xiàng)目負(fù)責(zé)人來協(xié)調(diào)稽屏。

對(duì)于驗(yàn)收扮宠,每個(gè)任務(wù)的成果都要嚴(yán)格驗(yàn)收,如果有問題沒有及時(shí)解決狐榔,對(duì)后面的工作壓力太大坛增,往往出現(xiàn)前面都是“按計(jì)劃執(zhí)行”,到后面爆發(fā)性的延期薄腻。驗(yàn)收不僅是黑盒子測試收捣,同時(shí)也需要白盒子測試。

風(fēng)險(xiǎn)預(yù)測項(xiàng)目管理庵楷,要有風(fēng)險(xiǎn)意識(shí)罢艾,我起初沒怎么重視,后來經(jīng)歷過了才有感觸尽纽。最大的風(fēng)險(xiǎn)不是在技術(shù)層面上咐蚯,而是在項(xiàng)目組成員上,要注意在項(xiàng)目開發(fā)期間會(huì)不會(huì)有人離開弄贿,會(huì)不會(huì)有人參加春锋,項(xiàng)目組成員在此期間會(huì)不會(huì)休假或外出(如結(jié)婚、生子)差凹,某人生病了期奔,要及時(shí)做好調(diào)整計(jì)劃準(zhǔn)備等等侧馅。技術(shù)方面的可以適當(dāng)預(yù)留新技術(shù)的摸索時(shí)間。

3.全棧工程師的窘境

清高呐萌,自命不凡馁痴。這倒也奇怪了,我接觸很多學(xué)弟或者同學(xué)<也有一些學(xué)長>搁胆,他們的特點(diǎn)都是這個(gè)弥搞,也許他們也都有成長為全棧工程師的資質(zhì)吧,大家都是恃才傲物渠旁。懂一些技術(shù)IT同學(xué)就覺得自己很屌很牛逼的樣子攀例,其實(shí)多數(shù)人員只是知其然不知其所然。然而顾腊,全棧工程師是能了解全部的粤铭,這個(gè)特點(diǎn)就更明顯了。

對(duì)別人要求嚴(yán)格杂靶,喜歡追求完美梆惯,許多事情不小心就全做了÷鹂澹總是覺得別人這不行那不是垛吗,把新手要求的盡善盡美,這往往大家都很累烁登,我曾經(jīng)這么要求過怯屉,后來他就不跟我完了,說我要求太高了饵沧。

低情商锨络,交不到女朋友。學(xué)習(xí)it編程要學(xué)習(xí)的東西很多狼牺,沒有那么多時(shí)間去想其他事情羡儿。這也往往造成程序員低情商,不懂人情世故是钥,全棧工程師更甚掠归。寫到此處,想到一則故事:兩名開發(fā)工程師悄泥,一個(gè)測試人員拂到。其中,兩名開發(fā)工程師是男的码泞,一個(gè)水平高兄旬,一個(gè)水平低,一個(gè)測試人員,女的领铐。好的開發(fā)程序員呢悯森,寫的程序近乎完美,各種好绪撵,各種高質(zhì)量瓢姻,測試的妹紙幾乎找不到任何漏洞。差的開發(fā)工程師呢音诈,成天各種bug幻碱,各種漏洞,總是被測試妹紙叫過去臭罵一頓细溅,回來寫了又提交褥傍。后來是,測試妹紙和差的開發(fā)工程師跑了喇聊。原因是恍风,差的開發(fā)工程師用心不專,但是呢態(tài)度非常好誓篱,一來二往朋贬,和測試妹紙關(guān)系好了。

如果一個(gè)公司不太懂全棧工程師的價(jià)值窜骄,那么全棧工程師的地位將會(huì)很尷尬锦募,說得不好聽一點(diǎn),全棧工程師就是什么都會(huì)邻遏,然后糠亩,你就是什么都不會(huì)。

我不是一個(gè)非常專業(yè)的Web前端党远,不熟悉node.js;也不是一個(gè)專業(yè)的移動(dòng)端開發(fā)工程師富弦,不精通移動(dòng)端開發(fā)沟娱;更不是一個(gè)運(yùn)維工程師,不熟悉高端冗余算法等腕柜。用人單位會(huì)問我济似,你到底是專業(yè)做哪一個(gè)方面的,我為什么要給你這么高的工資盏缤?

4.我為什么成為全棧工程師

全棧工程師和我基本上是一樣的砰蠢,全棧工程師不是為了工作。作為一個(gè)全棧工程師唉铜,不是公司培養(yǎng)出來的台舱,而是逼出來的,不是公司逼出來的,而是自己把自己逼出來的竞惋。自己想要精通技術(shù)的各原理柜去,方便以后實(shí)現(xiàn)夢想。

沒有夢想是可憐的拆宛,沒有實(shí)現(xiàn)夢想的手段或者技術(shù)是可悲的嗓奢。慶幸的是,我一直懷揣著夢想浑厚,并且想用自己的雙手去實(shí)現(xiàn)股耽。

有創(chuàng)業(yè)的心,但我又不會(huì)空手套白狼钳幅,忽悠免費(fèi)勞動(dòng)力物蝙,所以只能自己干。自己干贡这,必須各個(gè)方面都要學(xué)通茬末,哪里不會(huì)就去學(xué)哪里。

曾經(jīng)看過一句話盖矫,大意是這樣的:一般程序員寫程序丽惭,做測試等,牛逼一點(diǎn)的程序員寫算法辈双、Linux內(nèi)核或者Windows內(nèi)核開發(fā)责掏,更牛逼的程序員寫驅(qū)動(dòng)程序開發(fā)。因?yàn)閷戲?qū)動(dòng)程序需要精通軟件語言湃望,同時(shí)精通硬件語言换衬。

大學(xué),學(xué)校目標(biāo)培養(yǎng)的是兩領(lǐng)人才——領(lǐng)導(dǎo)和領(lǐng)軍人才证芭。在電子信息工程學(xué)院瞳浦,目標(biāo)是想把我們培養(yǎng)成驅(qū)動(dòng)程序開發(fā)工程師。

在大學(xué)課程上废士,學(xué)習(xí)C叫潦,學(xué)習(xí)Linux(Ubuntu、CentOS官硝、Slackware)矗蕊,MATLAB編程,Verilog氢架,F(xiàn)PGA編程傻咖,51單片機(jī)編程等軟件或者硬件語言。

在大學(xué)課程選修上岖研,要么跟老師學(xué)習(xí)要么是私自學(xué)習(xí)卿操,ASP,Microsoft SQL server,PHP硬纤,MySQL解滓,HTML,css筝家,JavaScript等洼裤。

在大學(xué)的社團(tuán)活動(dòng),加入攝影協(xié)會(huì)溪王,能運(yùn)用Photoshop作圖腮鞍,修圖,切圖莹菱。雖然在專業(yè)設(shè)計(jì)師眼中只有半吊子的水平移国,但在開發(fā)者中算是佼佼者了。

編程方面道伟,學(xué)習(xí)康盛公司框架迹缀,開發(fā)康盛Discuz!的插件,從Discuz!X系列開始接觸蜜徽,開發(fā)插件是大學(xué)期間花最多時(shí)間的一件事情祝懂。

后來在工作了,領(lǐng)導(dǎo)給我職位是CTO拘鞋。網(wǎng)站從零開始干起砚蓬,由于要快速建起,就用了康盛公司框架盆色。雖然是CTO灰蛙,但是很多事情必須得自己干,就連搬運(yùn)服務(wù)器的事情都要親歷而為——因?yàn)榈紫聸]人隔躲!

由于業(yè)務(wù)發(fā)展摩梧,我們開發(fā)了觸屏版,Android宣旱,iOS仅父,以及開放平臺(tái)(oauth)。誠然响鹃,不是我一個(gè)人把全部代碼都寫了驾霜。觸屏版很簡單案训,寫了幾個(gè)頁面买置。客戶端上强霎,是我的弱項(xiàng)忿项,錯(cuò)失了移動(dòng)互聯(lián)網(wǎng)的大好時(shí)間<時(shí)間為2011年,以移動(dòng)平臺(tái)為主的:微信估值800億美元,Instagram估值300億美元(產(chǎn)于2012年4月)>轩触。雖和Android工程師一起開發(fā)過寞酿,但沒有完整的編寫過一個(gè)apk,目前邊學(xué)習(xí)邊編程項(xiàng)目脱柱。對(duì)于iOS伐弹,不得不說是我的更弱項(xiàng),只是看過幾本書榨为,沒有真正的編程過惨好,還不算真正的全棧。如果是全棧随闺,一定能解決各個(gè)問題日川,不能被技術(shù)人員忽悠。

開放平臺(tái)Oauth矩乐,RESTFUL風(fēng)格設(shè)計(jì)等龄句,這些是后端的知識(shí),編寫它們自然不在話下散罕。在系統(tǒng)性能調(diào)優(yōu)上分歇,學(xué)習(xí)并運(yùn)用了ThinkPHP,Spring笨使,Django等框架思想到新的項(xiàng)目上卿樱,在UIUE上,能熟練的使用bootstrap框架去實(shí)現(xiàn)硫椰。

如果不是為了創(chuàng)業(yè)繁调,我不會(huì)去學(xué)習(xí)那么多技術(shù)。學(xué)了這么多技術(shù)靶草,我的價(jià)值可能也就是個(gè)20k多工資的架構(gòu)師或者技術(shù)經(jīng)理蹄胰,這個(gè)價(jià)格對(duì)不起多年的付出。一個(gè)真正的全棧工程師奕翔,目標(biāo)只有一個(gè):創(chuàng)業(yè)裕寨。

5.全棧工程師的資格與成長路勁

原型設(shè)計(jì),Photoshop派继,前端開發(fā)宾袜,后端開發(fā),移動(dòng)端開發(fā)驾窟,運(yùn)營維護(hù)庆猫,安全等保,數(shù)據(jù)分析...好像都會(huì)了绅络,這算Full Stack Engineer了么月培?

不嘁字,這只是踏上成為Full Stack Engineer的第一步。你知道目前只是每個(gè)stack都懂一點(diǎn)杉畜,離senior或者expert還差得遠(yuǎn)纪蜒,而要每個(gè)stack都做到極致,需要大量的時(shí)間和精力此叠。精力有限纯续,F(xiàn)ullStack 有了廣度自然要犧牲一下深度。那么我想說灭袁,再怎么犧牲深度杆烁,如果各領(lǐng)域都寫過幾行代碼、淺嘗輒止简卧,那肯定是不夠的兔魂。那樣可能只算是一個(gè)愛折騰的 geek 而不是工程師。FSE的特點(diǎn)應(yīng)該和黑客的務(wù)必有的特點(diǎn)類似:高智商举娩,好玩析校,探索。FSE是一直學(xué)習(xí)中的铜涉,務(wù)必要高智商<參考《黑客與畫家》>智玻。簡單來說,F(xiàn)SE更像是“全才大跑酱”吊奢,對(duì)任何一個(gè)領(lǐng)域都達(dá)到了該領(lǐng)域的專業(yè)人士的平均程度,更像是 Engineer × N纹烹。

說具體點(diǎn):

前端開發(fā)页滚,在HTML+CSS上,能做到兼容主流所有瀏覽器铺呵,并且熟知網(wǎng)頁優(yōu)化裹驰,知道如何讓網(wǎng)頁變得更加快速,也能做到搜索引擎優(yōu)化片挂。在JavaScript上幻林,至少會(huì)用js寫出各種效果來。水平不至于達(dá)到能自己寫一個(gè)js框架音念,但至少能用好一個(gè)框架吧沪饺,比如web端的jQuery。

后端開發(fā)闷愤,至少精通一種后端流派語言整葡,比如Java,或者PHP肝谭,或者Python掘宪,能力無需到達(dá)一個(gè)人開發(fā)一個(gè)高可用系統(tǒng)框架,但至少也能熟練使用一種框架攘烛,研究過框架的代碼魏滚,比如Java里面的ssh框架,PHP里面的ThinkPHP框架坟漱,Python里面的Django框架鼠次。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市芋齿,隨后出現(xiàn)的幾起案子腥寇,更是在濱河造成了極大的恐慌,老刑警劉巖觅捆,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赦役,死亡現(xiàn)場離奇詭異,居然都是意外死亡栅炒,警方通過查閱死者的電腦和手機(jī)掂摔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赢赊,“玉大人乙漓,你說我怎么就攤上這事∈鸵疲” “怎么了叭披?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玩讳。 經(jīng)常有香客問我涩蜘,道長,這世上最難降的妖魔是什么熏纯? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任皱坛,我火速辦了婚禮,結(jié)果婚禮上豆巨,老公的妹妹穿的比我還像新娘剩辟。我一直安慰自己,他們只是感情好往扔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布贩猎。 她就那樣靜靜地躺著,像睡著了一般萍膛。 火紅的嫁衣襯著肌膚如雪吭服。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天蝗罗,我揣著相機(jī)與錄音艇棕,去河邊找鬼蝌戒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛沼琉,可吹牛的內(nèi)容都是我干的北苟。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼打瘪,長吁一口氣:“原來是場噩夢啊……” “哼友鼻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起闺骚,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤彩扔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后僻爽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虫碉,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年胸梆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蔗衡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乳绕,死狀恐怖绞惦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情洋措,我是刑警寧澤济蝉,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站菠发,受9級(jí)特大地震影響王滤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜滓鸠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一雁乡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糜俗,春花似錦踱稍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至楔敌,卻和暖如春啤挎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卵凑。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工庆聘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胜臊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓伙判,卻偏偏與公主長得像象对,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子澳腹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容