對于完全沒有經驗零基礎出身,數學底子也很弱的人,學習Java應該怎么學習呢
學習資料挺多的,但是不一定都是對自己有幫助的,適合自己的才是最好的。
作為一個計算機專業的學生,專業課本身學習的東西不是很多,這就要求我們必須自己找資料來提升自己,更快的學習達到之后工作的要求。
我們專業的老師給我們分享了尚學堂高淇老師的java300集資料來學習,之前帶過的學生也一直是看這個在學習,而且現在已經更新了最新的資料,也更符合企業的技能需求。經過幾天的學習,發展這個資料設計的挺人性化的,每個小知識點是一個專門的事情,利用零散的時間都可以學習,關鍵是課程本身講的就很系統,高老師講的也很細,很適合剛接觸java的同學學習。而且有什么不懂的也可以和同學們討論交流,相信看這個資料能得到快速的提升。
該如何學習Java
題主這個問題不難回答,不過在回答這個問題之前,我想要問題主一個問題:是否真的準備好進入IT行業?
不可否認,隨著互聯網的高速發展,高薪成為IT行業的標簽,但,并不是每個人都適合吃這碗飯的。
我一直的觀點就是:興趣是最好的老師,如果你真心熱愛編程,以編程為樂,那么不管是自學還是報培訓班,能夠學成而歸,在這個行業混得風生水起。
如果你僅僅是因為高薪而硬著頭皮學習,那么就算你進入這個行業,時間久了,也會慢慢退出的。
另外,Java開發需要很強的思維邏輯能力和耐力,最最重要的是自學能力強(是的,哪怕是培訓或者工作,也需要)。
你好好想想,你具備我上面說的這些嗎?
如果你覺得你符合上面的要求,那么接下來我就來說說Java培訓和自學的優缺點.
培訓優勢:
培訓的周期一般都較短,而且學習的知識比較全面,有專業老師系統授課,遇到問題可以咨詢老師得到快速解決。
此外,相對于自學,培訓的學習氛圍更好,可以和同期學員互相探討,對拓展思路很有幫助。
劣勢:
培訓需要很大的金錢成本,一般培訓機構的費用都在1W以上,在算上生活費什么的,成本更高。
而且因為培訓周期短的原因,一般從培訓機構出去工作的學生,基礎都不是很扎實,和經過幾年系統學習的人相比,確實有一定差距。
自學優勢:
金錢成本低,在學習時間的安排上比較自由,能夠按照自己的學習計劃進行學習。
劣勢:
自學一般都需要較長的時間,如果沒有基礎的話,入門比較難,容易踩坑。
而且自學需要強大的自制力,要堅持每天學習,但是遇到技術難點很容易做牛角尖,導致半途而廢。
如果你的自制力不強,又想快速提升技能進入IT行業,那么最好是找一家靠譜的培訓機構進行學習,雖然費用高,但是能讓你快速入門。
如果你是邊上班邊學,自制力有很強的的話,那么完全可以自學,現在網上的教程非常多,再買基本Java的書看看,成為一個合格的碼農完全沒有問題。
自學網站推薦W3Cschool:上面不僅有免費的教程,還有Java微課,讓你一邊學習理論一遍實踐。
菜鳥教程:該網站上有豐富的實例,還有其他用戶的學習筆記,便于參考。
慕課網:上面有豐富的視頻教程,建議喜歡看視頻學習的使用。
Java書籍推薦入門書籍
《HeadFirstJava,2ndEdition(中文版)》
這本書不僅內容豐富、有趣且通俗易懂,并且涵蓋了所有Java相關的基礎知識。如果你是Java初學者,這本書正適合你。
《Java核心技術(卷1、2)》
寫作風格相比HeadFirst趣味性來說更顯傳統,所涵蓋的內容包括Java基礎知識及高級應用,是對于入門來說的另一種選擇。
進階書籍
《Java編程思想(第4版)》
必讀之作,不僅涵蓋所有Java基礎,對于編程思想層面的提升也有很好的幫助。
《HeadFirst設計模式》
延續HeadFirst一貫生動趣味的寫作風格,介紹23個設計模式,推薦作為設計模式入門級書。
《EffectiveJava中文版(第2版)》
Java編程中78條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。
《重構:改善既有代碼的設計》
出自于MartinFowler的大作,寫出優秀代碼的必經之路,建議每個碼農最好都看。
《JavaConcurrencyinPractice》
了解Java并發編程必讀佳作,建議閱讀英文版。
學習Java需要安裝什么工具
今天我們來詳細盤點一下Java開發一般都會用到哪些開發工具。
一.開發編程工具
1.Eclipse官網地址
Eclipse是一個開放源代碼的、基于Java的可擴展開發平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發環境。幸運的是,Eclipse附帶了一個標準的插件集,包括Java開發工具(JavaDevelopmentKit,JDK)。
2.MyEclipse官網地址
MyEclipse,是在Eclipse基礎上加上自己的插件開發而成的功能強大的企業級集成開發環境,主要用于Java、JavaEE以及移動應用的開發。在最新版本的MyEclipse中,配合CodeMix使用支持也十分廣泛,尤其是對各種開源產品和主流開發框架的支持相當不錯。已支持PHP、Python、Vue、Angular、React、Java、JavaEE等語言和框架開發。
3.IntelliJIDEA官網地址
IDEA全稱IntelliJIDEA,是java編程語言的集成開發環境。IntelliJ在業界被公認為最好的Java開發工具,尤其在智能代碼助手、代碼自動提示、重構、JavaEE支持、各類版本工具(git、svn等)、JUnit、CVS整合、代碼分析、創新的GUI設計等方面的功能可以說是超常的。IDEA是JetBrains公司的產品,這家公司總部位于捷克共和國的首都布拉格,開發人員以嚴謹著稱的東歐程序員為主。它的旗艦版還支持HTML,CSS,PHP,MySQL,Python等。免費版只支持Java,Kotlin等少數語言。
我后來轉Android后用的是AndroidStudio工具,其實這個工具就是Google在idea的基礎上二次開發出來的,所以兩者非常像,只是側重不同。
上面這幾個工具我全部都用過,2011年剛入門培訓的時候就是用的Eclipse,后來做Javaweb項目就改為用MyEclipse,后來轉Android用過一段時間Idea,說一下這幾個工具的主要區別:
MyEclipse是收費的,eclipse是免費的。
Eclipse自帶的插件很少,如果寫web項目,需要自己配置很多東西,MyEclipse集成了很多的插件,一般Java的企業應用開發都會使用MyEclipse。
idea比myeclipse更加智能,自帶更智能的代碼提示,代碼檢查。
MyEclipse以前用的時候有時候經常會卡死,Idea更加穩定,而且我感覺Idea界面看起來更舒服。(個人感受)
我個人更推薦開發同學直接用idea,感覺idea集合了eclipse和MyEclipse的功能和優點,然后又在此基礎上做了升級,尤其是代碼智能提示,自動生成一些相關的類文件的確方便了很多。java開發工具還有NetBeans、VisualStudioCode等其他工具,但是那些我沒用過,相關介紹大家可以自行從網上搜索相關資料。
二.接口調試工具
作為一名開發人員,完成開發工作后,肯定要自己進行測試,這可能還會用到接口測試的一些工具。
1.Postman官網地址
Postman是一款功能非常棒的Chrome擴展,提供功能強大的API&HTTP請求調試。它可以發送幾乎所有類型的HTTP請求,并可以附帶任何數量的參數和請求頭(headers)。
2.Apipost官網地址
ApiPost是一個支持模擬POST、GET、PUT等常見HTTP請求,支持團隊協作,并可以直接生成并導出接口文檔的API文檔、調試、Mock、測試一體化協作平臺。
3.ApiFox官網地址
API文檔、API調試、APIMock、API自動化測試,一體化協作平臺。平臺化的產品不多說。
4.Charles官網地址
Charles是一個HTTP代理/HTTP監視器/反向代理,它使開發人員能夠查看他們的機器和Internet之間的所有HTTP和SSL/HTTPS流量。這包括請求、響應和HTTP標頭(其中包含cookie和緩存信息)。
charles更多的用在監視接口調用情況,說直白點就是抓包工具,類似的工具還有Fiddler和Wireshark。
三.測試工具
1.jmeter官網地址
ApacheJMeter是Apache組織基于Java開發的壓力測試工具,用于對軟件做壓力測試。
jmeter能夠進行接口測試和性能測試,可是對于作單純的接口測試jmeter操做起來沒有postman、apipost使用起來方便。jmeter重點在于壓力測試,穩定性測試和負載測試。針對于接口和程序的穩定性設計的一款以軟件性能為主,接口測試為輔的接口測試工具。
2.JTest官網地址
JTest是Parasoft公司推出的一款針對java語言的自動化白盒測試工具,它通過自動實現java的單元測試和代碼標準校驗,來提高代碼的可靠性。
3.JUnit官網地址
JUnit是一個為Java編程語言設計的單元測試框架。JUnit為測試驅動開發框架的發展發揮了重要作用。它是現在被統稱為xUnit的單元測試框架大家庭的組成成員之一,源于SUnit。在編譯時,JUnit可以連接作為JAR,用于編寫可重復的測試。
4.Arquillian官網地址
Arquillian是JVM一個高度創新性和可擴展的測試平臺,支持Java開發人員輕松創建自動化集合的,功能性的和驗收的測試。Arquillian允許在運行時間執行測試。Arquillian可以用來管理單個或多個容器的生命周期,捆扎測試用例,從屬類和資源。它還能夠部署歸檔到容器中,在容器中執行測試、捕獲結果,并創建報告。
Arquillian集成了常見的測試框架,如JUnit4、TestNG5,并允許使用現有的IDE發布測試,并且由于其模塊化的設計使得能夠運行Ant和Maven測試插件。
四.遠程連接工具
國內程序員大部分都是在windows環境開發,但是開發完畢后,免不了需要部署到服務器(Liunx);特別是Java開發的程序,幾乎都是部署在Linux系統,如何把程序部署到遠程的Linux服務器呢?這時候遠程連接工具就派上用場了。
1.Xshell
Xshell是一個功能強大的終端模擬器,支持SSH、SFTP、telnet,rlogin和串行。人們可以使用它在Windows界面下用來訪問遠端不同系統下的服務器,從而達到遠程控制終端的目的。
2.SecureCRT
SecureCRT是一款支持SSH(SSH1和SSH2)的終端仿真程序,簡單地說是Windows下登錄UNIX或Linux服務器主機的軟件。
3.FileZilla
FileZilla是一個免費開源的FTP軟件,分為客戶端版本和服務器版本,具備所有的FTP軟件功能。可控性、有條理的界面和管理多站點的簡化方式使得Filezilla客戶端版成為一個方便高效的FTP客戶端工具,而FileZillaServer則是一個小巧并且可靠的支持FTP&SFTP的FTP服務器軟件。FileZilla是一種快速、可信賴的FTP客戶端以及服務器端開放源代碼程式,具有多種特色、直接的接口。
4.Putty
PuTTY是一個Telnet/SSH/rlogin/純TCP以及串行連線軟件。較早的版本僅支援Windows平臺,在最近的版本中開始支援各類Unix平臺,并打算移植至MacOSX上。除了官方版本外,有許多非官方的團體或個人將PuTTY移植到其他平臺上,像是以Symbian為基礎的移動電話。
五.數據庫視圖工具
因為我以前做后臺的時候主要用的是MySql,所以這部分主要列舉MySql數據庫圖形化工具,如果工作用Oracle或者SqlServer的同學自行從網上找相關資料,當然下面介紹的工具有些也支持oracle和SqlServer。
1.Navicat官網地址
Navicat是一套快速、可靠的數據庫管理工具,Navicat是以直覺化的圖形用戶界面而建的,可以兼容多種數據庫,支持多種操作系統。
2.MySQLWorkbench官網地址
MySQLWorkbench是一個統一的可視化開發和管理平臺,該平臺提供了許多高級工具,可支持數據庫建模和設計、查詢開發和測試、服務器配置和監視、用戶和安全管理、備份和恢復自動化、審計數據檢查以及向導驅動的數據庫遷移。MySQLWorkbench是MySQLAB發布的可視化的數據庫設計軟件,它的前身是FabForce公司的DDesigner4。MySQLWorkbench為數據庫管理員、程序開發者和系統規劃師提供可視化設計、模型建立、以及數據庫管理功能。它包含了用于創建復雜的數據建模ER模型,正向和逆向數據庫工程,也可以用于執行通常需要花費大量時間和需要的難以變更和管理的文檔任務。MySQL工作臺可在Windows,Linux和Mac上使用。
3.SQLyog官網地址
SQLyog是一個易于使用的、快速而簡潔的圖形化管理MYSQL數據庫的工具,它能夠在任何地點有效地管理你的數據庫。
SQLyog是業界著名的Webyog公司出品的一款簡潔高效、功能強大的圖形化MySQL數據庫管理工具。使用SQLyog可以快速直觀地讓您從世界的任何角落通過網絡來維護遠端的MySQL數據庫。
4.DataGrip
DataGrip,是大名鼎鼎的JetBrains公司出品的,就是那個出品IntellijIDEA的公司。DataGrip是一款數據庫管理客戶端工具,方便連接到數據庫服務器,執行sql、創建表、創建索引以及導出數據等。
下載地址:https://www.jetbrains.com.cn/datagrip/
六.其他工具
1.文本編輯工具EditPlus
在程序員的日常工作中,編輯器的使用是不可缺少的,一個好用方便的文本編輯器會在一定程度上提高工作效率。
EditPlus屬于輕量級的編輯器,就小編而言,用EditPlus多些。不敢說EditPlus更好,但部分回復對EditPlus存在的說法做一些糾正。
editplus提供了與Internet的無縫連接,可以在EditPlus的工作范圍中開啟Intelnet訪問窗口。提供了多工作窗口,無需轉換到桌面便可在工作范圍中開啟好幾個文檔。editplus默認支持HTML.CSS.PHP.ASP.Perl.C/C++.java.JavaScript和VBScript等語法突出顯示,通過定制語法文檔,可以擴展到別的程序語言。2.文本編輯工具Notepad++
Notepad就是記事本,它用于文本編輯,在文字編輯方面與Windows寫字板功能相當。
所見即所得功能、語法高亮、字詞自動完成功能,支持同時編輯多重文檔,支持自定義語言。
對于HTML網頁編程代碼,可直接選擇在不同的瀏覽器中打開查看,以方便進行調試。
自動檢測文件類型,根據關鍵字顯示節點,節點可自由折疊/打開,可顯示縮進引導線,使代碼富有層次感。
可打開雙窗口,在分窗口中又可打開多個子窗口,允許快捷切換全屏顯示模式,支持鼠標滾輪改變文檔顯示比例。
可顯示選中文本的字節數,并非普通編輯器所顯示的字數。提供了一些實用工具,如鄰行互換位置、宏功能等。
類似的文本編輯類的工具有很多,我現在開發做的少了,平時開會主要用一些線上的平臺如幕布、有道云筆記之類的。
3.畫圖類的工具
這部分主要用于接收到需求做系統設計或者方案用,這類工具主要是為了理清楚思路;如Visualparadigm、OmniGraffle、ProcessOn。
Visualparadigm:VisualParadigmforUML(VP-UML)是一款UML建模和CASE工具,產品具有建模版、標準版等功能。
OmniGraffle:OmniGraffle是由TheOmniGroup制作的一款繪圖軟件,其只能于運行在MacOSX和iPad平臺之上。OmniGraffle可以用來繪制圖表,流程圖,組織結構圖以及插圖,也可以用來組織頭腦中思考的信息,組織頭腦風暴的結果,繪制心智圖,作為樣式管理器,或設計網頁或PDF文檔的原型。
ProcessOn:支持繪制思維導圖、流程圖、UML、網絡拓撲圖、組織結構圖、原型圖、時間軸等等我自己平時用的最多的其實是Xmind,這個看大家自己習慣吧,目的就是理清楚思路。
4.項目管理協作工具
項目管理協作工具也是我們開發過程中經常會用到的。這方面的產品也有很多:Slack、Asana、Teambition、Worktile、Towe、禪道等這部分就不一一贅述了,很早之前轉載過一篇文章專門介紹過這個,大家感興趣直接看這篇文章項目管理協作工具即可。
5.在線開發輔助工具
?BASE64編解碼工具:https://base64.supfree.net/?MD5編碼工具:https://www.zxgj.cn/g/md5?AES/DES加解密:http://www.fly63.com/tool/cipher/?JWT解碼工具:http://jwt.calebb.net/?ASCII編解碼工具:https://www.matools.com/code-convert-ascii?Unicode編解碼工具:https://www.zxgj.cn/g/unicode?UTF-8編解碼工具:https://www.zxgj.cn/g/utf8?字符串編解碼工具:https://www.zxgj.cn/g/enstring?URL編解碼工具:http://tool.chinaz.com/tools/urlencode.aspx?jdfwkey=lbixz1?在線ASCII碼對照表:http://www.fly63.com/tool/ascii/?通用進制轉換工具:https://www.zxgj.cn/g/jinzhi?在線浮點數十進制轉換:http://www.binaryconvert.com/?RGB顏色轉換:https://www.zxgj.cn/g/yansezhi?時間戳轉換工具:https://www.zxgj.cn/g/unix?計量單位換算工具:http://www.fly63.com/tool/unitable/?在線JSON解析:http://www.json.cn/?在線JS代碼格式化工具:https://prettier.io/playground/?SQL壓縮/格式化工具:https://www.zxgj.cn/g/sqlformat?JSON和XML在線轉換:https://www.zxgj.cn/g/jsonxml?JSON/YAML在線轉換:http://www.fly63.com/tool/jsonyaml/
6.華為云平臺
目前很多公司都在用低代碼開發平臺開發應用了,擺脫了大量的編碼工作,讓程序員將精力投身到業務當中來。所謂低代碼開發,即無需編碼或只需少量代碼就可以快速生成應用程序。也就是說,企業的應用開發通過“拖拉拽”的方式即可完成。這其中比較典型的是華為云的DevCloud,推薦給大家。
·高效易用的低代碼aPaaS平臺-應用魔方AppCube:https://www.huaweicloud.com/product/appcube.html·集華為研發實踐、前沿研發理念、先進研發工具為一體的軟件開發平臺-軟件開發平臺DevCloud:https://www.huaweicloud.com/devcloud/
總結
其實開發過程中用過的各種各樣的工具還有很多,只是一時間無法全部都枚舉出來,后續想到其他的好用工具會持續補充到文章中,文檔中涉及到的工具找不到的可以評論區留言或者私信我,希望本文對大家有所幫助。
以上內容分享自華為云社區《【云駐共創】JAVA常用的開發工具有哪些?》,作者:再見孫悟空_。
參加Java培訓學不會,怎么辦
Java行業是目前的熱門行業之一,想要學習的人也多。Java培訓班一般學習時長在6個月左右,學習費用在2萬元左右,這還不包括食宿費用。所以如果參加的Java培訓卻還是沒學會什么,損失是很大的。
在Java培訓班里沒有學到知識主要有幾種原因。一是自己沒有認真學習導致沒學好,這種主要是自己的原因,如果你找的培訓機構可以免費重學那么小編建議你重新學一遍,不過這也是治標不治本,最好還是再找培訓機構的時候找管理比較嚴的Java培訓機構,這樣有人管著學習,學習效果會更好點。
二是因為培訓機構的課程內容過時或者項目實戰不多,導致自己沒學好或學完了找不到工作,這種主要是培訓機構的原因。這種如果你的培訓機構有協議可以退款那么你可以和培訓機構協商退款。當然這種情況如果你在挑培訓機構的時候去實地考察下,把要學的課程內容與現在Java行業的招聘需求對比下是可以避免的,我們在挑培訓機構的時候可以挑更好的。
最后很多培訓機構都和保險公司有合作可以為學員上保險,如果學員沒有就業,那么培訓機構會賠付學費。而你如果真沒在Java培訓班學到什么知識,那么就業肯定是比較困難的,一般也能滿足條件可以要求賠償學費。
綜上Java培訓班什么都沒學會的話有兩種辦法,一種是通過免費重學來重新學一遍Java知識;一種是如果有保險可以要求退款。不過雖然錢可以回來但是自己花費的時間是回不來了。所以小U還是建議大家在挑培訓機構的時候認真挑一下。
java這門技能如何自學
首先你需要每天給自己定學習時間,有效學習時長一定要夠,自控能力不行的話,你就把手機和電腦里的游戲卸載,不要分心,偶爾的房中也是可以的。
其次,你每天也要學習英語單詞,編程都是英語,你的數學統計學,邏輯思維也需要鍛煉。
再次,一定練習敲代碼,代碼量上去,你才會有編程思維,遇到問題就去百度,百度會有你bug的解決方法。
最后,你在嗶哩上找視頻,按著這個思路去學習,不過這個學習路線是給你的建議
需要掌握的技能深入理解Java面向對象思想掌握開發中常用基礎API熟練使用集合框架、IO流、異常能夠基于JDK8開發掌握最流行關系型數據MySQL常見操作熟練增刪改查數據處理掌握JavaJDBC、連接池操作掌握基本的JavaWeb基礎知識JSP/Servlet/jQuery等具備基本的B/S結構軟件開發能力可以動手開發一個B/S架構的Web項目掌握SSM框架技術掌握使用Maven進行模塊的開發熟悉基本的Linux命令以及Linux服務器的使用掌握高級緩存技術Redis的原理,并熟練使用分布式管理系統、Keepalived+Nginx主備、微服務架構技術、消息中間件技術、MySQL調優、高并發技術、性能優化、內存和GC等如何更好的學習Java
作為一名從業多年的老程序員,我使用Java的時間比較久,也出版過關于Java編程的書籍,所以我來說說我對學習Java語言的看法。
學習Java語言首先要注重對Java基礎概念的理解。總體上來說,Java語言屬于先難后易的語言,Java語言最難以理解的概念包括類、對象、屬性、方法,以及由這四個概念派生出來的特征,包括封裝、繼承、多態。對于這些概念的理解,最好的辦法是做實驗,通過實驗能為抽象概念建立起畫面感。
學習Java語言要有一個系統的過程。Java語言的學習路線包括基礎語法部分、模式開發、數據庫開發、Web開發、分布式開發、框架開發等,作為一名初學者要規劃好學習計劃,制定每一個階段的學習任務,這樣才能有的放矢。
學習Java要給自己定一個方向。Java語言的應用領域十分廣闊,包括Web領域、云計算領域、物聯網領域、大數據領域、區塊鏈領域、移動互聯網領域等等。不同領域需要不同的學習內容,所以在學習Java的時候要給自己一個明確的方向。
總的來說,Java語言自身的學習難度并不大,在學習的過程中要注重實驗的作用。另外,在學習到一定程度的時候最好找一個項目組參加實習,實習過程對程序員的提高有非常大的幫助。
我在頭條上陸續寫了關于學習Java的文章,關注我的頭條號,相信一定會讓你有所收獲。
如果有Java開發方面的問題,也可以咨詢我。
謝謝!