{eval=Array;=+count(Array);}
要回答這個問題首先要了解Java開發都用在哪些領域,只有清楚了Java語言的應用領域才知道需要掌握哪些技術。
目前Java開發主要應用在Web開發領域,以及大數據、移動互聯網開發等領域。作為目前使用范圍最廣泛的開發語言之一,Java的適用范圍還是比較廣泛的,很多工具類軟件也使用Java進行開發,比如Oracle的很多產品就是使用Java開發的。
先看一下Web開發都涉及到哪些技術,我們看一下基于Java的三層開發體系結構。
這個結構是基于MVC的Model2模式,其中使用Servlet作為控制端,使用JSP作為視圖端,使用JavaBean作為模型端。其中與模型端(Model)關聯的就是數據庫,所以對數據庫的操作是Java程序員不可避免的一個重要的開發環節。
Java操作數據庫的API是JDBC,通過JDBC提供的類和接口完成對數據庫的各種操作,最為常見的操作就是向數據庫發送sql語句并在容器中執行。
當然還需要使用DAO對數據操作進行面向對象轉換,簡單的說就是把面向對象的Java操作映射到面向關系的數據庫系統中。
所以說,掌握數據庫的使用是Java程序員的基本要求。雖然大部分團隊都會配備DBA,但是深入學習一下數據庫對Java程序員來說還是很有必要的,如何優化查詢語句就是個重要的內容。推薦深入學習一下Mysql和Oracle數據庫,這兩個數據庫在Java開發中應用比較廣泛。
目前大部分Web服務器都采用了Linux系列操作系統,Linux操作系統在安全性的表現上要明顯好于Windows和Unix,所以目前大量的Web服務器都采用了Linux,比如CentOS、Ubuntu、Red Hat等。
上圖中的Web Container通常都部署在Linux服務器中。也有一部分開發人員直接在Linux系統下進行Web開發,所以掌握Linux的使用對Web開發來說還是很有必要的。
做為Web開發的Java程序員來說,也可以使用Windows平臺進行開發,所以從開發的角度來說并沒有必要深入學習Linux系統。
但是如果使用Java從事大數據開發,則另當別論了。目前大數據平臺幾乎都搭建在Linux系統上,此時對Java開發人員來說掌握Linux系統是十分必要的。
作為Java程序員來說通常做的都是后端開發的工作,對前端的要求并沒有那么高,通常開發團隊都會配備專業的前端開發人員。但是很多Java程序員都有過開發前端的經歷,因為很多驗證性實驗需要自己完成,所以掌握一定的前端開發知識還是很有必要的。
很多做Android開發的Java程序員都對HTML5比較熟悉,因為很多手機端開發需要使用HTML5來呈現,所以對開發Android的Java程序員來說,掌握前端開發還是很有必要的。
總之,作為Java程序員來說,掌握數據庫、Linux都是很有必要的,前端開發可以根據實際情況一邊使用一邊學習通常就夠用了。
我從事Java開發也有10多年的時間了,如果大家有關于Java方面的問題可以跟我交流。
java不是javascript。java語言,本身屬于后端服務語言,個人建議沒有必要去深入前端。只要懂就可以,沒必要深入
除非你要做全棧工程師。
但吾生有崖,學無涯!
你是java程序員,更多的學習后端服務吧。數據庫,linux
百度的:
ucloud的:
ucloud:
除非你要做全棧工程師。否則,別深入前端了,了解就可以。后端無止盡,夠學的了
我是小鳥,深坑互聯網,歡迎關注暢聊。
謝邀~
為了避免誤人子弟,在講建議之前,我還是先說說我的工作背景。
我一直從事企業級應用的開發,也就是我做的系統都是公司內部的員工在使用,而不是面向互聯網用戶。
開發環境都在windows,測試和生產環境都是Linux,我會做項目的發布和調優的工作。
我們大多數項目,都沒有做分庫分表,也就是單庫;會用到Redis和MongoDB。
所以我認為需要深入學習的:數據庫>linux>前端。
我發現很多程序員在工作的前幾年,很愛做一件事兒,包括我自己:什么技術都想學,但什么都沒有深入地學。
我在第一家單位工作的時候,周末就喜歡去西單圖書大廈看書買書(別笑,那時候互聯網購物沒那么發達),我買過的書有:Deliph、MFC、PhotoShop、C++;前端方面的有CSS、JavaScript、H5、JQuery、DWR...也算“博覽群書”了,但是現在還記得的,已經寥寥無幾。
我們常說要追求技術的廣度,其實也不是毫無目的;我一個做Java的去買Deliph方面的書,不是說Deliph不好,只是對我本身的工作提升有限。
數據庫:數據庫一定要深入的學習,包括關系型數據庫和非關系型數據庫。其中關系型數據庫,我用過Oracle、DB2、Mysql,基本上在開發這個層面上,每一種數據庫用的都很溜,一些底層的知識也有接觸;對于非關系型數據庫,我主要研究Redis和MongDB,這兩個都是現在的主流技術。
linux:在使用層面上沒有問題,至少環境的發布、日常運維、性能監控方面的命令都很熟悉;而且都是從實際工作出發去學習,需要什么就學什么,時間長了也就熟練了。
前端:我已經放棄很久了,現在我們項目普遍采用前后端分離的框架,老系統前端都用JQuery,新項目都會用bootstrap、vue,而且新項目一般都會有專業的前端進行開發。
這是我自己的一些看法,大家可以參考,不過還是要根據自己的實際情況出發;比如我就想研究一下Linux內核,或者我想開發一款產品,需要研究一下前端技術。
優秀的程序員應該全部都掌握,因為全棧工程師才是最搶手的,把一個人用出多個人的感覺,才是資本主義的最高價值觀。
但是如果一定要在前端,數據庫與Linux中做選擇的話,我的排序是數據庫>LINUX>前端。
我們倒著說,為什么把前端放在最后。
當前后端分離的大趨勢下,前后端的耦合越來越弱,以我目前工作的平臺服務來說,前后端僅僅通過api接口通信,這就意味著,作為Java開發工程師的我,只需要負責提供一個穩定的API接口就夠了,我無須過問前端工程師如何渲染前端頁面,這是PM和FE應該操心的事情。因此,如果我不想往全棧發展的話,根本不用理會前端。
還是以我目前工作的平臺舉例,我們的Tomcat布置在Linux環境中。
最最基本的,我們至少要知道如何打包上傳,部署并啟動服務器,redis,es,MySQL,切換Nginx等等。進階一點,我們需要學會如何利用Linux強大的grep命令去篩選日志,排查問題。而如果遇到了突發情況,比如Tomcat掛掉,頻繁發生OOM或者其他重啟無法解決的問題,而且從代碼上也分析不出來問題所在,就要學會用dump,top等等語句來分析現場,定位問題。這種能力雖然不是每天都要用,但是一旦用到,就會派上大用處,不夸張,那時候的你就是同事眼中的超級英雄。
此處不局限于MySQL,也包括了ElasticSearch等所有數據持久層。
上面說到Linux的酷炫使用并非每天都會遇到,但是數據持久層如果出現問題,那么將會猶如禿子頭上的虱子一樣顯著。繼續舉例,我們曾經工作的平臺,最初數據持久層用的是MySQL,但是隨著數據量的增大,其反應速度越來越慢,導致頻頻收到用戶的反饋,極大影響了用戶體驗與產品口碑。
后來,我們想到的辦法是首先引入MySQL主從架構,緩解對單MySQL節點的訪問壓力,其次引入了ES做數據持久層,利用了ES對大數據的快速查找能力,最終解決了這個問題。
從以上我說的例子中,我想大家應該就能感受到詳細了解數據庫相關知識,對提高JAVA工程的性能有更大的幫助,因此我的建議是大家將更多的精力花在了解數據持久層上。
以上是我的淺見,歡迎大家在下方留言與我交流。
我是蘇蘇思量,來自BAT的Java開發程序員,每天分享科技類見聞,歡迎各位關注我,與我共同進步。
我是一名計算機專業的學生,目前從事java的開發,就這個問題而言,我覺得很多人會傾向于深入學習數據庫,linix,當然我也不例外,因為現在的開發都是前端后端分離,對于前端的東西,你只需要了解一些就可以了,而沒有深入學習的必要,而現在又有一個稱謂叫全棧工程師,意思是前端后端都會,但是一個人沒有那么多精力去深入學習那么多東西,你看上去似乎都會,其實你都沒有深入。
對于后端人員,深入學習數據庫和linux是很有必要的,這會影響到你以后是否能成功向DBA,運維轉型,程序員遲早要轉型的,如果你深入學習了數據庫,將轉型為DBA應該不成問題,深入學習linux,將來轉為運維人員是很有希望的。
總的來說,后端人員還是應該深入學習數據庫和linux系統,前端的東西對以后的提升幫助沒有那么大。
1、我不認為一個Java程序員需要花費精力去深入學習前端。現在多是前后端分離,術業有專攻,專業的事交給專業的人去做。
2、Java程序員屬于后端開發,而圍繞后端開發的東西太多了。比如JVM的底層原理,各種常用框架的原理,微服務框架,緩存,調優等。這些東西都搞明白了,我認為已經很牛逼了。
3、數據庫是Java開發中必不可少的一環,sql語句大家都會寫,關鍵是誰寫的效率高,面對大量數據、并發等情況下,你寫的sql語句還能瞬間執行完嗎?如何對sql進行優化,只要提高了執行效率,你就很厲害。而這需要對數據庫的執行的整個過程原理需要深入研究。當然了現在的數據庫還涉及到nosql以及各種緩存。
4、后端程序員肯定會和linux服務器打交道,無論是項目的部署還是線上問題的排查或者線上調優等,都離不開linux。但對于非專業的運維人員來說,做到一般的命令會熟練使用就可以了。
5、一個人的精力是有限的,不排除很牛逼的全棧工程師。對于一般的開發者來說,能做到一點深入研究并有成功結果,都已經很厲害了。
希望對你有幫助。
作為Java程序員,應該深入哪方面的學習?其實這跟應不應該沒啥關系,而是看你的發展規劃或未來定位。
如果認為就是做個一般程序員,再搞搞其它副業,也未嘗不可,程序員可作為職業養活自己甚或家庭,有可以搞點或發展個人愛好。
如果認定了在IT技術領域發展,那就可以進行程序員進階貯備,包括提升技術能力等級,通曉架構,然后是大數據人工智能等。
這過程你數據庫、操作系統(如Linux)肯定要掌握的,如果不做管理員,能熟練應用就可以了。關鍵還是技術與解決問題的能力。
其實,在技術上,你要能深耕一塊,又能有一定的適應力,就夠你玩的了。
就說這些吧。
java往前端學習的話,就是全棧發開了,但是我覺得沒有往深的學習工資高。
java的架構師工資還是很可觀的,年薪都是30w-60w這樣居多,所以我覺得你往深的學習會比較好。
java學習數據庫>linux>前端
首建議數據庫,次建議Linux,末建議前端。
1,程序員前后臺開發分離
稍微有點規模的企業,程序開發是前后臺分離的,除非是幾個人的創業公司,人力資源緊張,可能會出現一個人既做前臺,又做后臺,所以,你要對自己有個定位,根據你個人的興趣愛好、工作職責劃分等等,選擇是前臺開發,還是后臺開發,選其一深耕。
2,IT分運維和開發
大家知道,IT行業有開發、售后實施、售前銷售等很多崗位,尤其是大公司,可能職責劃分的更多更細。如果你是從事一些運維工作,那重心就要放在網絡、操作系統、中間件、常用命令等方面,知識面要廣,但不要求深。
3,前端開發需要掌握的技術
前段開發相比后臺開發,技術框架更新更快,這就要求開發人員具備很強的自學能力,要緊跟時代潮流,才能設計出最符合用戶口味的產品,目前最常用的技術有:
4,后臺開發需要掌握的技術
很多人喜歡后臺開發,后臺開發需要掌握很多技術框架,比前端涉及的技術面更廣,常用的有。
還有很多就不一一列舉,有太多東西需要掌握。工作中雖然職責劃分很多,但我們除了要做好本職工作,還要對其他方面也要適當學習,不能只會敲代碼,對Linux 最常用命令一無所知。
0
回答10
回答10
回答0
回答1
回答0
回答0
回答0
回答3
回答0
回答