選擇web前端還是java後端呢?

太多的不該


總是在各大論壇可以和看見類似這樣的問題,大一大二大三,想要轉行從事IT行業方面的技術工作,是學Java好還是學Web前端比較好?或者是我非計算機科班出身,想從事程序員的工作,是選擇Java還是選擇Web前端?



Java PK Web前端

對於這樣的問題我該怎麼回答呢,我只想說聽天由命吧,抓鬮抓到哪個學哪個。哈哈,當然這只是開玩笑的,對於我們未來的方向選擇必須要慎重,在我講解自己的看法之前,我們先來看下一個程序員界的段子。

C程序員看不起C++程序員,C++程序員看不起Java程序員,Java程序員看不起C#程序員,C#程序員看不起美工,週末了,美工帶著妹子出去約會了...剩這群程序員在加班。

沒想到,最後美工成了人生贏家,這樣一來大家是不是都想說我還是去做美工吧。如果真是這樣,那就too young too simple啦,週末美工約到妹子高興了,程序員哭了,而等到發工資的時候就該美工哭了,程序員笑了,結果還是程序員笑到了最後。

這裡可能就有很多人要說了,都說PHP是世界上最好的語言,你為什麼都不提一下PHP呢?關於這個問題,我只想說,沒有最好的語言,只有最適合的語言,當然如果你有什麼想說的歡迎在評論區討論。

看興趣,看興趣,看興趣!

無論做什麼開發,永遠要以興趣來驅動自己學習。先大致的說一下,Java學習是一個需要耗費長週期的過程,考驗一個人的邏輯能力,如果你現在還在學校,時間比較充裕,建議從學習Java開始。相比較而言,Web前端門檻較低,入門稍快,可以在短時間內看到收益,但是由於前端變化特別快,需要永遠保持積極學習的態度,如果你急需找工作,沒太多時間,可以選擇Web前端開發。不管你選擇哪個方向,到最後都會有一個好的發展。

Java系統學習路線:


Web前端系統學習路線:

從上面這兩張圖片可以看出,不管是哪個方向,需要學習的東西都很多,那麼我們該如何確定自己的學習路線呢?

Java學習路線

(1)首先你必須得學習JavaSE,JavaSE是你做java web開發的基礎,不管書籍還是網上視頻,在講解JavaSE的時候都會講解的很透徹,可以跟著進度一點點的學下去。不過如果遇到swing,jFrame,AWT的章節可以直接跳過,現在已經用的特別少了,而且不影響後續學習。在這裡小編推薦幾本書,《Thingking in Java》、《Java核心技術》、《Java從入門到精通》,書籍不需要太多,能看完一本並跟著教程多敲demo就足夠了。不過我還是推薦看視頻學習,看視頻會讓你的大腦更加集中。JavaSE部分的內容在筆試面試的時候特別容易會遇到,而且都是涉及jdk源碼級別的,需要了解底層數據結構設計,像ArrayList和LinkedList,HashTable和HashMap等經典的問題。不過如果只是作為初學者可不必要注意這些,按照書籍或者視頻的節奏來就可以。

(2)XML學習,在使用的很多框架中都是通過XML文件進行配置的,這個也必須掌握。

(3)JavaEE部分,JavaEE的生態特別龐大,我們無法學習完所有的知識點,我就按照重要程度來說明學習的先後順序。首先是Servlet,這是必須要學的,像Struts2和SpringMVC都是基於Servlet的封裝,推薦書籍《深入體驗Java Web開發內幕-核心基礎》和《深入體驗Java Web開發內幕-核心基礎》。然後是JSP部分,因為目前基於純HTML的開發已經越來越多,所以JSP部分可以不必深究。

(4)Spring和SpringMVC,Spring作為目前Web項目必須集成的框架也是一定要掌握的,推薦書籍《spring實戰》。有人經常拿Struts2MVC和SpringMVC來作比較,但由於Struts2存在的漏洞( 前段時間爆出的京東數據洩露事件就是因為Struts2漏洞造成的),讓很多公司都放棄使用Struts2,轉而使用SpringMVC。

(5)數據庫相關知識,首先要懂得數據庫相關理論,推薦書籍《數據庫系統概念》瞭解重點概念,然後就主要是SQL語句的學習了,可以在w3school上按照教程學習,具體能掌握一到兩種數據庫就行。

(6)數據庫連接JDBC,原生的JDBC語句要會編寫。

(7)持久化層MyBatis或者Hibernate,兩者在使用方式上稍有差別,Hibernate更加面向對象化一些,而MyBatis在處理起SQL時更加靈活,目前好像MyBatis更加火熱一點。

