微信公衆號【程序員江湖】css
做者黃小斜,斜槓青年,某985碩士,阿里研發工程師,於2018 年秋招拿到 BAT 頭條、網易、滴滴等 8 個大廠 offerhtml
我的擅長領域 :自學編程、技術校園招聘、軟件工程考研(關注公衆號後回覆」資料「便可領取 3T 免費技術學習資源)前端
Java工程師學習指南mysql
初級篇程序員
最近有不少小夥伴來問我,Java小白如何入門,如何安排學習路線,每一步應該怎麼走比較好。本來我覺得以前的幾篇文章已經能夠解決你們的問題了,其實否則,由於我以前寫的文章都是站在Java後端的全局上進行思考和總結的,忽略了不少小白們的感覺,而不少朋友都須要更加基礎,更加詳細的學習路線。面試
因此,今天咱們從新開一個新的專題,分別按照四篇文章講述Java的學習路線(分別是入門篇,初級篇,中級篇,高級篇),筆者也打算趁此機會,回憶一下本身的Java學習歷程。今天咱們要講的是,小白同窗如何入門Java。ajax
先聲明一點,文章內容不會詳細到每一步怎麼操做,只會提供大體的思路和方向,給你們以啓發,若是真的要一步一步指導操做的話,那至少須要一本書的厚度啦。sql
本文所述的方法不必定適合全部人,若有錯誤敬請諒解。數據庫
01編程
Java Web項目指南
jav在上一篇文章中,咱們講到了入門Java的幾個步驟,先搭建好環境,而後熟悉基本語法,接着熟悉Java的一些核心技術,而且在代碼中進行實現。
若是你已經完成了這部份內容的學習,應該會感受本身對Java已經有必定了解了,能夠輕鬆地寫出一些Java代碼,好比實現多線程輸出數字,再如操做IO流等等。
固然,這些代碼一般只是一些demo,咱們在實際的項目中可能並不會這麼簡單地使用這些技術,咱們可能會同時使用集合類,多線程,以及操做數據庫的API。
因此,在今天的初級篇中,咱們就來談談怎麼作項目吧。
對於大部分Java新手來講,最適合他們入門的項目就是Java Web了。由於Java自然適合作Web應用,而且生態完善,更有不少開源的工具和框架去支撐這些應用,好比Spring,Hibernate,SpringMVC等等。
那麼,如何開始着手作一個Java Web項目呢。我的認爲最好的方式就是看視頻了。由於,看書的話,不少內容比較過期,而且通常不會提供源代碼。也有一些大佬喜歡推薦開源的項目(在GitHub上面的項目),可是對於小白來講,若是沒有很完整的文檔去指導他們,那也是毫無心義的。
曾幾什麼時候,Java Web的項目還在使用JSP + Servlet進行開發,後來出現了Struts2,再後來,出現了咱們如今也一直在用的SpringMVC,說實話,不論使用哪一種開發框架,你都須要先花一些時間去學習相關的技術,不然你會發現,即便是看視頻,你也不知道里面在講什麼。
要想作好一個JavaWeb項目,你不只須要一個好的項目課程,還須要足夠的知識儲備,下面就讓咱們來理一理這些內容把。
Java基礎部分的內容我們上次說過了,這裏就再也不重複啦~下面咱們分別來講說其餘幾方面的知識儲備把
02
前端知識
推薦資源:在w3cschool學習html,css和js,支持在線測試代碼。
既然是作Web,就不免要涉及到前端技術,不過,如今先後端分離已是一種趨勢,因此,若是你對前端不感興趣,也不必花太多時間去學習。
對於大部分同窗來講,你最好要了解html的基本標籤和格式,本身可以寫一些簡單頁面,CSS的話,也能夠稍微接觸一些。相對於前面兩個服務於樣式的技術,咱們卻是更應該去學習一下JavaScript,瞭解它的一些基本語法,以及ajax的使用,由於在先後端交互時,ajax是很是重要的。
因此,作一個Java Web項目,你不須要花太多時間在寫前端頁面上,若是有源代碼能夠直接使用,固然,對於一些須要修改的前端頁面,你得怎麼去作修改它,由於有時候你須要使用JSP,JSP既包括前端代碼也包括Java代碼,若是你徹底看不懂前端代碼的話,那就很尷尬了。
03
Java Web經常使用技術
JavaWeb的技術棧其實比較龐大,因此咱們不要求面面俱到,只是但願你可以熟悉一下項目中可能用到的技術。下面列舉一些常見的技術,你們最好要了解一下。
1 JSP和Servlet
推薦資源:《JavaWeb入門到精通》,慕課網、極客學院等網站上的JavaWeb基礎課程
這是Java Web開發最原始的形態,如今不多直接使用了,可是後來的各類框架其實也是創建在servlet之上來作的。大家須要瞭解這兩個技術分別是用來幹什麼的,最好能寫一些demo來實踐。
對於JSP,有時候你可能還要學習jstl等標籤語言,由於這些標籤可讓你更方便地往JSP中插入Java代碼。
2 Spring和SpringMVC
推薦資源:《Spring實戰》,慕課網、極客學院等網站上的SpringMVC基礎課程。
事實上,除了上述資源以外,你也能夠直接到官網上查看快速開始文檔。
Struts2早已被時代拋棄,Spring則是當今的霸主,你須要瞭解Spring如何使用,以及SpringMVC如何使用,而且學會在項目中使用它。
因爲SpringBoot最近很火,而且搭建方式比SpringMVC更簡單,你也能夠先學習SpringBoot,以便更快速地搭建起你的第一個Java Web項目。
3 MySQL
推薦資源:《Sql必知必會》,Runoob上的MySQL基礎教程,慕課網、極客學院等網站上的視頻課程
一個JavaWeb應用必定要有數據啊,因此咱們須要用到數據庫,其實搭一個mysql數據庫是很是簡單的,可是對於初學者來講最麻煩的就是寫sql了,因此,先學會建表,熟悉sql,對你之後作項目也是大有裨益的。
4 Hibernate和Mybatis
推薦資源:Runoob上的Hibernate和Mybatis基礎教程,慕課網、極客學院等網站上的視頻課程
當你學會了使用sql去查詢數據,可能還不足以讓你在項目中很方便地處理數據,由於咱們還須要一個步驟,就是把數據庫的數據轉化成Java裏的對象。orm框架就是爲了解決這一問題而出現的,它可讓一張表和Java類一一對應,讓數據查詢變得很是方便。Hibernate和Mybatis都是orm框架,只不過如今mybatis愈來愈火了。
因此,你須要瞭解這一技術,由於它會普遍地運用到大部分Java Web項目中。
5 Maven
推薦資源:《maven實戰》,易百教程裏的maven教程,慕課網、極客學院等網站上的視頻課程
剛纔我們已經說過了Spring,orm框架,以及MySQL等方面的技術了。實際上,一個簡單的Java Web項目也只須要這些東西了。
可是,有一個問題,就是:一個項目裏用到這麼多技術,所須要的jar包也會不少,咱們如何管理這些jar包呢。若是直接導入所需jar包,那當jar包更新或者須要替換時,每次都要手動操做,很是麻煩。另外,當jar包不少時,項目打包後的war格式文件也會很大,不利於傳輸。
爲了解決上述問題,maven應運而生了。maven經過pom.xml文件來指定所需的jar包,而且自帶了不少構建相關的功能,好比編譯,打包,運行單元測試等等,由於它自己就是一個構建工具。
固然,新手可能還難以理解這些概念,你必需要知道的是,大部分Java Web項目須要用maven來管理,你須要學會maven的基本用法,最基本的用法就是:學會修改pom.xml文件。
6 Tomcat
推薦資源:慕課網、極客學院等網站上的視頻課程。
對於小白來講,Tomcat相關的技術是很是複雜的,畢竟它是一個應用服務器啊,事實上這個時候,你只須要學會如何安裝Tomcat便可。畢竟,它在項目中的做用就是提供一個運行環境而已。
正常來講,你只要下載解壓Tomcat的壓縮包便可。因爲如今的IDE都支持集成Tomcat,因此通常狀況下你均可以在IDE中配置好你的Tomcat路徑,而後設置好你的項目路徑,IDE會自動把你的工程代碼部署到Tomcat服務器上。
若是你使用想跳過IDE直接部署工程到Tomcat上,也能夠直接編譯工程而且打包獲得war格式的文件(這個步驟可使用maven來完成),而後拷貝war文件到Tomcat下的特定目錄便可。
上述兩種部署方式的詳細步驟請到搜索引擎尋找答案。
7 Git和GitHub
推薦資源:廖雪峯的Git教程,GitHub官網,慕課網、極客學院等網站上的視頻課程。
既然要作項目,爲何不把它發佈在GitHub上。當你熟悉了Git指令以後,你能夠很方便地發佈你項目中的每一次更新,而且同步到GitHub上,這樣既可讓你更好地管理項目版本,又可讓你GitHub更加活躍,爲你將來的面試加分。
因此,趕忙學好Git指令,而後開啓你的項目之旅吧。
04
其餘經常使用組件
除了上面幾種必備的技術以外,有時候咱們在項目中還會用到其餘東西,在這裏咱們把它們叫作組件。這裏只作簡單的介紹,至於具體怎麼使用,在網上均可以很容易地找到相關文章。
1 日誌系統
當項目代碼比較多的時候,容易發生錯誤,日誌能夠很好地記錄代碼運行時的錯誤,經常使用的日誌系統有log4j,logging等等,另外你還須要瞭解一下slf4j。
2 單元測試
日誌系統能夠記錄代碼問題,單元測試則是爲了不代碼出錯,經常使用的單元測試組件主要是JUnit,建議你找個文檔看一看,而後下載下來玩一下。
3 JSON
JSON逐漸成爲先後端數據交互的標準格式,爲了在項目中使用JSON的API,你也須要導入它的jar包,通常咱們都會使用阿里提供的fastjson,趕快下載來玩一玩吧。
固然,經常使用的Java Web組件還有不少,好比HTTPClient,再好比一些加密工具,一些壓縮工具等等,這裏就再也不一一列舉了。
05
推薦項目課程
如今網上的項目課程那麼多,哪一款更適合你呢?
其實我看過的視頻課程也不是不少,早先在慕課網和極客學院看過一些項目課程,以爲比較通常,對新手來講不太友好。
個人一些同窗看過一些培訓機構的課程,專業講師錄的項目課程可能會稍微好一點。在我公衆號後臺回覆「Java」能夠領取某機構的視頻課程,不過我不是打廣告的,這個機構也沒有給我錢啦。
固然,我最推薦的仍是牛客網的視頻課程,分別是Java中級項目課和Java高級項目課。主要有幾點緣由吧:
1 葉神講課,比較瞭解同窗們的狀況,並且技術功底擺在那裏沒的說。
2 所作的項目比較接地氣,用的技術棧也比較新,比較全。
3 我本身全程跟着牛客網的項目課作了一遍,感受確實有收穫,並且每一個章節的安排也比較合理。
4 配套有PPT,項目代碼以及部分安裝包,可讓你省去不少繁瑣的環節。
看來我真是牛客網的真愛粉,竟然幫牛客網免費推廣~
固然,你也能夠本身去找一些你感興趣的項目課程,後續我也會收集更多的視頻課程來分享給你們。
PS:若是找不到我說的這些資源,也能夠微信私我。老規矩,公衆號後臺回覆「少俠」能夠勾搭做者。
06
總結
今天的內容就到這裏了,與其說是初級篇,反而更像是「項目篇」呢。由於學完基礎內容以後,作項目是最好的複習和實踐方式了。因此這篇文章圍繞着作項目來展開,也就不足爲奇了。
今天咱們主要講的是,作好一個JavaWeb項目,須要哪些知識儲備,須要瞭解哪些技術,而且我也推薦一些比較精品的視頻課程。
後面我還會寫一篇文章,專門講一講怎麼作項目,會更加詳細,更加側重怎麼去作,敬請期待吧。
總結如下今天說的幾個要點吧:
1 Java基礎知識儲備
2 前端知識儲備
3 瞭解和使用JavaWeb經常使用技術
4 JavaWeb經常使用組件介紹
5 視頻課程推薦
俗話說的好,磨刀不誤砍柴工,相信你看了本文以後,能夠更好地作好知識儲備,而後開始Java Web的項目實踐,但願你可以順利地完成你的第一個項目。
筆者在今年秋招中成功拿到BAT頭條網易等大廠的研發offer,期間總結了不少經驗和技巧,我把它們寫成文字,作成專題,發表在公衆號上,但願讓更多有須要的朋友看到。