-
1 # 慕課網
-
2 # IT人劉俊明
答案是肯定的,前端程式設計師一定要往全棧方向發展,原因有以下幾點:
第一:前端開發後端化是一個趨勢。目前前端開發得到越來越多的重視,尤其是隨著移動網際網路的發展,前端技術的場景開發是目前一個重要的開發領域。隨著NodeJS的普及,前端開發的後端化進入了一個新的發展階段,輕量級後端服務將成為一個應用的重點領域。
第二:全棧程式設計師在Web開發領域逐漸流行。Web開發領域的全棧程式設計師成為目前科技公司招聘的主要崗位,很多大型網際網路公司目前對全棧程式設計師的需求量越來越大,甚至有的網際網路公司只招聘全棧程式設計師。
第三:全棧程式設計師能更好的適應開發團隊的任務分配。由於全棧程式設計師對前後端開發都比較瞭解,所以在任務安排時會更靈活。同時,全棧程式設計師之間的交流也更直接和高效,有效遮蔽了傳統前端不懂後端而導致的部分溝通問題。
第四:能有效縮短開發週期。按照歷史經驗來看,全棧程式設計師團隊在專案開發的過程中效率更高,開發週期也相對更短,團隊整體的能力提升也比較明顯。全棧程式設計師團隊在做Code Review的時候有明顯的優勢,因為在技術手段和編碼方式等方面的溝通上沒有任何障礙,每次交流都會得會有一定程度的收穫。
第五:全棧程式設計師團隊更容易創新。與傳統開發團隊比起來,全棧程式設計師團隊明顯在技術選型上更為大膽,也更具有創新精神,因為全棧程式設計師團隊的氛圍更容易讓程式設計師有一種“let me try”的想法,而普通開發團隊則很難有這種氛圍,崗位限制了程式設計師的創新能力。
目前,不僅在Web開發領域,在移動互聯開發領域和大資料開發領域,也在逐漸對程式設計師提出了全棧開發的要求。所以,對於前端開發人員來說,走向後端是一個必然的趨勢,對於後端開發人員來說,走向前端也不可避免。
如果有軟體開發方面的問題,也可以諮詢我。
-
3 # 正宗烏龜魚
前端為什麼會流行?因為使用者體驗越來越得到重視,而前端技術適合做使用者體驗。
前端為什麼會後端化?因為前端人才要生存。
事情很容易理解,前後端技術是由兩個不同問題域延伸出來的技術,這也決定了各自的技術特點和應用範圍。通俗地說:前端的核心競爭力是使用者體驗,結果卻去涉及後端技術所擅長的,這就是最明顯的忘記初心。後端技術棧發展幾十年都是白髮展的?
所以能堅守前端是非常有想法的選擇。前端現在還處於混亂階段,無論是標準性、工程性、整合性都離完備還很遠,還有很多發展空間。
但一定要多理解後端技術棧的知識和技術趨勢,只有這樣才更容易發展前端。這也就是跨界的優勢,能在前端取得成就的一定是同時精通前後端技術的。
千萬不要用前端技術去解決後端問題,除非你僅僅是為了一份工作。
-
4 # 一個存在感小透明
在目前前後端分離的大趨勢下,無論是前端還是後端,有志向進一步發展的開發者都需要藉助工作機會,往全棧發展,尤其是前端程式設計師。
在國內,大部分前端程式設計師(遊戲類除外)的工作挑戰要小於後端。後端程式設計師在工作中會更多的涉及到演算法與系統架構方面的挑戰,也就是說,後端程式設計師在工作幾年後,有了一定的經驗積累,是可以往架構師方向去發展的,這是一個不需要你寫多少程式碼,但是要對專案整體負責的高階職位,而且是一個比開發程式設計師更加重要的,不容易被淘汰的職位。
簡單聊聊架構師為什麼如此重要,舉例淘寶,從個人使用者角度會認為淘寶實現的功能並不複雜,最基礎的就是搜尋,放進購物車,付賬嘛。但是你這是從使用者側去感受到的,從架構師的角度,他看到的是雙十一時每秒數億次的高併發請求,是最後一件商品被多個使用者搶單的資料一致性,是資料庫要抗住在億萬資料集中快速查詢的挑戰,涉及到金錢,這其中的每一個環節都不能出錯,否則就是商業帝國口碑的崩塌。這些挑戰,不是讀幾本書就能解決的,一定是在這個領域摸爬滾打,吃過虧,犯過錯,踩過坑,才能積累出的經驗。這些經驗,都是要在後端發展過,才能積累出來的。
前端的發揮空間就相對有限,因此工作有餘力且聰明的前端開發者就將精力用於開發前端框架上,比如目前市面上常見的前端開發框架vue.js, angular還有jQuery等等。那麼如果你從事前端開發,最可能的發展,除了寫程式碼實現PM的需求,大概就是開發前端框架了吧。
透過上面的對比,你就能看出前後端開發者的發展方向的差異。作為前端開發的你,如果往全棧方向發展,首先意味著你會比普通後端程式設計師更瞭解前端的需求,在聯調工作中能夠更加順暢,其次意味著你可以比你的前端開發同僚擁有更廣闊的發展空間。
因此,我非常建議有志於繼續在網際網路行業深耕的前端程式設計師主動往全棧發現發展。
-
5 # 大學生程式設計指南
雖然本身能寫幾種程式碼,始終不覺得自己是全棧工程師,全棧工程師其實是全能的一種表現,現在很多人把懂得前端又能開發後端的技術工程師成為全棧工程師,對於一個前端技術人員在掌握本身技能的情況下,如果能在後端上發力做點事情,無疑能拓展技術道路寬度,雖然就技術工種來講,專注於一個方向長時間的積累更加容易出成績,如果從技術拓展的角度考慮,懂得裡面背後是如何實現的其實也是在從更加深層次瞭解知識框架,瞭解對應後端模組如何實現,在設計前端的資料結構的時候更加容易規避問題。
前端最近幾年變得非常火熱了,也是各大培訓機構的最愛,在前幾天基本上培訓幾個月就能很快找到工作,畢竟前端相對來講比較容易入門,而且前端的框架工具也非常多,但前端成為高手可不是那麼容易,前端主要html,css,JavaScript三種程式設計指令碼,JavaScript是核心這種指令碼越用越會覺得這種指令碼的奇妙性,在程式設計領域有一種慣性,越是容易入門的程式語言,越是難以成為高手。前端程式設計最初網站不是很重視,主要桌面版的頁面的要求不是炫酷,隨著移動端的大方面的普及,對於前端的需求激增,現在很多app都直接採用H5的方式了,所以前端在未來一段時間內市場需求還不不會低了。
前端程式設計師如何規劃技術生涯?1.基本的前端知識必須具備
前端基礎學習學起來非常快,主要還是JavaScript基礎語法的學習,還要各種框架的應用,先做到能夠使用的程度,伴隨著技術的進步,常見的基本的功能可能只需要呼叫基本的庫就能完成了,基礎階段就是以單純的學習如何使用為主,完成基本的頁面佈局功能以及動畫功能。
2.效能和穩定性
前端包含著大量的程式碼量,同樣的功能不同層次的工程師會給出不同的結果,越是到了後期老工程師越是不輕易去觸碰程式碼,把什麼事情都想明白了再去實施,就要考慮如何用最優的程式碼實現功能,畢竟前端的效能也是非常重要的一個指標,效果非常好但效能非常差,使用者體驗就會大幅度下降,所以前端不能僅僅考量如何實現,在設計上也要慢慢融入自己的思想,這樣縱觀整體考量更加容易製造出高質量的前端頁面。
3.橫向擴充套件
和前端交叉主要兩個方向,設計和後端,如果在前端自身已經掌握差不多情況下,就可以考慮在對接層開始全面的對接,特別是如果懂得和前端對接的後端部分,將完成前後端的貫穿,對於前端的認知又到了一個新的層面。不要排斥去學習後端的知識,程式設計到了一定層面就是程式設計思想的問題了,直接涉獵也不會存在非常難點的問題,到最後還是決心問題。
一個程式設計師首先要有在行業內立足的專業知識,現有生存的專業,然後再全面拓展知識的廣度。時間長了積累多了,年齡問題也不會一直困擾程式設計師了,最後影響因素還是全面的技術能力,這個方向在市場上沒有競爭力,就可以切換到別的方向,具備這種綜合能力,就可以做一個技術常青樹了。
-
6 # 丁哥開講
這裡有一個概念我們先要搞清楚,前端工程師做什麼?全棧工程師又做什麼? 人的精力是有限的,一個人不可能什麼都懂。離開了專案本身,去談全棧工程師還是前端工程師後端工程師,意義並不大。因為你會的再多,用不上也是沒用的,技術更新很快,你一兩年不用也就過時了。
如果力求什麼都懂,那有可能都做不好。一旦產生比較沮喪的情緒,特別不利於自己的工作。
我們現在來分析一下,前端工程師和全棧工程師的工作內容。由於篇幅有限,我們只用一種程式語言JavaScript,作為主要的例子說明語言。
如果你是做網路程式,那網頁這一部分是一定要寫的啦。這一部分你至少要懂標記語言html, 指令碼語言JavaScript,也要懂css。
做好一個產品級的,你還要懂一些前端的架構,比如說你選擇Angular,還是react?還是vue?還是其他的框架?
要懂這些框架,你首先要了解,這個框架的優點和缺點。是不是適合自己現在正在做的專案?
到此為止,如果你已經可以勝任上面的工作,那說明你是一個非常合格的前端工程師了。
這種前端工程師又稱為前端全棧工程師。
就是因為他掌握的東西比較多,並且方向還都不一樣。
好,那我們來看一下後端,假設你會上面的技術,你懂了JavaScript,那麼 JavaScript用來做後端的,現在可選的是node js。
這一部分跟前端有一些有一些區別,就是在後端程式設計的時候你要了解一些中介軟體。還要了解一些涉及相對底層部分的程式設計,比如說檔案操作的。
要了解rest API的概念, 可以提供簡單易用的API介面。
資料庫這一部分是必須要了解的。資料庫目前主要是兩種,一種是關係型資料庫,一種是非關係型資料庫。
如果是關係型資料庫,必須要了解SQL語言。同時不管是關係型資料庫還是非關係型資料庫,都要了解json資料結構。
至此你可以勝任一部分後端程式設計的任務了。
那這個時候我們可以稱你為全棧工程師。你的領域的主要程式語言是JavaScript。如果這些能夠涵蓋你現在所做的專案,那就可以了。
聽上去很簡單是吧? 先不要高興的太早。
如果你所在的專案涉及的技術比較多,那就不會這麼簡單。比如說,你的專案需要寫手機端的,手機端又分安卓手機和蘋果手機。這兩種手機的開發平臺,和開發語言又不是一樣的。即使使用一些跨平臺的架構也需要對這兩種平臺,都有很深的研究。
伺服器端也就是後端程式設計這一塊。有可能是用c++,有可能是用golang,有可能是用Java, 有可能是用python, 有可能是用dot net core 等等,不一而足。
要把這些全部掌握的話,那你就真的可以稱為全棧開發工程師了。
在下有幸,對以上所有的語言和技術都很熟悉,都做過不少企業級的專案。有興趣的,可以跟我繼續深入探討。
-
7 # MADAOo
個人感覺沒必要,並且個人覺得全棧工程師是一種倒退。
一個合格的前端,必然對後端要有所瞭解,但是瞭解後端,是為了更好的和後端進行配合,進而更好的進行前端開發。這是以前後端分離為前提的。
如果說是一個全棧工程師,那麼就是說,前後端的活都要這個人來幹,前後端是不分離的,這樣其實效率是很慢的。
小公司為了節省成本,喜歡搞這些,招一個人當兩個用。但對於個人發展來說,還是建議專精一門,前端也好後端也罷。
還有一點,會 node.js 並不是全棧,仍然是前端,後端嚴格意義上來說是用後端程式語言,如 php、Java、Python 等進行開發,它們能夠實現的功能,node.js 暫時還是做不到的。
-
8 # Web前端進階指南
前端程式設計師一枚,從後端轉到前端的,之前接觸過Java,PHP,
.net
,可以說在前後端分離,大前端,模組化,Node中間層等概念相當熟悉了,我來說一說。在前端和後端的路上,總結一句話:
前端需求高,後端價格高。
在通往前端的路上,我們本應該本著技術越來越精湛的目的向前走,可無奈新技術層出不窮,老技術更新太快,趕不上技術時代的變化,無腦只能用老技術幹著最新的活,最新兩年,又冒出個全棧,更是腦闊疼。
你的工作,不只是切圖和動效話說回來,很多人目前就只停留在這,咱們想想看,我們是青春飯的嗎?還是沒有能力只能吃青春飯了,很多時候,很多程式設計師的在30歲的時候抱怨幹不動了,幹不下去了,當然確實有身體方面的原因,但我想絕大部分的人應該是技術達到了分水嶺,實在適應不下去了,跟不上新技術了,才不得已退出的。
我們是靠技術吃飯的,你會多少技術決定著你那多少錢,出來混不就是為了錢嗎?我聽過一句話:“如果你什麼都想學,又學不精的情況下,你還不如花同樣的時間去鑽研一門學問”,確實有些人他掌握不了那麼多,那我還是勸你好好鑽研一門學問吧。如果你是懶,嫌技術多,不好學,掙錢少,你為何不學呢?
什麼樣才是全棧說全棧,那麼你要掌握哪些呢?看看下面這些圖,你掌握了多少?
目前與未來對比看看自己和未來差多少,還需要掌握多少?
總結這已經是一個大前端趨勢,我建議可以在初學的時候就開始瞭解做起,在工作中不建議轉行,確實,做全棧,要對後端和前端的中介軟體相當熟悉,需要掌握的技術自然不用多說,看看自己有沒有時間和能力去處理。
回覆列表
回想2012年還是jquery的天下,後來2015年vue、react開始盛行,到現在的紅的發紫也才不過3年光景,當然vue生態圈的nuxt,react的next也是水漲船高,各個技術框架一波又一波,版本一個又一個,不少同學抱怨:老了,學不動了。
那麼如何選擇學習的課程,如何合理安排時間學習呢?
我們先來看下對於一個大前端的同學來說有哪些技能點需要掌握?
有的同學說這張圖已經很嚇人了,實際上這張圖還描述的不全面,比如這裡面沒有涉及動畫、遊戲、影片等等,每個方向都能讓人學一輩子,所以對於發問學不完的同學真的要好好思考下哪些課程才是你真正要學的。想弄清楚這個問題,大家要反問自己幾個問題?
1. 我現在處於什麼階段
這個是大家要思考的首要問題,如果現在是夯實基礎階段就要腳踏實地,學習一兩門課程先吃透再說,這個吃透一定要知道學習的這門課程特色在哪,自己學到了幾分,如果自己把握不清楚可以問問該課程的老師。其次,按照這個課程自己多去找一些網站去模仿,用學到的知識點和方法去實現,遇到問題再去回顧下課程所講述的內容,只要肯下功夫一定有質的提升。根據統計資料,很多同學的課程學習度都不是很高,甚至有的很貴的課程才學習了不到2個小時,如果是這樣還不如把買課的錢去吃頓好的(別打我)。
如果自己目前在公司能獨擋一面,想有一個晉升的機會,或者想提升自己技術深度或者擴充知識面,這個時候學習的方法要改變一下了,因為這個時候的你時間更寶貴。慕課的很多課程在內容設計上都要考慮照顧方方面面的同學,你要對基礎的內容快速過濾,但是不要不聽,因為基礎的地方也會有講師出彩的地方。對於重點內容要認真琢磨,講師為什麼要這樣設計,他當時考慮的出發點是什麼,這個方案有什麼不足,方案的特色是什麼,都要弄的一清二楚。打個比方我在美團網全棧實戰課程中講了首頁選單的設計,特色是用平行結構代替傳統的巢狀結構來實現複雜的互動,用不到15個dom模板節點來實現的,這就是特色,你在網上找不到的方法。然後你要思考這樣做有什麼好處,能給你什麼啟發。一門課中這樣的特色多了,足可以幫助你快速成長。如果找不到這樣的亮點,說明這門課不適合你。
2. 我喜歡什麼方向
大家之所以迷茫是因為沒想清楚自己喜歡什麼方向,上圖涉及那麼多的知識點,想在幾年內學好學精顯然不現實,更何況程式設計師的生命週期有多長?如果你是妹子你還要生孩子、帶孩子,漫無目的的學習足矣讓你疲憊不堪。對於前端同學來說,方向無非有幾個:純前端(對不起,只會小程式不算前端)、服務端(node)、遊戲(canvas)、影片、視覺化、動畫。但是對於後三個提供的專職崗位不是特別多,更多是和前端兼職。如果想做純前端,只要把基礎打紮實,懂vue和react即可,甚至都不需要學太深都可以。想學好服務端可能要下點功夫,因為你可以忽略css的學習(會被原諒),但是要懂資料庫、redis、http協議等。想做遊戲有人說容易有人說難,因為他們對前端不是特別熟悉,用js的語法做前端之外的事,但是圖形學是你邁不過去的坎,當然也有很多開源框架幫你處理。其他的也類似,說了這麼多無非想說在有限的時間內要在一個方向上學習,不要一會學css一會去node,小遊戲出來又去蹭一蹭熱度,最後與其說都學了還不如說都沒學,因為可能哪個也拿不出手。選好自己的方向,在判斷課程是否能給你助力,這樣你就會學的很輕鬆。
3. 未來3年要達到什麼樣的高度
有人說我怕累,我沒時間等等,這要取決於你對自己的要求,大家都以為老闆是最好當的,時間是最自由的,這只是錯覺。你看不到他融資困難的時候一夜白髮、你看不到他被競品打壓到睡眠不足4個小時、你看不到他為應酬身不由己的賠笑。想要達到什麼目標就要付出什麼樣的成本,碼農也一樣。你想成為高工、專家、行業領頭人,你就要不停的學習、思考、拼搏,因為技術在不斷革新,不掌握核心的技術自然坐不到核心的位置上去。這個道理大家都懂,只是說服不了浮躁的內心。
對於一個想給自己家庭謀的幸福的前端工程師來說,全棧是必選項,只有掌握前端和服務端的同時,才能在帶領團隊是衡量利弊,才能不被後端同學所左右,才能在部門大局中贏得尊嚴和地位,才能在技術革新中保持不衰的競爭力。
而對於全棧而言有幾個關鍵詞:前端框架(Vue、React、Angular、Element-ui)、服務端框架(Node、Express、Koa)、前後端分離(SPA)、服務端渲染(SSR、Nuxt、Next)、資料庫(mongodb、mongoose、MySQL)、服務端快取(Redis)、離線(PWA)、開發語言(ES6、Typescript)、資料結構設計、演算法設計、設計模式。
所以想走全棧路線的同學來說,上面的關鍵詞都要了解一下了,可以按照這個路線去學習。