現(xiàn)在越來越多的創(chuàng)業(yè)公司都想找全棧工程師,因此市場上就出現(xiàn)了很多偽全棧工程師,特別是學(xué)會了Node的前端工程師,前端工程師會Node就全棧了?這嚴重不符合我對全棧工程師的理解,這篇文章我主要是說下我對全棧工程師的個人看法。在我眼里,全棧工程師是下能玩硬件和驅(qū)動,上能寫網(wǎng)頁和js,中間能玩轉(zhuǎn)服務(wù)器和數(shù)據(jù)庫,沒事還能自己做個安卓或iOS App, 對IT系統(tǒng)有著全面深刻的理解,熟悉所負責(zé)項目的整體技術(shù)棧。
我認為全棧工程師的特質(zhì)應(yīng)該有以下幾個:強大的解決問題能力;廣博的知識面,快速學(xué)習(xí)能力,不給自己設(shè)限,主動學(xué)習(xí)新技術(shù);熟悉多種編程語言,熟悉整個系統(tǒng)從上到下的技術(shù)實現(xiàn)。
強大的解決問題能力
我覺得強大的解決問題能力是全棧工程師最重要的素質(zhì),也是全棧工程師的核心能力。
全棧工程師的解決問題能力,應(yīng)該不局限于軟件研發(fā)中碰到的技術(shù)問題,范圍可以擴展到工程和科學(xué)相關(guān)的問題。這一點我們要向國外的極客大神們學(xué)習(xí),國外很多極客具備硬件,軟件,網(wǎng)絡(luò)和人工智能等領(lǐng)域的全方位能力,例如無人機領(lǐng)域的大神拉菲羅·安德烈。亞馬遜運營中心里酷炫的、數(shù)以萬計的Kiva機器人,就出自他手。公司被亞馬遜收購后,這位“瘋狂”的科技極客把注意力投向了無人機領(lǐng)域,三年時間研制出全球首個全向無人機。2015年獲得“電子工程領(lǐng)域的諾貝爾獎”的IEEE機器人和自動化國際會議大獎,被人稱為成為無人機之父。
在軟件開發(fā)過程中所遇到的問題,真正的技術(shù)問題只占一部分,很多問題可能是工程或管理方面的問題。全棧工程師善于用全領(lǐng)域的知識積累從更本質(zhì)的層面上找到解決問題的辦法,而不是局限于某一種技術(shù)上尋求解決方案。例如前段時間遇到的HTML5 Hybrid App在某些安卓手機上兼容問題,最終的解決方案就是修改js代碼,而是直接把Cordova的webview內(nèi)核換成了騰訊X5內(nèi)核,這個如果沒有全棧技術(shù)能力是不可能做到的。
快速學(xué)習(xí)能力,不給自己設(shè)限,主動學(xué)習(xí)新技術(shù)
全棧工程師應(yīng)該時刻保持開放的心態(tài),主動學(xué)習(xí)新技術(shù),能夠快速進入新技術(shù)領(lǐng)域。廣博的知識面有助于通過類比和知識遷移的方式,提高學(xué)習(xí)掌握新技術(shù)的速度。
例如做Java Web后端可以去熟悉前端開發(fā)的技術(shù)。做安卓開發(fā)的可以去學(xué)習(xí)iOS開發(fā)。做iOS的可以去學(xué)習(xí)下HTML5移動開發(fā),研究下js。
我們現(xiàn)在計算機體系其實都是相通的,不同的編程語言體系,不同的操作系統(tǒng)平臺,同樣的任務(wù)或技術(shù)架構(gòu)的處理方式可能是類似的,因此全棧工程師
現(xiàn)在我們已經(jīng)進入了移動互聯(lián)網(wǎng)的下半場,未來的大趨勢是人工智能,全棧工程師對于人工智能,機器學(xué)習(xí),深度學(xué)習(xí)等領(lǐng)域也要盡早準備學(xué)習(xí)了。
熟悉多種編程語言,熟悉整個系統(tǒng)從上到下的技術(shù)實現(xiàn)
我個人認為全棧工程師至少要熟悉5種編程語言,工作中不能只用一種特定編程語言。
現(xiàn)在TIOBE排行榜上主流的編程語言Java, C/C++, C#, Python, Javascript, PHP,Ruby,OC等都應(yīng)該熟悉,Groovy,Scala,Go,Swift,Kotlin等相對比較新的編程語言也應(yīng)該熟悉或了解幾種。這樣就可以根據(jù)具體情況(項目特質(zhì)和團隊情況)選擇合適的技術(shù)棧,而不是整個系統(tǒng)只能用一種語言完成。當然了,大的項目具體的代碼肯定應(yīng)該由團隊分工合作完成,但全棧工程師還是應(yīng)該對項目整個技術(shù)棧具備一定的掌控力。
做Java Web應(yīng)用的全棧工程師,應(yīng)該熟悉Java,Javascipt,CSS,HTML,SQL,XML等常用語言,并且熟悉常用的前后端技術(shù)框架,例如Spring,JPA,Mybatis,Jquery,AngularJs,React等。用PHP,Python,Ruby,微軟.net等技術(shù)棧做Web應(yīng)用的應(yīng)該也類似。
做移動互聯(lián)網(wǎng)應(yīng)用的全棧工程師,應(yīng)該熟悉Android,iOS開發(fā)或微信開發(fā),以及服務(wù)器端接口的開發(fā),這樣才能做到溝通無障礙。
全棧工程師的錢景和前景
成為一名真正的全棧工程師需要經(jīng)過長期的持續(xù)學(xué)習(xí)和不斷折騰,其中的甘苦只有自己知道。但和數(shù)年堅持一個領(lǐng)域的專家型人才相比,在薪酬方面全棧工程師可能并沒有優(yōu)勢,這是可以理解的,因為在就業(yè)市場上,特別是像BAT這些比較大的公司,傾向于給行業(yè)頂級水平的人才很高的報酬,這符合贏者通吃的社會法則。而全棧工程師,由于關(guān)注和學(xué)習(xí)的領(lǐng)域太多,有限的精力必然被分散,導(dǎo)致在某個特定領(lǐng)域會比不上領(lǐng)域?qū)<遥虼嗽诼殬I(yè)生涯早期和中期并不容易拿到足夠高的收入。
從長期回報看,全棧工程師在架構(gòu)師,CTO,技術(shù)合伙人等高端技術(shù)職務(wù)上會比領(lǐng)域技術(shù)專家更有優(yōu)勢,全面的技術(shù)背景有助于做出更加全面客觀的技術(shù)架構(gòu)和決策,從而對所在組織產(chǎn)生很大的正面影響。
對于創(chuàng)業(yè)公司,全棧工程師發(fā)揮空間會更大,多面手的特長可以幫助團隊快速完成早期技術(shù)產(chǎn)品,成為公司創(chuàng)始人或技術(shù)合伙人,發(fā)展前景會很大。每一個全棧工程師,都有過一個創(chuàng)業(yè)夢。能否創(chuàng)業(yè)成功,在于是否有足夠的勇氣,綜合能力和機遇。
真正的全棧工程師,對新技術(shù)有著強烈的好奇心,敢于不斷地走出自己的舒適區(qū),勇敢進入新的技術(shù)領(lǐng)域!
-
工程師
+關(guān)注
關(guān)注
59文章
1565瀏覽量
68411
發(fā)布評論請先 登錄
相關(guān)推薦
評論