前端程序員應該往全棧方向發展嗎?堅守前端怎麼樣呢?

慕課網


這裡有一個概念我們先要搞清楚,前端工程師做什麼?全棧工程師又做什麼? 人的精力是有限的,一個人不可能什麼都懂。離開了項目本身,去談全棧工程師還是前端工程師後端工程師,意義並不大。因為你會的再多,用不上也是沒用的,技術更新很快,你一兩年不用也就過時了。

如果力求什麼都懂,那有可能都做不好。一旦產生比較沮喪的情緒,特別不利於自己的工作。

我們現在來分析一下,前端工程師和全棧工程師的工作內容。由於篇幅有限,我們只用一種編程語言JavaScript,作為主要的例子說明語言。

如果你是做網絡程序,那網頁這一部分是一定要寫的啦。這一部分你至少要懂標記語言html, 腳本語言JavaScript,也要懂css。

做好一個產品級的,你還要懂一些前端的架構,比如說你選擇Angular,還是react?還是vue?還是其他的框架?

要懂這些框架,你首先要了解,這個框架的優點和缺點。是不是適合自己現在正在做的項目?

到此為止,如果你已經可以勝任上面的工作,那說明你是一個非常合格的前端工程師了。

這種前端工程師又稱為前端全棧工程師。

就是因為他掌握的東西比較多,並且方向還都不一樣。

好,那我們來看一下後端,假設你會上面的技術,你懂了JavaScript,那麼 JavaScript用來做後端的,現在可選的是node js。

這一部分跟前端有一些有一些區別,就是在後端編程的時候你要了解一些中間件。還要了解一些涉及相對底層部分的編程,比如說文件操作的。

要了解rest API的概念, 可以提供簡單易用的API接口。

數據庫這一部分是必須要了解的。數據庫目前主要是兩種,一種是關係型數據庫,一種是非關係型數據庫。

如果是關係型數據庫,必須要了解SQL語言。同時不管是關係型數據庫還是非關係型數據庫,都要了解json數據結構。

至此你可以勝任一部分後端編程的任務了。

那這個時候我們可以稱你為全棧工程師。你的領域的主要編程語言是JavaScript。如果這些能夠涵蓋你現在所做的項目,那就可以了。

聽上去很簡單是吧? 先不要高興的太早。

如果你所在的項目涉及的技術比較多,那就不會這麼簡單。比如說,你的項目需要寫手機端的,手機端又分安卓手機和蘋果手機。這兩種手機的開發平臺,和開發語言又不是一樣的。即使使用一些跨平臺的架構也需要對這兩種平臺,都有很深的研究。

服務器端也就是後端編程這一塊。有可能是用c++,有可能是用golang,有可能是用Java, 有可能是用python, 有可能是用dot net core 等等,不一而足。

要把這些全部掌握的話,那你就真的可以稱為全棧開發工程師了。

在下有幸,對以上所有的語言和技術都很熟悉,都做過不少企業級的項目。有興趣的,可以跟我繼續深入探討。

好的,我們這個話題先聊到這裡,歡迎關注丁哥開講,謝謝。





丁哥開講


雖然本身能寫幾種代碼,始終不覺得自己是全棧工程師,全棧工程師其實是全能的一種表現,現在很多人把懂得前端又能開發後端的技術工程師成為全棧工程師,對於一個前端技術人員在掌握本身技能的情況下,如果能在後端上發力做點事情,無疑能拓展技術道路寬度,雖然就技術工種來講,專注於一個方向長時間的積累更加容易出成績,如果從技術拓展的角度考慮,懂得裡面背後是如何實現的其實也是在從更加深層次瞭解知識框架,瞭解對應後端模塊如何實現,在設計前端的數據結構的時候更加容易規避問題。