(8)Ajax,目前Ajax技術運用越來越廣泛,Ajax技術也是一定要掌握的。

(9)Maven,作為java中十分有用的包管理工具,學習它是十分有必要的。

(10)版本控制工具SVN或者GIT,個人推薦使用GIT。

Web前端學習路線:

如果你選擇了前端,首先歡迎你入坑O(∩_∩)O,你將會在一片汪洋大海里越陷越深(1)前端最先讓我們想到的就是頁面了,那麼最基本的HTML+CSS是一定要學習的,推薦學習書籍《CSS權威指南》。

(2)頁面上還包括DOM處理與一些數據邏輯,所以JavaScript也是一定要學習的,推薦書籍《Javascript權威指南》,進階書籍《Javascript高級程序設計》。

(3)當我們學習完基本的頁面知識後,便可以使用類庫來簡化我們的代碼,提高效率。CSS方面可以進階到Less或者Sass;如果是針對DOM處理,javascript方向可進階到jQuery,推薦書籍《jQuery 實戰》、《鋒利的jQuery》。

(4)當我們真正會了以上一些內容後才能說自己前端入門了,而且好戲才剛剛開始,ES6作為未來各種前端框架支持的主語言是一定要會的。前端再細化的話會分為PC端和移動端,如果重點在PC端,應該學習AngularJS,推薦書籍《AngularJS權威指南》,不過由於AngularJS的版本更新速度很快,尤其是1.0到2.0版本的升級,簡直是面目全非,相當於要重新學習一遍。AngularJS2.0版本是用的Typescript語言編寫的,這就要去學習Typescript,而Typescript又是基於ES6的,這些內容都可以根據官方文檔進行學習。

(5)如果重點是在移動端,則可以學習Vue.js和React Native,Vue.js是由國內尤大神寫的,是一個前端輕便的MVVM框架,而且目前Vue生態也已經漸漸豐富了起來。React Native用於移動端十分便利,可以參考官方文檔進行學習,不過它存在的虛擬DOM概念需要我們去理解,而且所有代碼都是Javascipt對象的編碼方式也有一定特殊性,需要多加練習才能慢慢理解。

(6)不管是哪種框架,在編碼後都需要代碼編譯,壓縮,打包等操作,這個時候構建工具就出現了。目前的構建工具層出不窮,大概有十幾種,我們無法學完全部的構建工具,但是可以選擇其中比較重要的進行學習,典型的就是gulp+webpack了。

(7)當我們學完以上一些東西后,總想著朝全棧的方向走去,這個時候就體現出NodeJS的意義了。NodeJS基於javascript編寫,卻能夠處理服務器端邏輯,實則為一大突破,推薦書籍《NodeJS開發 指南》、《NodeJS深入淺出》。NodeJS作為服務器端開發語言,可以學習Express框架和KOA框架,順便比較一下與傳統的服務端Java語言處理起來有什麼不同。

(8)版本控制工具GIT。


我們來看下目前Java崗位在一線城市的薪資待遇水平:

可以看出Java崗位在一線城市的薪資待遇水平是21k左右,當然這都是具備一定開發經驗的,就我們剛學完Java技術出來,能順利通過企業崗位面試,大概的薪資待遇在4-7k左右,根據你的技術水平和學歷而定。

我們來看下目前前端崗位在一線城市的薪資待遇水平:

可以看出前端崗位在一線城市的薪資待遇水平是在19k左右,當然這也是具備一定開發經驗的薪資待遇水平,就我們剛學完前端技術出來,能順利通過企業崗位面試,大概的薪資待遇水平在4-7k左右,根據你的技術水平和學歷而定。

作者簡介:從事IT行業十多年,用Java,會前端,知Python,有多年的開發經驗。如果大家想要學習Java技術,在入門學習Java的過程當中有遇見任何問題,歡迎大家關注我的微信公眾號:【Java新手學習】,裡面有我整理的Java學習規劃,Java學習路線,以及我從去年到現在,根據市場技術棧需求錄製的Java基礎精講視頻教程。


做一個總結:還是那句話,不管選擇哪個方向學習,都要是自己最感興趣的。而且不管是哪個方向都需要通過不斷的練習來積累經驗,請記住“一萬小時定律”。學習Java就需要時間來沉澱,目前Java生態已經這麼龐大且穩定,我們只需要慢慢地深入就會有成果。學習前端就要抱著大浪淘沙的心態,由於前端發展極為迅速,可能自己學習的東西沒過多久就已經過時了,但是也要抱著平和的心態去面對,並積極學習更加新穎的知識。


