如何成為一名全棧工程師?互聯(lián)網(wǎng)最熱的話(huà)題之一,似乎正在成為IT行業(yè)的新潮流和新趨勢(shì),廣大開(kāi)發(fā)人員之間對(duì)”全?!鳖?lèi)話(huà)題的討論也從未停止。曾經(jīng)看到過(guò)一篇關(guān)于全棧設(shè)計(jì)師的文章,毀譽(yù)參半。有的人認(rèn)為全棧只是一個(gè)頭銜而已,真正的還是看個(gè)人的能力和技術(shù)。
這個(gè)話(huà)題其實(shí)是對(duì)互聯(lián)網(wǎng)行業(yè)“技多”是否等于“全?!保吧疃取焙汀皬V度”哪個(gè)更重要的一場(chǎng)深層次的討論。
全棧工程師,也叫全端工程師,英文Full Stack developer,是指掌握多種技能,并能利用多種技能獨(dú)立完成產(chǎn)品的人。
全棧工程師是指,一個(gè)能處理數(shù)據(jù)庫(kù)、服務(wù)器、系統(tǒng)工程和客戶(hù)端的所有工作的工程師。根據(jù)項(xiàng)目的不同,客戶(hù)需要的可能是移動(dòng)棧、Web棧,或者原生應(yīng)用程序棧。
其實(shí),“全?!敝傅氖菫榱送瓿梢粋€(gè)項(xiàng)目,所需要的一系列技術(shù)的集合?!皸!笔侵敢幌盗凶幽K的集合。這些軟件子模塊或者組件組合在一起即可實(shí)現(xiàn)既定功能,不再需要其他模塊。
為什么全棧工程師會(huì)存在爭(zhēng)議?
優(yōu)勢(shì):全棧工程師的技術(shù)發(fā)展是橫向的,涉獵技術(shù)很廣,能快速的運(yùn)用他所掌握的技術(shù)知識(shí)開(kāi)發(fā)出產(chǎn)品原型。因?yàn)樗麄円曇案鼘掗?,思維更活躍,對(duì)技術(shù)和產(chǎn)品都十分敏感,對(duì)于任何技術(shù)或設(shè)計(jì),他總是有話(huà)可說(shuō)??梢詫?duì)團(tuán)隊(duì)中的每一個(gè)人都提供有益的幫助,能大大減少團(tuán)隊(duì)人員溝通、技術(shù)對(duì)接的時(shí)間和技術(shù)成本。所以他們當(dāng)中,很多人成為了創(chuàng)業(yè)者或者在創(chuàng)業(yè)公司擔(dān)任技術(shù)合伙人。
劣勢(shì):正是由于橫向的技術(shù)發(fā)展,導(dǎo)致全棧工程師往往博而不精。大多數(shù)自稱(chēng)為“全?!钡墓こ處煟纪A粼谝环N淺嘗輒止的“略懂”的境界。至于具體如何實(shí)現(xiàn),如何讓架構(gòu)更適合后面階段的模塊化開(kāi)發(fā),那就真不知道了。
即便如此,仍有人在問(wèn),如何成為全棧工程師?
一個(gè)合格的全棧開(kāi)發(fā)人員應(yīng)具有在構(gòu)建應(yīng)用程序時(shí)涉及的所有方面的功能知識(shí)和能力。
1) 掌握多門(mén)編程語(yǔ)言
你需要精通多門(mén)編程語(yǔ)言,JS,JAVA 、PHP、C#、Python、Ruby、Perl 等,因?yàn)槟愕拇蠖鄶?shù)核心業(yè)務(wù)處理都需要用這些語(yǔ)言來(lái)寫(xiě)。你既要掌握這些語(yǔ)言的語(yǔ)法,又需要非常熟悉如何基于這些語(yǔ)言進(jìn)行項(xiàng)目的架構(gòu)、設(shè)計(jì)、實(shí)現(xiàn)以及測(cè)試。
2) 運(yùn)用開(kāi)發(fā)框架和第三方庫(kù)
流行的開(kāi)發(fā)語(yǔ)言,一般都伴有出色的開(kāi)發(fā)框架,比如JAVA的Spring、MyBatis、Hibernate,Python的Django,PHP的 thinkphp、yin,nodeJs的 express 等等。
3) 前端技術(shù)
前端技術(shù)在今天的項(xiàng)目和產(chǎn)品研發(fā)過(guò)程中變得愈加重要。除了實(shí)現(xiàn)產(chǎn)品功能,用戶(hù)體驗(yàn)也是檢驗(yàn)產(chǎn)品是否成功的標(biāo)準(zhǔn)之一。而這都依賴(lài)于前端技術(shù)的實(shí)現(xiàn),你至少需要掌握 HTML5、CSS3、JavaScript 等基本前端技術(shù),同時(shí)進(jìn)一步學(xué)習(xí) JQuery、LESS、SASS、AngularJS或REACT等前端框架或第三方庫(kù)。
4) 數(shù)據(jù)庫(kù)與緩存
任何產(chǎn)品或項(xiàng)目都需要一個(gè)數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù)。作為全棧工程師,你也需要至少掌握一到兩個(gè)數(shù)據(jù)庫(kù),并知道怎樣與數(shù)據(jù)庫(kù)進(jìn)行交互。目前流行的數(shù)據(jù)庫(kù)主要有MySQL、MongoDB、Redis、Oracle、SQLServer等。MongoDB作為文檔型數(shù)據(jù)庫(kù),在互聯(lián)網(wǎng)產(chǎn)品中正被越來(lái)越多地使用,對(duì)于規(guī)模稍大一些的項(xiàng)目,我仍推薦使用MySQL或商用的Oracle作為后端數(shù)據(jù)庫(kù)。而Redis這樣的內(nèi)存數(shù)據(jù)庫(kù)則可以用于緩存,以提升系統(tǒng)的性能。
5) 基本設(shè)計(jì)能力
大部分關(guān)于全棧工程師的文章或討論中都很少涉及到設(shè)計(jì)能力的要求。但我卻認(rèn)為這項(xiàng)技能非常重要,基本的原型設(shè)計(jì),UI設(shè)計(jì),UX設(shè)計(jì)都是需要了解的。
6) 除了良好的開(kāi)發(fā)技術(shù)知識(shí),自我要求也是全棧工程師必備的因素:
全局性思維
良好的溝通能力
創(chuàng)造力
好奇心
時(shí)間管理能力
總結(jié)
熟練的掌握前端、后端、客戶(hù)端方向的知識(shí)內(nèi)容,每天都花時(shí)間來(lái)鉆研也得花10年左右的時(shí)間。所以,全棧工程師決不是一夜練成的,你需要打好技術(shù)基礎(chǔ),強(qiáng)化核心技能,并持續(xù)學(xué)習(xí)才能應(yīng)對(duì)更多的挑戰(zhàn)。
-
工程師
+關(guān)注
關(guān)注
59文章
1590瀏覽量
69492
發(fā)布評(píng)論請(qǐng)先 登錄


硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師

如何成為一名合格的KaihongOS北向應(yīng)用開(kāi)發(fā)工程師
如何成為一名嵌入式軟件工程師?


怎樣才能更好享受到8K視頻帶來(lái)的優(yōu)勢(shì)
如何成為嵌入式開(kāi)發(fā)工程師?
如何成為一名合格的北向應(yīng)用開(kāi)發(fā)工程師

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過(guò)于真實(shí) #YXC晶振 #揚(yáng)興科技
想成為年薪百萬(wàn)的電機(jī)控制工程師,這幾個(gè)問(wèn)題你不得不會(huì)!

通過(guò)簡(jiǎn)單的電阻電容組合怎樣才能把25K方波變成正弦?

評(píng)論