前端最近幾年變得非常火熱了,也是各大培訓機構的最愛,在前幾天基本上培訓幾個月就能很快找到工作,畢竟前端相對來講比較容易入門,而且前端的框架工具也非常多,但前端成為高手可不是那麼容易,前端主要html,css,JavaScript三種編程腳本,JavaScript是核心這種腳本越用越會覺得這種腳本的奇妙性,在編程領域有一種慣性,越是容易入門的編程語言,越是難以成為高手。前端編程最初網站不是很重視,主要桌面版的頁面的要求不是炫酷,隨著移動端的大方面的普及,對於前端的需求激增,現在很多app都直接採用H5的方式了,所以前端在未來一段時間內市場需求還不不會低了。

前端程序員如何規劃技術生涯?

1.基本的前端知識必須具備

前端基礎學習學起來非常快,主要還是JavaScript基礎語法的學習,還要各種框架的應用,先做到能夠使用的程度,伴隨著技術的進步,常見的基本的功能可能只需要調用基本的庫就能完成了,基礎階段就是以單純的學習如何使用為主,完成基本的頁面佈局功能以及動畫功能。

2.性能和穩定性

前端包含著大量的代碼量,同樣的功能不同層次的工程師會給出不同的結果,越是到了後期老工程師越是不輕易去觸碰代碼,把什麼事情都想明白了再去實施,就要考慮如何用最優的代碼實現功能,畢竟前端的性能也是非常重要的一個指標,效果非常好但性能非常差,用戶體驗就會大幅度下降,所以前端不能僅僅考量如何實現,在設計上也要慢慢融入自己的思想,這樣縱觀整體考量更加容易製造出高質量的前端頁面。

3.橫向擴展

和前端交叉主要兩個方向,設計和後端,如果在前端自身已經掌握差不多情況下,就可以考慮在對接層開始全面的對接,特別是如果懂得和前端對接的後端部分,將完成前後端的貫穿,對於前端的認知又到了一個新的層面。不要排斥去學習後端的知識,編程到了一定層面就是編程思想的問題了,直接涉獵也不會存在非常難點的問題,到最後還是決心問題。

一個程序員首先要有在行業內立足的專業知識,現有生存的專業,然後再全面拓展知識的廣度。時間長了積累多了,年齡問題也不會一直困擾程序員了,最後影響因素還是全面的技術能力,這個方向在市場上沒有競爭力,就可以切換到別的方向,具備這種綜合能力,就可以做一個技術常青樹了。

希望能幫到你。


大學生編程指南


答案是肯定的,前端程序員一定要往全棧方向發展,原因有以下幾點:

第一:前端開發後端化是一個趨勢。目前前端開發得到越來越多的重視,尤其是隨著移動互聯網的發展,前端技術的場景開發是目前一個重要的開發領域。隨著NodeJS的普及,前端開發的後端化進入了一個新的發展階段,輕量級後端服務將成為一個應用的重點領域。

第二:全棧程序員在Web開發領域逐漸流行。Web開發領域的全棧程序員成為目前科技公司招聘的主要崗位,很多大型互聯網公司目前對全棧程序員的需求量越來越大,甚至有的互聯網公司只招聘全棧程序員。

第三:全棧程序員能更好的適應開發團隊的任務分配。由於全棧程序員對前後端開發都比較瞭解,所以在任務安排時會更靈活。同時,全棧程序員之間的交流也更直接和高效,有效屏蔽了傳統前端不懂後端而導致的部分溝通問題。

第四:能有效縮短開發週期。按照歷史經驗來看,全棧程序員團隊在項目開發的過程中效率更高,開發週期也相對更短,團隊整體的能力提升也比較明顯。全棧程序員團隊在做Code Review的時候有明顯的優勢,因為在技術手段和編碼方式等方面的溝通上沒有任何障礙,每次交流都會得會有一定程度的收穫。

第五:全棧程序員團隊更容易創新。與傳統開發團隊比起來,全棧程序員團隊明顯在技術選型上更為大膽,也更具有創新精神,因為全棧程序員團隊的氛圍更容易讓程序員有一種“let me try”的想法,而普通開發團隊則很難有這種氛圍,崗位限制了程序員的創新能力。

目前,不僅在Web開發領域,在移動互聯開發領域和大數據開發領域,也在逐漸對程序員提出了全棧開發的要求。所以,對於前端開發人員來說,走向後端是一個必然的趨勢,對於後端開發人員來說,走向前端也不可避免。

