java和前端哪個好學一點?

李特特


先上結論,當然是前端好學一點。不過前端的知識迭代快。

我這樣說,肯定有很多人要懟我了,那我就說細點吧。

既然是題主說的,那我就假設下題主的學習歷程吧。這個歷程有點長,基本涵蓋了你要學習的方向上的一些內容,以及成為頂樑柱後需要處理的事情,其實學到深處,感覺都挺不容易的。

一、Java篇

別人都說前端驗證,你偏不信邪,就覺得Java簡單,於是你開始準備學習Java,你翻開了書,開始了Java之路。

基礎類型

首先,你下載了JDK,並且配置了運行環境,然後你學習了Java基礎知識,數據類型呀、運算符呀、分支結構呀、循環結構呀之類的,也看了一些修飾符,然後你瞭解到,什麼叫對象,什麼叫類,什麼叫包,什麼是內部類,什麼是接口,什麼是抽象類。對了,在瞭解這邊的時候,你順便看了下Java內存結構,什麼堆呀棧呀之類 的。

集合、多線程

好了,你天資聰慧,基礎很快就學習好了,你開始進入進階階段,瞭解了一些集合框架,知道什麼是List,什麼是Map,也瞭解了異常,而且還開始看文件操作,對,就是什麼輸入輸出流呀,文件流呀二進制流的,也開始瞭解多線程編程,順便也知道了事務和鎖,你還看了網絡編程,TCP、UDP協議之類的。

類反射

對了,你天賦異稟,還看了反射機制,瞭解到類居然可以動態實例化,並且OO編程,也就是面向對象編程,什麼繼承呀、封裝呀、多態呀,你輕鬆學習,掌握的不要不要的,這期間你還順便看了24種常用設計模式,編程姿勢是各種解鎖。

數據庫連接

對了,你發現,數據還是存在數據庫裡面比較好,所以你順便學習了數據庫知識,關係數據庫,你學習了Mysql,非關係數據庫,你學習了Mongodb,然後你也學習了JDBC,知道了怎麼連接數據庫

第三方庫

學習過程,你也發現了lib庫,發現了Maven庫管理,你很方便的找到了很多第三方庫。

Spring

你突然想用Java做Web開發,於是你找了度娘,問了下後,發現JavaWeb都是基於Servlet接口的,然後你瞭解了Servlet,也瞭解了Tomcat和NG,還看了Request和Response,然後再查了下,發現大家都在用Spring,於是你開始學習Spring……然後你發現,學習Spring的時間,居然比學習Java還多……

然後你開始深入理解,什麼叫依賴倒置,什麼叫控制反轉,也學會了依賴注入,知道了註解的高級用法,你不僅把SpringXML配置瞭解的很深入,也非常深入的瞭解了Spring註解。然後你還了解了什麼是面向切面的編程,用了幾周時間,你做出一個Web站點,成就滿滿。

部署

然後你發現部署配置Tomcat還是NG都太麻煩了,你又學習了Dock,順便也看了下K8S,對了,隨著訪問用戶的人數增加,你又開始考慮其它的高併發框架,也學習了消息騎士隊,過程中,還出現了莫名其妙的錯誤,所以你又去看了JVM的原理,並優化了Java虛擬機……

高併發

慢慢的,訪問量上來了,服務器扛不住了,你又開始瞭解高併發解決方案,什麼叫高併發原則,什麼是拆分、服務化、消息隊列,什麼叫高可用原則,什麼是降級、限流,什麼是負載均衡與反向代理,什麼是隔離術,什麼是緩存,什麼是多級緩存,什麼是隊列術。

然後你發現,這坑真是無窮無盡呀。

好了,我們現在來講下前端

二、前端篇

前端,你說的前端是定位哪種前端呢?Web、Android、iOS、MVC++或Web前端,知識面涉及最廣的是Web前端,我這邊就講下Web前端好了

Web基礎三劍客

Web前端的基礎,還是那老三樣,HTML、JavaScript和CSS。於是你很快的學習了HTML、JavaScript和CSS,你知道了HTML原來是標籤語言,哇,簡單,JavaScript原來是腳本語言,語法定義比Java輕鬆,還沒有多線程,不過這個事件驅動麻煩了點,是個新概念,花了你一點時間,而CSS,基本上就是更簡單了,負責一些皮膚優化。

W3C

在學習的過程中,你發現了W3C,原來,這傢伙才是老大,用來定製標準的,然後你又發現,最近的標準是HTML5、ES6+、CSS3,你很淡定,不就是升個版本,加點新特性嗎?

ES6+

然後你也很快速的學習了新特性,發現了很多新功能,這時你看到ES6+,等等,這傢伙怎麼冒出來的?JavaScript呢?你好奇的繼續看,發現原來ES全稱是EMCAScript,是一個標準,而JavaScript是按這個標準實現的一個語言,而最新的JavaScript其實是ES5,原來如此,於是你開始學習ES6+,學習過程,發現ES6+增加了好多東西,定製了很多規範,當然,也讓JavaScript更好用了,你知道了Promise,知道了同步函數,然後你看到了Babel.js