編程仔日常


大家好我是阿何幻想世界,很高興分享我的觀點

web前端

簡單來說Web應用中用戶可以看得見碰得著的東西。包括Web頁面的結構、Web的外觀視覺表現以及Web層面的交互實現。 現在前端的核心價值在於對用戶體驗的極致追求。首先,你必須是一個合格的“頁面仔”;我們都知道,所有呈現的內容都是基於HTML 網頁的。如果你的html、css(包括現在的HTML5+CSS3)基礎不會,或者不夠紮實,都很難在有大的進步,或者你的JS (JavaScript這門語言並不是一種強類型語言,更像是一種解釋型語言,所以很多屬性,在不同的瀏覽器環境解釋有很大不同導致,效果和性能千差萬別,而且很多屬性之長,之多,之巨都很有工作量。)很好,但佈局基礎不行,還是不能算合格的web前端。其次,前端主要負責實現視覺和交互功能,以及與後端服務器通信,完成業務邏輯。 ·正如一些人總結的web前端同樣是程序員,由於前端是位於後端程序和界面設計師之間的崗位,相當於中間橋樑,要完成三者的對接,涉及到廣泛 的知識,規模大到工程級,也就有了前端工程師的說法。就是這樣web前端工程師,是一個要精通本職html,css,javascript,也要了解後端編程,瞭解界面設計,瞭解軟件工程的綜合人才。


web後端

對應jsp、javaBean、dao層、action層和service層的業務邏輯代碼。(包括數據庫)將jsp劃分後端主要是jsp的運行原理是在tomcat服務器運行的。 後端更多的是與數據庫進行交互以處理相應的業務邏輯。需要考慮的是如何實現功能、數據的存取、平臺的穩定性與性能等 後端開發一般也叫做後臺,其負責是網站後臺邏輯的設計和實現還有用戶及網站的數據的保存和讀取。比如一般網站都是有用戶註冊和登錄的,用戶的註冊的信息通過前端發送給後端,後端將其保存在數據庫中,用戶登錄網站的時候,後端需要通過用戶輸入的用戶名和密碼是否與數據庫中的一致來判斷用戶是否有權限登錄,這是後臺開發中的一個最簡單的功能。



總結

阿何幻想世界個人認為,只有你充分了解Web前端與後端職責範圍,所需編程基礎,如何選擇,最終還是取決於你對編程語言風格的喜好並綜合考慮你本人目前的實際情況。


阿何幻想世界


前端開發一般只涉及到js,html,css,有些可能會用flash,photoshop這些。前端開發人員:精通JS,能熟練應用JQuery,懂CSS,能熟練運用這些知識,進行交互效果的開發。


後端開發人員:會寫Java代碼,會寫SQL語句,能做簡單的數據庫設計,會Spring和iBatis,懂一些設計模式等。


究竟怎麼選擇,還是看你的興趣了。


深夜最科技


前端技術的興起(成為熱點)應該是移動互聯網的快速發展,一開始對安卓、IOS 的需求急劇增加,薪資待遇很高,相信有好多後端還轉向前端,隨著浪潮已過,為了節省成本,web 前端,h5 開發工程師需求量增大,安卓與IOS開發需求降低,但至始至終後端到需求一直巨大,故從需求量來看,建議選後端。

絕大多數到技術總監,技術 CTO 基本都是從事後端的,從職場發展上升潛力來看應該選擇後端。

後端的技術棧實在是太多,就以java為例,至少包含了 java se,SSM,數據庫,微服務,nosql,消息等中間件等,學習難度較大,需要持續投入很大的精力,而前端開發技術棧相對較少,由於男生需要承擔的家庭負擔通常較小,女生在家庭方面犧牲較多,故男生建議先後端,女生選前端。


中間件興趣圈


這個問題質量不好,做了前端就做不了後端嗎!叔一直都是前後端通殺。


廣州何劍鋒


我見過很多人是前後端都厲害。但是非要選擇一個的話,看興趣。如果對產品展示和設計之類的感興趣那就前端,對後端數據或者架構感興趣那就後端唄,對工資感興趣就抓鬮吧。


TristenWenn


還是要看自身,自己更適合哪一方面,前端主要負責界面交互,數據展示。java後臺負責數據操作,邏輯處理,性能優化,數據庫sql語句等。前端相對容易,但是更新比較快。java需要有一定的思維邏輯。當然,無論選擇哪個都要不斷學習。


分享到:


相關文章: