現(xiàn)在越來(lái)越多的創(chuàng)業(yè)公司都想找全棧工程師蜡塌,因此市場(chǎng)上就出現(xiàn)了很多偽全棧工程師仑性,特別是學(xué)會(huì)了Node的前端工程師军掂,前端工程師會(huì)Node就全棧了蠕搜?這嚴(yán)重不符合我對(duì)全棧工程師的理解怎茫,這篇文章我主要是說(shuō)下我對(duì)全棧工程師的個(gè)人看法。在我眼里妓灌,全棧工程師是下能玩硬件和驅(qū)動(dòng)轨蛤,上能寫(xiě)網(wǎng)頁(yè)和js,中間能玩轉(zhuǎn)服務(wù)器和數(shù)據(jù)庫(kù)虫埂,沒(méi)事還能自己做個(gè)安卓或iOS App祥山, 對(duì)IT系統(tǒng)有著全面深刻的理解,熟悉所負(fù)責(zé)項(xiàng)目的整體技術(shù)棧掉伏。
我認(rèn)為全棧工程師的特質(zhì)應(yīng)該有以下幾個(gè):強(qiáng)大的解決問(wèn)題能力缝呕;廣博的知識(shí)面,快速學(xué)習(xí)能力斧散,不給自己設(shè)限供常,主動(dòng)學(xué)習(xí)新技術(shù);熟悉多種編程語(yǔ)言鸡捐,熟悉整個(gè)系統(tǒng)從上到下的技術(shù)實(shí)現(xiàn)栈暇。
強(qiáng)大的解決問(wèn)題能力
我覺(jué)得強(qiáng)大的解決問(wèn)題能力是全棧工程師最重要的素質(zhì),也是全棧工程師的核心能力箍镜。
全棧工程師的解決問(wèn)題能力源祈,應(yīng)該不局限于軟件研發(fā)中碰到的技術(shù)問(wèn)題,范圍可以擴(kuò)展到工程和科學(xué)相關(guān)的問(wèn)題色迂。這一點(diǎn)我們要向國(guó)外的極客大神們學(xué)習(xí)香缺,國(guó)外很多極客具備硬件,軟件脚草,網(wǎng)絡(luò)和人工智能等領(lǐng)域的全方位能力赫悄,例如無(wú)人機(jī)領(lǐng)域的大神拉菲羅·安德烈。亞馬遜運(yùn)營(yíng)中心里酷炫的馏慨、數(shù)以萬(wàn)計(jì)的Kiva機(jī)器人埂淮,就出自他手。公司被亞馬遜收購(gòu)后写隶,這位“瘋狂”的科技極客把注意力投向了無(wú)人機(jī)領(lǐng)域倔撞,三年時(shí)間研制出全球首個(gè)全向無(wú)人機(jī)。2015年獲得“電子工程領(lǐng)域的諾貝爾獎(jiǎng)”的IEEE機(jī)器人和自動(dòng)化國(guó)際會(huì)議大獎(jiǎng)慕趴,被人稱(chēng)為無(wú)人機(jī)之父痪蝇。
在軟件開(kāi)發(fā)過(guò)程中所遇到的問(wèn)題鄙陡,真正的技術(shù)問(wèn)題只占一部分,很多問(wèn)題可能是工程或管理方面的問(wèn)題躏啰。全棧工程師善于用全領(lǐng)域的知識(shí)積累從更本質(zhì)的層面上找到解決問(wèn)題的辦法趁矾,而不是局限于某一種技術(shù)上尋求解決方案。例如前段時(shí)間遇到的HTML5 Hybrid App在某些安卓手機(jī)上兼容問(wèn)題给僵,最終的解決方案就是修改js代碼毫捣,而是直接把Cordova的webview內(nèi)核換成了騰訊X5內(nèi)核,這個(gè)如果沒(méi)有全棧技術(shù)能力是不可能做到的帝际。
快速學(xué)習(xí)能力蔓同,不給自己設(shè)限,主動(dòng)學(xué)習(xí)新技術(shù)
全棧工程師應(yīng)該時(shí)刻保持開(kāi)放的心態(tài)蹲诀,主動(dòng)學(xué)習(xí)新技術(shù)斑粱,能夠快速進(jìn)入新技術(shù)領(lǐng)域。廣博的知識(shí)面有助于通過(guò)類(lèi)比和知識(shí)遷移的方式脯爪,提高學(xué)習(xí)掌握新技術(shù)的速度则北。
例如做Java Web后端可以去熟悉前端開(kāi)發(fā)的技術(shù)。做安卓開(kāi)發(fā)的可以去學(xué)習(xí)iOS開(kāi)發(fā)披粟。做iOS的可以去學(xué)習(xí)下HTML5移動(dòng)開(kāi)發(fā)咒锻,研究下js。
我們現(xiàn)在計(jì)算機(jī)體系其實(shí)都是相通的守屉,不同的編程語(yǔ)言體系,不同的操作系統(tǒng)平臺(tái)蒿辙,同樣的任務(wù)或技術(shù)架構(gòu)的處理方式可能是類(lèi)似的拇泛,因此全棧工程師
現(xiàn)在我們已經(jīng)進(jìn)入了移動(dòng)互聯(lián)網(wǎng)的下半場(chǎng),未來(lái)的大趨勢(shì)是人工智能思灌,全棧工程師對(duì)于人工智能俺叭,機(jī)器學(xué)習(xí),深度學(xué)習(xí)等領(lǐng)域也要盡早準(zhǔn)備學(xué)習(xí)了泰偿。
熟悉多種編程語(yǔ)言熄守,熟悉整個(gè)系統(tǒng)從上到下的技術(shù)實(shí)現(xiàn)
我個(gè)人認(rèn)為全棧工程師至少要熟悉5種編程語(yǔ)言,工作中不能只用一種特定編程語(yǔ)言耗跛。
現(xiàn)在TIOBE排行榜上主流的編程語(yǔ)言Java, C/C++, C#, Python, Javascript, PHP,Ruby,OC等都應(yīng)該熟悉裕照,Groovy,Scala,Go,Swift,Kotlin等相對(duì)比較新的編程語(yǔ)言也應(yīng)該熟悉或了解幾種。這樣就可以根據(jù)具體情況(項(xiàng)目特質(zhì)和團(tuán)隊(duì)情況)選擇合適的技術(shù)棧调塌,而不是整個(gè)系統(tǒng)只能用一種語(yǔ)言完成晋南。當(dāng)然了,大的項(xiàng)目具體的代碼肯定應(yīng)該由團(tuán)隊(duì)分工合作完成羔砾,但全棧工程師還是應(yīng)該對(duì)項(xiàng)目整個(gè)技術(shù)棧具備一定的掌控力负间。
做Java Web應(yīng)用的全棧工程師偶妖,應(yīng)該熟悉Java,Javascipt,CSS,HTML,SQL,XML等常用語(yǔ)言,并且熟悉常用的前后端技術(shù)框架政溃,例如Spring趾访,JPA,Mybatis董虱,Jquery腹缩,AngularJs,React等空扎。用PHP藏鹊,Python,Ruby转锈,微軟.net等技術(shù)棧做Web應(yīng)用的應(yīng)該也類(lèi)似盘寡。
做移動(dòng)互聯(lián)網(wǎng)應(yīng)用的全棧工程師,應(yīng)該熟悉Android撮慨,iOS開(kāi)發(fā)或微信開(kāi)發(fā)竿痰,以及服務(wù)器端接口的開(kāi)發(fā),這樣才能做到溝通無(wú)障礙砌溺。
全棧工程師的錢(qián)景和前景
成為一名真正的全棧工程師需要經(jīng)過(guò)長(zhǎng)期的持續(xù)學(xué)習(xí)和不斷折騰影涉,其中的甘苦只有自己知道。但和數(shù)年堅(jiān)持一個(gè)領(lǐng)域的專(zhuān)家型人才相比规伐,在薪酬方面全棧工程師可能并沒(méi)有優(yōu)勢(shì)蟹倾,這是可以理解的,因?yàn)樵诰蜆I(yè)市場(chǎng)上猖闪,特別是像BAT這些比較大的公司鲜棠,傾向于給行業(yè)頂級(jí)水平的人才很高的報(bào)酬,這符合贏(yíng)者通吃的社會(huì)法則培慌。而全棧工程師豁陆,由于關(guān)注和學(xué)習(xí)的領(lǐng)域太多,有限的精力必然被分散吵护,導(dǎo)致在某個(gè)特定領(lǐng)域會(huì)比不上領(lǐng)域?qū)<液幸簦虼嗽诼殬I(yè)生涯早期和中期并不容易拿到足夠高的收入。
從長(zhǎng)期回報(bào)看馅而,全棧工程師在架構(gòu)師祥诽,CTO,技術(shù)合伙人等高端技術(shù)職務(wù)上會(huì)比領(lǐng)域技術(shù)專(zhuān)家更有優(yōu)勢(shì)用爪,全面的技術(shù)背景有助于做出更加全面客觀(guān)的技術(shù)架構(gòu)和決策原押,從而對(duì)所在組織產(chǎn)生很大的正面影響。
對(duì)于創(chuàng)業(yè)公司偎血,全棧工程師發(fā)揮空間會(huì)更大诸衔,多面手的特長(zhǎng)可以幫助團(tuán)隊(duì)快速完成早期技術(shù)產(chǎn)品盯漂,成為公司創(chuàng)始人或技術(shù)合伙人,發(fā)展前景會(huì)很大笨农。每一個(gè)全棧工程師就缆,都有過(guò)一個(gè)創(chuàng)業(yè)夢(mèng)。能否創(chuàng)業(yè)成功谒亦,在于是否有足夠的勇氣竭宰,綜合能力和機(jī)遇。
真正的全棧工程師份招,對(duì)新技術(shù)有著強(qiáng)烈的好奇心切揭,敢于不斷地走出自己的舒適區(qū),勇敢進(jìn)入新的技術(shù)領(lǐng)域锁摔!