兼容性

等等,怎麼又出來一個Babel,不急,你再繼續看,發現原來JavaScript是可以直接在瀏覽器上運行的,他不像Java,需要編譯後才能運行,但這樣也有一個問題,市場上瀏覽器版本很多,用戶是不經常升級版本的,所以你用ES6寫的語法,舊版本的瀏覽器是不能運行的,這時候得把ES6轉成ES5了,怎麼轉?當然就是用Babel了,一點就通的你,自然就懂,感嘆的說了下:這不就相當於加個編譯器嗎?

NPM

於是你看了下怎麼使用babel,除了有Script引用外,還有個Npm方式加包,這是什麼鬼?怎麼又多了一個概念?瞭解後,你發現了,原來這個東西是前端的工具庫,有點像Java中的Maven庫,不找還好,一找果然,拔出蘿蔔帶出泥,你又把Node.js給帶出來了

Node.js

然後你又入坑了,哦不,又開始學習了,你瞭解了,原來前端不止三劍客,是因為有了Node.js,讓前端真正開始模塊化、組件化的發展,甚至將魔抓伸入了服務端方向,是的,通過Node.js,你瞭解了什麼是前端模塊化,什麼是前端組件化,什麼是Node服務端

練手

開發總有框架吧,你一搜索,發現現在前端最熱的三個框架,React、Vue和Angular,然後你又開始了入坑,哦不,學習之路。通過React,你瞭解了什麼叫組件化開發的詳細細節,通過Vue,你知道了什麼叫漸近式開發,通過Angular,你知道了原來這貨是雙向綁定的鼻祖。

工程化

你選了一個React框架,寫了一段時間,要發佈了,這時候懵逼了,怎麼編譯呢?這時候你又發現了Webpack,原來前端是通過Webpack進行打包編譯,但這貨的配置有夠複雜的,你又花了好多時間學習,通過了解,你還了解了其它的編譯工具,如果Grunt、Rollup,發現他們的適用場景還有不同。

優化

部署完後,你看了下效果,感覺還不錯,可是怎麼這麼慢,另外好像還有報錯,於是你又學習了Chrome Web開發者工具,知道了怎麼對瀏覽器進行優化,也知道了還有個Web緩存機制,Web數據庫,瞭解了請求的HTTP相關信息,慢慢的,你逐漸成了一個Web端牛人。

BFF

前端總是在調用服務端的RESTFul接口,過多的請求,過多的無用信息,已經成為你優化性能的一個問題所在,所以你決定做一個Node中間層,進行請求聚合和轉發。慢慢的,你的魔抓已經伸向了服務端。

小程序

公司的業務向小程序方向全面遷移,你一看,呀,小樣的,這寫法完全和Vue差不多嘛,於是,理所當然的,你又開始入坑了……

學習不斷

慢慢的,你留下了瀟瀟背影,在Web前端的征途之中,你發現,呀的,太難了,技術每個月都在更新,你除了學習就是在學習的路上,這何時是個頭呀,你留下一聲嘆息,又開始WebAI和WebAR方向進行研究了。


一顆蘿蔔啊


java是一種開發語言,一般用於後端開發。還可以用於後臺開發的語言包括PHP、C#(因為題主剛開始學,就不羅列更多具體技術名詞了,下同)等等。

前端是一個技術門類或技術方向,需要學習好html(進階html5)、javascript(進階es6)、css(進階css3)等技術,這些都是入門,後期可能還要學像vue等等當前流行框架和思想。

當前流行度:

java毫無疑問是當前市面上保有量最大的開發語言之一。因其開源出身,其生態相當繁榮,應用領域簡直是無孔不入。基本上只要是有軟件開發的地方就會有java開發。它的各種衍生技術和框架也是層出不窮,有了這麼龐大的開發群體,java不流行也不行。

前端方向這幾年一直很火爆,前端的圈子也在不斷擴大。過去的前端開發一般是從後臺過渡到前端的,但由於業務需求不斷擴大,前端越來越專注於某個領域,技術門類越來越細緻,進而催生了整個前端生態,成為了一個獨立的行業。

另外,由於其入門門檻較低,導致了大量的培訓機構、職業院校等等開始相關課程,鋪天蓋地的廣告。這也客觀上造成了前端的”流行”。

java和前端哪個好學:

就入門而言,很明顯前端好學。但如果想學到軟件開發的精髓,兩個基本不分上下。java不用多說了,如果想在前端領域有所建樹,必須學好計算機理論技術,還需要有較高的悟性。因為技術時刻在更新,要與時俱進,需把握好技術趨勢,懂得技術上的取捨等等。java也是一樣。

總結:

前端相比java入門簡單些。

想要學好學精兩者都是很難,需要下功夫。

祝學習順利!


肥貓技術生活


個人認為java好學一些。前臺各種樣式,格式什麼的,我看著非常頭大。但是現在沒有純粹的後端開發工程師了,基本上都要求前後臺都會寫。


分享到:


相關文章: