新聞中心
如今前端程序員還有前途嗎?
前端開發(fā)趨勢一直都是熱度高且變化快。因此,對于前端開發(fā)者來說,想要跟上這些不斷變化的趨勢,需要耗費(fèi)巨大的精力。至于2022年前端技術(shù)具體會發(fā)生哪些變化,讓我們一起來聊聊吧。

作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們在業(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)建站提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運(yùn)營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價(jià)值。
1、前端介紹
前端,也稱為“客戶端開發(fā)”,簡單來說,你可以在應(yīng)用程序或網(wǎng)站的屏幕上看到的所有內(nèi)容都屬于前端。讓我們考慮一個(gè)現(xiàn)實(shí)的例子:你正在訪問的網(wǎng)站。內(nèi)容設(shè)計(jì)、圖像、段落和線條之間的間距,左上角的公司徽標(biāo),以及右下角的小通知按鈕——所有這一切都是前端。2、前端技術(shù)包括哪些?
前端開發(fā)是創(chuàng)建Web頁面或app等前端界面呈現(xiàn)給用戶的過程,通過HTML,CSS及JavaScript以及衍生出來的各種技術(shù)、框架、解決方案,來實(shí)現(xiàn)互聯(lián)網(wǎng)產(chǎn)品的用戶界面交互 。它從網(wǎng)頁制作演變而來,名稱上有很明顯的時(shí)代特征。在互聯(lián)網(wǎng)的演化進(jìn)程中,網(wǎng)頁制作是Web1.0時(shí)代的產(chǎn)物,早期網(wǎng)站主要內(nèi)容都是靜態(tài),以圖片和文字為主,用戶使用網(wǎng)站的行為也以瀏覽為主。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和HTML5、CSS3的應(yīng)用,現(xiàn)代網(wǎng)頁更加美觀,交互效果顯著,功能更加強(qiáng)大。2.1、HTML
掌握HTML是網(wǎng)頁的核心,是一種制作萬維網(wǎng)頁面的標(biāo)準(zhǔn)語言,是萬維網(wǎng)瀏覽器使用的一種語言,它消除了不同計(jì)算機(jī)之間信息交流的障礙。因此,它是目前網(wǎng)絡(luò)上應(yīng)用最為廣泛的語言,也是構(gòu)成網(wǎng)頁文檔的主要語言,學(xué)好HTML是成為Web前端開發(fā)人員的基本條件。HTML是一種標(biāo)記語言,能夠?qū)崿F(xiàn)Web頁面并在瀏覽器中顯示。HTML5作為HTML的最新版本,引入了多項(xiàng)新技術(shù),大大增強(qiáng)了對于應(yīng)用的支持能力,使得Web技術(shù)不再局限于呈現(xiàn)網(wǎng)頁內(nèi)容。隨著CSS、JavaScript、Flash等技術(shù)的發(fā)展,Web對于應(yīng)用的處理能力逐漸增強(qiáng),用戶瀏覽網(wǎng)頁的體驗(yàn)已經(jīng)有了較大的改善。不過HTML5中的幾項(xiàng)新技術(shù)實(shí)現(xiàn)了質(zhì)的突破,使得Web技術(shù)首次被認(rèn)為能夠接近于本地原生應(yīng)用技術(shù),開發(fā)Web應(yīng)用真正成為開發(fā)者的一個(gè)選擇。HTML5可以使開發(fā)者的工作大大簡化,理論上單次開發(fā)就可以在不同平臺借助瀏覽器運(yùn)行,降低開發(fā)的成本,這也是產(chǎn)業(yè)界普遍認(rèn)為HTML5技術(shù)的主要優(yōu)點(diǎn)之一。AppMobi、摩托羅拉、Sencha、Appcelerator等公司均已推出了較為成熟的開發(fā)工具,支持HTML5應(yīng)用的發(fā)展。2.2、CSS
學(xué)好CSS是網(wǎng)頁外觀的重要一點(diǎn),CSS可以幫助把網(wǎng)頁外觀做得更加美觀。2.3、JavaScript
學(xué)習(xí)JavaScript的基本語法,以及如何使用JavaScript編程將會提高開發(fā)人員的個(gè)人技能。2.4、Bootstrap
主流框架之一,Bootstrap 是基于 HTML、CSS、JavaScript的,它簡潔靈活,使得 Web 開發(fā)更加快捷。2.5、html5-boilerplate
該框架可以快速構(gòu)建健壯,且適應(yīng)力強(qiáng)的web app或網(wǎng)站。2.6、Meteor
Meteor是新一代的開發(fā)即時(shí)web應(yīng)用的開源框架,它能在較短時(shí)間內(nèi)完成開發(fā)。2.7、Semantic UI
基于自然語言有效原則的UI組件框架。2.8、Amaze UI
國內(nèi)首個(gè)開源HTML5跨屏前端框架產(chǎn)品系列,中文排版支持更優(yōu)、本土化組件豐富。該產(chǎn)品系列中有專門針對移動端的HTML5混合應(yīng)用開發(fā)框架Amaze UI Touch以及針對跨屏HTML5網(wǎng)頁開發(fā)的Amaze UI Web。其中,Amaze UI Touch可以幫助開發(fā)者通過豐富的組件,快速構(gòu)建出與原生APP相媲美的專屬移動端的HTML5應(yīng)用。3、2022年前端技術(shù)領(lǐng)域變化
3.1、Web組件化
基本上這就是未來。為什么?因?yàn)檫@些純Web組件與框架無關(guān),并且可以在沒有框架或沒有任何框架拼寫標(biāo)準(zhǔn)化的情況下工作。因?yàn)樗鼈儧]有JS疲勞,并且得到了現(xiàn)代瀏覽器的支持。因?yàn)樗鼈兊奈募笮『拖膶⑹亲罴训模⑶襐DOM渲染令人贊嘆。這些組件提供了Custom Element,這是一個(gè)Javascript API,可讓你定義新html標(biāo)簽,HTML模板以指定布局,當(dāng)然還有Shadow DOM,它本質(zhì)上是特定于組件的。在這個(gè)領(lǐng)域中知名的工具是Lit-html(和Lit-element),StencilJS,SvelteJS,當(dāng)然還有Bit,它們是可重用的模塊化組件,可以在任何地方直接共享,使用和開發(fā)??紤]組件開發(fā)時(shí)代的未來,以及模塊化,可重用性,封裝和標(biāo)準(zhǔn)化的原理,Web組件就是答案。3.2、微前端
Serverless即“無服務(wù)器”架構(gòu),它試圖幫助開發(fā)者擺脫運(yùn)行后端應(yīng)用程序所需的服務(wù)器設(shè)備的設(shè)置和管理工作,它由第三方云計(jì)算供應(yīng)商負(fù)責(zé)后端基礎(chǔ)結(jié)構(gòu)的維護(hù),同時(shí)以服務(wù)的,例如數(shù)據(jù)庫、消息、身份驗(yàn)證等。微前端的概念類似于微服務(wù),它將前端應(yīng)用拆分成一個(gè)個(gè)更小的更簡單的能夠獨(dú)立開發(fā)、測試、部署的小塊,在用戶看來它依舊是一個(gè)獨(dú)立的產(chǎn)品。前端業(yè)務(wù)在發(fā)展到一定規(guī)模后,需要一種能將業(yè)務(wù)化繁為簡的架構(gòu)。常用的微前端解決方案有single-spa、qiankun。微前端、Serverless目前都未出現(xiàn)大規(guī)模應(yīng)用的情況,各大公司對此都處于探索階段,兩項(xiàng)技術(shù)穩(wěn)步發(fā)展,期待未來大規(guī)模的應(yīng)用。3.3、微設(shè)計(jì)
布拉德·弗羅斯特(Brad Frost)提出的理論將Web應(yīng)用程序的構(gòu)成與原子,分子,有機(jī)體等的自然構(gòu)成進(jìn)行了比較,最后以具體的Web頁面作為結(jié)尾。原子由分子組成(例如,文本輸入+按鈕+標(biāo)簽原子=搜索分子)。分子組成生物體。有機(jī)于布局模板中,該模板可以具體化為交付給用戶的頁面。Atomic組件的優(yōu)勢不只是通過模塊化和可重用的組件來構(gòu)建模塊化UI應(yīng)用程序。這種范例迫使你思考組成每個(gè)組件的角色和API。3.4、Web組裝
Web程序集將語言多樣性帶入Web開發(fā)中,以彌補(bǔ)JavaScript創(chuàng)建的空白。它被定義為“基于堆棧的虛擬機(jī)的二進(jìn)制指令格式。Wasm被設(shè)計(jì)為可移植目標(biāo),用于編譯高級語言(如C/C ++/Rust),從而可以在Web上為客戶端和服務(wù)器應(yīng)用程序進(jìn)行部署。”埃里克·埃利奧特在他的文章中優(yōu)雅地概述了該概念的好處:在wasm中實(shí)現(xiàn)對性能至關(guān)重要的內(nèi)容,并將其像標(biāo)準(zhǔn)JavaScript模塊一樣導(dǎo)入。一種新語言:WebAssembly代碼定義了以二進(jìn)制格式表示的AST(抽象語法樹)。您可以編寫和調(diào)試文本格式,以便于閱讀。對瀏覽器的改進(jìn):瀏覽器將理解二進(jìn)制格式,這意味著我們將能夠編譯二進(jìn)制包,壓縮后的二進(jìn)制包小于我們今天使用的文本JavaScript。較小的有效載荷意味著更快的傳遞。根據(jù)編譯時(shí)的優(yōu)化機(jī)會,WebAssembly的運(yùn)行速度可能比JavaScript快!3.5、封裝樣式和Shadow Dom
組件的一個(gè)重要方面是封裝-能夠使標(biāo)記結(jié)構(gòu),樣式和行為保持隱藏狀態(tài),并與頁面上的其他代碼分開,以使不同部分不會,并且代碼可以保持整潔。Shadow DOM API是其中的關(guān)鍵部分,它提供了一種將隱藏的單獨(dú)DOM附加到元素的方法。Shadow DOM實(shí)際上已經(jīng)被瀏覽器使用了很長時(shí)間了。您可以將影子DOM視為“ DOM中的DOM”。它是自己的隔離DOM樹,具有自己的元素和樣式,與原始DOM完全隔離。它允許將隱藏的DOM樹附加到常規(guī)DOM樹中的元素上。該陰影DOM樹以影子根開頭,可以與普通DOM相同的。這樣做的主要目的是,我們不需要為類使用名稱空間,因?yàn)椴淮嬖诿Q或樣式溢出的風(fēng)險(xiǎn)。這就是Web組件樣式進(jìn)行真正封裝的解決方案。3.6、TypeScript接管前端
最近的每次交談都聽起來好像TS正在接管前端開發(fā)。據(jù)報(bào)道,有80%的開發(fā)人員承認(rèn)他們想在下一個(gè)項(xiàng)目中使用或?qū)W習(xí)TypeScript。盡管有缺點(diǎn),但TS代碼更易于理解,實(shí)現(xiàn)更快,產(chǎn)生的錯(cuò)誤更少。想重構(gòu)你的React應(yīng)用程序并與TS一起使用嗎?去吧。想逐步開始嗎?使用Bit之類的工具逐步將你的應(yīng)用程序中的組件重構(gòu)為TS,并使用React-Typescript編譯器獨(dú)立于應(yīng)用程序構(gòu)建它們。TypeScript,它是有類型定義的 JavaScript 的超集,包括 ES5、ES5+ 和其他一些諸如反射、泛型、類型定義、命名空間等特征的集合,為了大規(guī)模 JavaScript 應(yīng)用開發(fā)而生。復(fù)雜軟件需要用復(fù)雜的設(shè)計(jì),面向?qū)ο缶褪且环N很好的設(shè)計(jì),使用 TypeScript 的一大好處就是 TypeScript 提供了業(yè)界認(rèn)可的類( ES5+ 也支持)、泛型、封裝、接口面向?qū)ο笤O(shè)計(jì)能力,以提升 JavaScript 的面向?qū)ο笤O(shè)計(jì)能力。市面上的框架也對 TypeScript 提供了非常好的支持。React 對.tsx 支持非常好,比如我在 Midway controller 里支持 tsx 寫法,這是非常大膽的,對于后面 react ssr 來說是一個(gè)極利;Vue 從 v2.5.0 之后對 ts 支持就非常好;Node.js Web 框架,尤其是 Egg.js 對 ts 支持非常好,當(dāng)然還有更高級更專注的的 Midway 框架,Midway 基于 Egg 生態(tài),同時(shí)提供 IoC 等高級玩法;在使用 Webpack 編譯前端應(yīng)用式,通過 TypeScript-loader 可以很輕松地將 TypeScript 引入到 Webpack 中。有了 TypeScript-loader,就可以一邊使用 TypeScript 編寫新代碼,一邊零碎地更新老代碼。畢竟 ts 是 js 超集,你有空就改,非強(qiáng)制,特別包容。3.7、從組件庫到動態(tài)集合
組件開發(fā)的出現(xiàn)催生出了一種工具的產(chǎn)生,它就是Bit,以及其托管平臺Bit.dev。使用Bit來連續(xù)隔離現(xiàn)有組件并將其導(dǎo)出到動態(tài)可重用的共享集合中,而無需努力構(gòu)建麻煩且高度耦合的組件庫。使用Bit,你可以獨(dú)立隔離,版本控制,構(gòu)建,測試和更新UI組件。它簡化了在現(xiàn)有應(yīng)用程序中隔離組件,將其收集到遠(yuǎn)程集合并在任何地方使用的過程。每個(gè)組件都可以在任何項(xiàng)目之外構(gòu)建,測試和渲染。你可以更新單個(gè)組件(及其相關(guān)組件),而不是整個(gè)應(yīng)用程序。在bit.dev平臺中(或在你自己的服務(wù)器上),可以為不同的團(tuán)隊(duì)遠(yuǎn)程托管和組織組件,以便每個(gè)團(tuán)隊(duì)都可以控制自己的組件開發(fā)。每個(gè)團(tuán)隊(duì)都可以共享和重用組件,但又保持其獨(dú)立性和控制力。該平臺還提供了共享組件的多合一生態(tài)系統(tǒng):它自動記錄UI組件的文檔,在交互式中渲染組件,甚至提供內(nèi)置注冊表以使用npm安裝組件。此外,你可以在任何存儲庫中導(dǎo)入組件并進(jìn)行修改。在短期內(nèi),這以與Spotify/iTunes更改以前通過靜態(tài)CD音樂專輯共享音樂的過程類似的,徹底改變了共享和組成組件的過程。這是一個(gè)動態(tài)的模塊化解決方案,每個(gè)人都可以共享和使用組件。從長遠(yuǎn)來看,Bit有助于微前端的開發(fā)。主要是因?yàn)樗呀?jīng)可以讓你獨(dú)立版本,測試,構(gòu)建和更新UI應(yīng)用程序的各個(gè)部分。3.8、設(shè)計(jì)與開發(fā)的整合
隨著組件驅(qū)動設(shè)計(jì)系統(tǒng)的興起,使產(chǎn)品和團(tuán)隊(duì)之間的UI一致,新工具應(yīng)運(yùn)而生,彌合了設(shè)計(jì)師和開發(fā)人員之間的鴻溝。但是,這不是簡單的任務(wù)。盡管代碼本身實(shí)際上是唯一的真理源(這是用戶真正得到的),但是大多數(shù)工具都試圖彌合設(shè)計(jì)者與設(shè)計(jì)者之間的鴻溝。在此類別中,您可以找到成幀器,F(xiàn)igma,Invision DSM等。在開發(fā)人員的末端,你可以看到Bit.dev之類的平臺如何托管下一代組件庫并幫助建立共享組件的采用范圍。該平臺為您的實(shí)際源代碼提供了呈現(xiàn)的可視化效果,以便設(shè)計(jì)人員可以與開發(fā)人員合作,并以可視化。要注意的另一個(gè)有前途的想法是設(shè)計(jì)令牌。將令牌放置在代碼中,設(shè)計(jì)人員可以通過它們直接與外部協(xié)作工具真正控制簡單的樣式方面(例如顏色)。與Bit.dev等平臺集成后,可以創(chuàng)建比以往更緊密的工作流程。3.9、跨端開發(fā)框架迅猛發(fā)展
從最初的React Native,到后來的Flutter,electron,跨端的解決方案受到了大量前端工程師的關(guān)注和學(xué)習(xí)。Flutter2的發(fā)布,其Web開發(fā)能力也過度到了穩(wěn)定版本,同時(shí)桌面端開發(fā)能力也進(jìn)入了beta階段,進(jìn)一步提高了代碼的復(fù)用性,同時(shí)它也拓展了很多IOS的功能,生態(tài)進(jìn)一步壯大。近乎一套代碼便可以完成移動端、web端、桌面端應(yīng)用的開發(fā),大大縮減開發(fā)人員學(xué)習(xí)其他平臺開發(fā)技術(shù)的成本,一線互聯(lián)網(wǎng)公司也在將其部分應(yīng)用使用Flutter進(jìn)行重構(gòu)。electron作為一個(gè)基于Nodejsde桌面端跨端開發(fā)框架,深受大廠的喜愛,飛書、vscode、twitch等均是基于electron進(jìn)行開發(fā)。跨平臺也讓 Electron 可同時(shí)開發(fā) Web 應(yīng)用和桌面應(yīng)用,無論是 UI,還是代碼,很多資源都可以共享,大幅減少了開發(fā)者的工作量。需求推動著跨端框架的發(fā)展,無論從成本還是效率考慮,跨端開發(fā)都將成為前端開發(fā)未來的發(fā)展方向之一,其生態(tài)也會迎來瘋狂擴(kuò)張。3.10、低代碼平臺持續(xù)發(fā)展
隨著十四五規(guī)劃的推出,進(jìn)一步推動了企業(yè)數(shù)字化轉(zhuǎn)型的步伐,眾多企業(yè)面臨數(shù)字化轉(zhuǎn)型。相較于培養(yǎng)一支開發(fā)團(tuán)隊(duì),多數(shù)企業(yè)更傾向于使用低代碼平臺,通過無編碼或低編碼的。同時(shí),低代碼平臺迎來了爆發(fā)式的增長,至今仍將保持50%的平穩(wěn)增速。平臺快速發(fā)展,覆蓋的業(yè)務(wù)場景也逐漸增多,中小企業(yè)95%以上的場景可通過低代碼平臺搭建,中大型企業(yè)的覆蓋率也能達(dá)到70%。低代碼平臺的迅猛發(fā)展,很多業(yè)務(wù)場景的開發(fā)工作逐漸被平臺替代,很多簡單的前端頁面的開發(fā)都會轉(zhuǎn)移到平臺中完成,初級前端工程師的生存重建逐漸被蠶食。同時(shí)低代碼平臺的發(fā)展也會對前端工程師提出了更高的要求。4、總結(jié)
前端開發(fā)趨勢一直都是熱度高且變化快。因此,對于前端開發(fā)者來說,想要跟上這些不斷變化的趨勢,需要耗費(fèi)巨大的精力。至于2022年前端技術(shù)具體會發(fā)生哪些變化,讓我們拭目以待吧。本文分享自華為云社區(qū)《2022前端技術(shù)領(lǐng)域會有哪些新的變化》,作者:架構(gòu)師李肯。
it前端和后端哪個(gè)難?
看你做到什么程度了,前端前期比較簡單,做到一定程度瓶頸比較大,再上升比較難,但是也有架構(gòu)級別的程度。后端就比較多了,有一些后端語言入門起來挺簡單的,但是有些入門就比較難,像C/C++。要想做到架構(gòu)級別 每門語言都是很難。
簡單的業(yè)務(wù)邏輯,兩邊都不難,甚至后端比前端更輕松。記住不是后端簡單,是前端現(xiàn)在的生態(tài)鏈遠(yuǎn)遠(yuǎn)比不上后端,就一個(gè)編譯器完全是后端碾壓前端,包括各種設(shè)計(jì)模式,用起來非常順手。
選擇web前端還是java后端呢?
總是在各大論壇可以和看見類似這樣的問題,大一大二大三,想要轉(zhuǎn)行從事IT行業(yè)方面的技術(shù)工作,是學(xué)Java好還是學(xué)Web前端比較好?或者是我非計(jì)算機(jī)科班出身,想從事程序員的工作,是選擇Java還是選擇Web前端?
Java PK Web前端
對于這樣的問題我該怎么回答呢,我只想說聽天由命吧,抓鬮抓到哪個(gè)學(xué)哪個(gè)。哈哈,當(dāng)然這只是開玩笑的,對于我們未來的方向選擇必須要慎重,在我講解自己的看法之前,我們先來看下一個(gè)程序員界的段子。
C程序員看不起C++程序員,C++程序員看不起Java程序員,Java程序員看不起C#程序員,C#程序員看不起美工,周末了,美工帶著妹子出去約會了...剩這群程序員在加班。
沒想到,最后美工成了人生贏家,這樣一來大家是不是都想說我還是去做美工吧。如果真是這樣,那就too young too simple啦,周末美工約到妹子高興了,程序員哭了,而等到發(fā)工資的時(shí)候就該美工哭了,程序員笑了,結(jié)果還是程序員笑到了最后。
這里可能就有很多人要說了,都說PHP是世界上最好的語言,你為什么都不提一下PHP呢?關(guān)于這個(gè)問題,我只想說,沒有最好的語言,只有最適合的語言,當(dāng)然如果你有什么想說的歡迎在評論區(qū)討論。
看興趣,看興趣,看興趣!
無論做什么開發(fā),永遠(yuǎn)要以興趣來驅(qū)動自己學(xué)習(xí)。先大致的說一下,Java學(xué)習(xí)是一個(gè)需要耗費(fèi)長周期的過程,考驗(yàn)一個(gè)人的邏輯能力,如果你現(xiàn)在還在學(xué)校,時(shí)間比較充裕,建議從學(xué)習(xí)Java開始。相比較而言,Web前端門檻較低,入門稍快,可以在短時(shí)間內(nèi)看到收益,但是由于前端變化特別快,需要永遠(yuǎn)保持積極學(xué)習(xí)的態(tài)度,如果你急需找工作,沒太多時(shí)間,可以選擇Web前端開發(fā)。不管你選擇哪個(gè)方向,到最后都會有一個(gè)好的發(fā)展。
Java系統(tǒng)學(xué)習(xí)路線:
Web前端系統(tǒng)學(xué)習(xí)路線:
從上面這兩張圖片可以看出,不管是哪個(gè)方向,需要學(xué)習(xí)的東西都很多,那么我們該如何確定自己的學(xué)習(xí)路線呢?
Java學(xué)習(xí)路線
(1)首先你必須得學(xué)習(xí)JavaSE,JavaSE是你做java web開發(fā)的基礎(chǔ),不管書籍還是網(wǎng)上視頻,在講解JavaSE的時(shí)候都會講解的很透徹,可以跟著進(jìn)度一點(diǎn)點(diǎn)的學(xué)下去。不過如果遇到swing,jFrame,AWT的章節(jié)可以直接跳過,現(xiàn)在已經(jīng)用的特別少了,而且不影響后續(xù)學(xué)習(xí)。在這里小編推薦幾本書,《Thingking in Java》、《Java核心技術(shù)》、《Java從入門到精通》,書籍不需要太多,能看完一本并跟著教程多敲demo就足夠了。不過我還是推薦看視頻學(xué)習(xí),看視頻會讓你的大腦更加集中。JavaSE部分的內(nèi)容在筆試面試的時(shí)候特別容易會遇到,而且都是涉及jdk源碼級別的,需要了解底層數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),像ArrayList和LinkedList,HashTable和HashMap等經(jīng)典的問題。不過如果只是作為初學(xué)者可不必要注意這些,按照書籍或者視頻的節(jié)奏來就可以。
(2)XML學(xué)習(xí),在使用的很多框架中都是通過XML文件進(jìn)行配置的,這個(gè)也必須掌握。
(3)JavaEE部分,JavaEE的生態(tài)特別龐大,我們無法學(xué)習(xí)完所有的知識點(diǎn),我就按照重要程度來說明學(xué)習(xí)的先后順序。首先是Servlet,這是必須要學(xué)的,像Struts2和SpringMVC都是基于Servlet的封裝,推薦書籍《深入體驗(yàn)Java Web開發(fā)內(nèi)幕-核心基礎(chǔ)》和《深入體驗(yàn)Java Web開發(fā)內(nèi)幕-核心基礎(chǔ)》。然后是JSP部分,因?yàn)槟壳盎诩僅TML的開發(fā)已經(jīng)越來越多,所以JSP部分可以不必深究。
(4)Spring和SpringMVC,Spring作為目前Web項(xiàng)目必須集成的框架也是一定要掌握的,推薦書籍《spring實(shí)戰(zhàn)》。有人經(jīng)常拿Struts2MVC和SpringMVC來作比較,但由于Struts2存在的漏洞( 前段時(shí)間爆出的京東數(shù)據(jù)泄露事件就是因?yàn)镾truts2漏洞造成的),讓很多公司都放棄使用Struts2,轉(zhuǎn)而使用SpringMVC。
(5)數(shù)據(jù)庫相關(guān)知識,首先要懂得數(shù)據(jù)庫相關(guān)理論,推薦書籍《數(shù)據(jù)庫系統(tǒng)概念》了解重點(diǎn)概念,然后就主要是SQL語句的學(xué)習(xí)了,可以在w3school上按照教程學(xué)習(xí),具體能掌握一到兩種數(shù)據(jù)庫就行。
(6)數(shù)據(jù)庫連接JDBC,原生的JDBC語句要會編寫。
(7)持久化層MyBatis或者Hibernate,兩者在使用,Hibernate更加面向?qū)ο蠡恍?,而MyBatis在處理起SQL時(shí)更加靈活,目前好像MyBatis更加火熱一點(diǎn)。
(8)Ajax,目前Ajax技術(shù)運(yùn)用越來越廣泛,Ajax技術(shù)也是一定要掌握的。
(9)Maven,作為java中十分有用的包管理工具,學(xué)習(xí)它是十分有必要的。
(10)版本控制工具SVN或者GIT,個(gè)人推薦使用GIT。Web前端學(xué)習(xí)路線:
如果你選擇了前端,首先歡迎你入坑O(∩_∩)O,你將會在一片汪洋大海里越陷越深(1)前端最先讓我們想到的就是頁面了,那么最基本的HTML+CSS是一定要學(xué)習(xí)的,推薦學(xué)習(xí)書籍《CSS權(quán)威指南》。
(2)頁面上還包括DOM處理與一些數(shù)據(jù)邏輯,所以JavaScript也是一定要學(xué)習(xí)的,推薦書籍《Javascript權(quán)威指南》,進(jìn)階書籍《Javascript高級程序設(shè)計(jì)》。
(3)當(dāng)我們學(xué)習(xí)完基本的頁面知識后,便可以使用類庫來簡化我們的代碼,提高效率。CSS方面可以進(jìn)階到Less或者Sass;如果是針對DOM處理,javascript方向可進(jìn)階到j(luò)Query,推薦書籍《jQuery 實(shí)戰(zhàn)》、《鋒利的jQuery》。
(4)當(dāng)我們真正會了以上一些內(nèi)容后才能說自己前端入門了,而且好戲才剛剛開始,ES6作為未來各種前端框架支持的主語言是一定要會的。前端再細(xì)化的話會分為PC端和移動端,如果重點(diǎn)在PC端,應(yīng)該學(xué)習(xí)AngularJS,推薦書籍《AngularJS權(quán)威指南》,不過由于AngularJS的版本更新速度很快,尤其是1.0到2.0版本的升級,簡直是面目全非,相當(dāng)于要重新學(xué)習(xí)一遍。AngularJS2.0版本是用的Typescript語言編寫的,這就要去學(xué)習(xí)Typescript,而Typescript又是基于ES6的,這些內(nèi)容都可以根據(jù)官方文檔進(jìn)行學(xué)習(xí)。
(5)如果重點(diǎn)是在移動端,則可以學(xué)習(xí)Vue.js和React Native,Vue.js是由國內(nèi)尤大神寫的,是一個(gè)前端輕便的MVVM框架,而且目前Vue生態(tài)也已經(jīng)漸漸豐富了起來。React Native用于移動端十分便利,可以參考官方文檔進(jìn)行學(xué)習(xí),不過它存在的虛擬DOM概念需要我們?nèi)ダ斫?,而且所有代碼都是Javascipt對象的編碼,需要多加練習(xí)才能慢慢理解。
(6)不管是哪種框架,在編碼后都需要代碼編譯,壓縮,打包等操作,這個(gè)時(shí)候構(gòu)建工具就出現(xiàn)了。目前的構(gòu)建工具層出不窮,大概有十幾種,我們無法學(xué)完全部的構(gòu)建工具,但是可以選擇其中比較重要的進(jìn)行學(xué)習(xí),典型的就是gulp+webpack了。
(7)當(dāng)我們學(xué)完以上一些東西后,總想著朝全棧的方向走去,這個(gè)時(shí)候就體現(xiàn)出NodeJS的意義了。NodeJS基于javascript編寫,卻能夠處理服務(wù)器端邏輯,實(shí)則為一大突破,推薦書籍《NodeJS開發(fā) 指南》、《NodeJS深入淺出》。NodeJS作為服務(wù)器端開發(fā)語言,可以學(xué)習(xí)Express框架和KOA框架,順便比較一下與傳統(tǒng)的服務(wù)端Java語言處理起來有什么不同。
(8)版本控制工具GIT。
我們來看下目前Java崗位在一線城市的薪資待遇水平:
可以看出Java崗位在一線城市的薪資待遇水平是21k左右,當(dāng)然這都是具備一定開發(fā)經(jīng)驗(yàn)的,就我們剛學(xué)完Java技術(shù)出來,能順利通過企業(yè)崗位面試,大概的薪資待遇在4-7k左右,根據(jù)你的技術(shù)水平和學(xué)歷而定。
我們來看下目前前端崗位在一線城市的薪資待遇水平:
可以看出前端崗位在一線城市的薪資待遇水平是在19k左右,當(dāng)然這也是具備一定開發(fā)經(jīng)驗(yàn)的薪資待遇水平,就我們剛學(xué)完前端技術(shù)出來,能順利通過企業(yè)崗位面試,大概的薪資待遇水平在4-7k左右,根據(jù)你的技術(shù)水平和學(xué)歷而定。
作者簡介:從事IT行業(yè)十多年,用Java,會前端,知Python,有多年的開發(fā)經(jīng)驗(yàn)。如果大家想要學(xué)習(xí)Java技術(shù),在入門學(xué)習(xí)Java的過程當(dāng)中有遇見任何問題,歡迎大家關(guān)注我的:【Java新手學(xué)習(xí)】,里面有我整理的Java學(xué)習(xí)規(guī)劃,Java學(xué)習(xí)路線,以及我從去年到現(xiàn)在,根據(jù)市場技術(shù)棧需求錄制的Java基礎(chǔ)精講視頻教程。做一個(gè)總結(jié):還是那句話,不管選擇哪個(gè)方向?qū)W習(xí),都要是自己最感興趣的。而且不管是哪個(gè)方向都需要通過不斷的練習(xí)來積累經(jīng)驗(yàn),請記住“一萬小時(shí)定律”。學(xué)習(xí)Java就需要時(shí)間來沉淀,目前Java生態(tài)已經(jīng)這么龐大且穩(wěn)定,我們只需要慢慢地深入就會有成果。學(xué)習(xí)前端就要抱著大浪淘沙的心態(tài),由于前端發(fā)展極為迅速,可能自己學(xué)習(xí)的東西沒過多久就已經(jīng)過時(shí)了,但是也要抱著平和的心態(tài)去面對,并積極學(xué)習(xí)更加新穎的知識。
前端適合長期干下去嗎?
過去很長一段時(shí)間,后端是軟件開發(fā)的核心。后端開發(fā)者被認(rèn)為是真正的軟件工程師,前端開發(fā)者被認(rèn)為是“開發(fā)協(xié)助者”。即使到今天,后端開發(fā)人員的工資通常比前端人員高。剛?cè)肼毲岸碎_發(fā)者,都會有一個(gè)疑問,前端適合長期干下去嗎?
軟件開發(fā)前后端分離,已經(jīng)成為現(xiàn)實(shí)?;ヂ?lián)網(wǎng)興起后,軟件開發(fā)的重點(diǎn)一直在PC端,當(dāng)時(shí)的程序員通常是“一肩挑”,我們稱之為“全棧開發(fā)”。但隨著智能手機(jī)的普及,軟件開發(fā)的重心已經(jīng)移到移動端開發(fā),手機(jī)網(wǎng)站、手機(jī)APP、小程序,前端應(yīng)用呈爆炸式增長,人們對手機(jī)應(yīng)用的要求越來越高,“全棧開發(fā)”成為制約軟件開發(fā)的瓶頸,終于導(dǎo)致軟件開發(fā)前后端的分離。
前后端的分離,讓后端開發(fā)人員和前端開發(fā)人員分別做他們擅長的事,成為是軟件開發(fā)的兩個(gè)方面。如果把軟件工程比喻成生產(chǎn)汽車,后端負(fù)責(zé)解決汽車的動力、機(jī)械、性能,推出基本型號;那么前端要負(fù)責(zé)解決汽車的外觀設(shè)計(jì)、駕馭體驗(yàn)、安全性能、各種配置,最終推出轎車型、SUV型、運(yùn)動型、城市型、豪華型等不同產(chǎn)品,分工不同、方向不同,但缺一不可。
在前后端剛剛分離的時(shí)候,后端人員經(jīng)常鄙視前端人員,認(rèn)為前端技術(shù)簡單,干的是雜活。但經(jīng)過這些年的發(fā)展,后端人員也很難玩轉(zhuǎn)前端技術(shù)了,前端開發(fā)和后端開發(fā)出現(xiàn)“并駕齊驅(qū)”的狀態(tài),甚至在有些方面,前端超過后端,成為軟件開發(fā)的重點(diǎn)。
這幾年,JavaScript 發(fā)展極快,成為世界使用量最大的編程語言,以前必須由后端人員解決的事,現(xiàn)在由前端人員也可以獨(dú)立完成,前端同樣要編程實(shí)現(xiàn)各種功能,后端已經(jīng)無法“一家獨(dú)大”了。各種前端框架涌現(xiàn),在技術(shù)的發(fā)展更替上,前端已經(jīng)明顯超過后端!
隨著前端開發(fā)重要性增加,前端人員的收入也會增加。前端的工作前景看好,可以長期做下去。
分享標(biāo)題:如今前端程序員還有前途嗎?(it前端和后端哪個(gè)難?)
轉(zhuǎn)載來源:http://fisionsoft.com.cn/article/cccodsp.html


咨詢
建站咨詢