我做軟件開發工作多年,目前也在帶軟件開發團隊,我會陸續在頭條寫一些關於軟件開發方面的文章,感興趣的朋友可以關注我,相信一定會有所收穫。

如果有軟件開發方面的問題,也可以諮詢我。

謝謝!


IT人劉俊明


在目前前後端分離的大趨勢下,無論是前端還是後端,有志向進一步發展的開發者都需要藉助工作機會,往全棧發展,尤其是前端程序員。

在國內,大部分前端程序員(遊戲類除外)的工作挑戰要小於後端。後端程序員在工作中會更多的涉及到算法與系統架構方面的挑戰,也就是說,後端程序員在工作幾年後,有了一定的經驗積累,是可以往架構師方向去發展的,這是一個不需要你寫多少代碼,但是要對項目整體負責的高級職位,而且是一個比開發程序員更加重要的,不容易被淘汰的職位。

簡單聊聊架構師為什麼如此重要,舉例淘寶,從個人用戶角度會認為淘寶實現的功能並不複雜,最基礎的就是搜索,放進購物車,付賬嘛。但是你這是從用戶側去感受到的,從架構師的角度,他看到的是雙十一時每秒數億次的高併發請求,是最後一件商品被多個用戶搶單的數據一致性,是數據庫要抗住在億萬數據集中快速查詢的挑戰,涉及到金錢,這其中的每一個環節都不能出錯,否則就是商業帝國口碑的崩塌。這些挑戰,不是讀幾本書就能解決的,一定是在這個領域摸爬滾打,吃過虧,犯過錯,踩過坑,才能積累出的經驗。這些經驗,都是要在後端發展過,才能積累出來的。

前端的發揮空間就相對有限,因此工作有餘力且聰明的前端開發者就將精力用於開發前端框架上,比如目前市面上常見的前端開發框架vue.js, angular還有jQuery等等。那麼如果你從事前端開發,最可能的發展,除了寫代碼實現PM的需求,大概就是開發前端框架了吧。

通過上面的對比,你就能看出前後端開發者的發展方向的差異。作為前端開發的你,如果往全棧方向發展,首先意味著你會比普通後端程序員更瞭解前端的需求,在聯調工作中能夠更加順暢,其次意味著你可以比你的前端開發同僚擁有更廣闊的發展空間。

因此,我非常建議有志於繼續在互聯網行業深耕的前端程序員主動往全棧發現發展。

以上是我的淺見,歡迎各位在下方評論區留言交流。

我是蘇蘇思量,來自BAT的Java開發工程師,每日分享科技類見聞,歡迎關注我,與我共同進步。


蘇蘇思量


回想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)、數據結構設計、算法設計、設計模式。

所以想走全棧路線的同學來說,上面的關鍵詞都要了解一下了,可以按照這個路線去學習。

作者:快樂動起來呀鏈接:http://www.imooc.com/article/253076來源:慕課網

慕課網


前端為什麼會流行?因為用戶體驗越來越得到重視,而前端技術適合做用戶體驗。

前端為什麼會後端化?因為前端人才要生存。

事情很容易理解,前後端技術是由兩個不同問題域延伸出來的技術,這也決定了各自的技術特點和應用範圍。通俗地說:前端的核心競爭力是用戶體驗,結果卻去涉及後端技術所擅長的,這就是最明顯的忘記初心。後端技術棧發展幾十年都是白髮展的?

所以能堅守前端是非常有想法的選擇。前端現在還處於混亂階段,無論是標準性、工程性、集成性都離完備還很遠,還有很多發展空間。

但一定要多理解後端技術棧的知識和技術趨勢,只有這樣才更容易發展前端。這也就是跨界的優勢,能在前端取得成就的一定是同時精通前後端技術的。

千萬不要用前端技術去解決後端問題,除非你僅僅是為了一份工作。



正宗烏龜魚


這個沒有必要刻意去弄。

時間久了,你會發現,你終歸是要會的。


分享到:


相關文章: