{eval=Array;=+count(Array);}
不扯那些虛的,要來(lái)就來(lái)實(shí)質(zhì)性的干貨。
問(wèn)問(wèn)自己是抱著什么目的要學(xué)習(xí)Java,沒有目標(biāo)的學(xué)習(xí)是效率極低的,并且容易半途而廢;
了解Java可以做什么,Java可以從事的崗位以及軟件行業(yè)的發(fā)展情況;
自己是否對(duì)Java方向感興趣;
學(xué)習(xí)準(zhǔn)備
推薦看視頻入門,可以通過(guò)某寶以及某魚購(gòu)買相關(guān)的視頻,別挑三揀四,選中一個(gè)視頻看完再說(shuō),對(duì)于初學(xué)者,無(wú)論選哪一個(gè)都是值得你學(xué)習(xí)的??梢赃x擇傳智、黑馬、尚學(xué)堂等教學(xué)視頻,買一個(gè)系列的即可;
有人說(shuō)編輯器等IDE環(huán)境不適合看視頻,浪費(fèi)時(shí)間,但是初學(xué)者在學(xué)習(xí)第一個(gè)編程IDE時(shí),推薦看視頻或者通過(guò)搜索引擎了解工具的使用,看書其實(shí)在剛開始可能更浪費(fèi)時(shí)間;
看完基礎(chǔ)視頻對(duì)知識(shí)有個(gè)大概的了解,這時(shí)候看書就不會(huì)一頭霧水,此時(shí)可以通過(guò)看書來(lái)深入學(xué)習(xí),之后的學(xué)習(xí)可以自己選擇看書還是看視頻,最好的方法是花時(shí)間既看視頻也看書;
學(xué)著學(xué)著忘掉前面的別總想著回頭記住,先往后學(xué),有些基礎(chǔ)知識(shí)暫時(shí)用不上,當(dāng)你學(xué)到應(yīng)用的知識(shí)時(shí)自然會(huì)慢慢理解;
書籍推薦
入門書籍:《Head First Java》、《Java 核心技術(shù)》
進(jìn)階書籍:《Java編程思想》
學(xué)習(xí)完Java基礎(chǔ),接著適合學(xué)習(xí)Java Web,這個(gè)推薦看視頻,學(xué)習(xí)數(shù)據(jù)庫(kù)和JDBC基礎(chǔ)知識(shí)以及基本的前端知識(shí),然后學(xué)習(xí)SSM框架,學(xué)習(xí)路線為:
Mysql -> JDBC -> HTML、CSS、JavaScript、JSP -> Spring -> SpringMVC -> Mybatis -> SSM整合 -> SSM項(xiàng)目實(shí)戰(zhàn)
推薦兩本書:
《深入分析 java web 技術(shù)內(nèi)幕》
《架構(gòu)探險(xiǎn)-從零開始寫java web框架》:講解 ioc、aop 通俗易懂,實(shí)現(xiàn) ioc、aop
實(shí)戰(zhàn)之后返回深入學(xué)習(xí) Java 相關(guān)知識(shí),自頂向下學(xué)習(xí),通過(guò)大概學(xué)習(xí)基礎(chǔ),實(shí)戰(zhàn)之后返回深入學(xué)習(xí)基礎(chǔ)知識(shí),由廣至深。
推薦書籍:
《Java并發(fā)編程的藝術(shù)》
《Head First 設(shè)計(jì)模式》
《深入理解 Java 虛擬機(jī)》
要想超越別人,不僅僅要掌握實(shí)戰(zhàn)技能,更重要的是基礎(chǔ)扎實(shí)
《算法》第4版
《圖解TCP/IP》
《圖解HTTP》
《操作系統(tǒng)概念》(恐龍書)
這么多已經(jīng)夠你學(xué)習(xí)了,主要是行動(dòng)起來(lái),還有更深入的,比如數(shù)據(jù)庫(kù)方面以及Java相關(guān)的方面,等你學(xué)完以上知識(shí)相信你自己已經(jīng)知道需要學(xué)習(xí)什么了,不要一次被這么多內(nèi)容嚇到,只要靜下心來(lái),下一個(gè)大神就是你。
我是17年某工科非計(jì)算機(jī)本科畢業(yè)的,坐標(biāo)某二線城市,大四的時(shí)候找了某個(gè)中型企業(yè)做了一年的打雜工作。平時(shí)的工作就是負(fù)責(zé)到流水線上檢驗(yàn)產(chǎn)品之類的,在辦公室寫寫文檔。薪資不高,但福利還算不錯(cuò),五險(xiǎn)一金交的基數(shù)是同城市最高的。
曾經(jīng)有在五個(gè)月的時(shí)間里面,我一直都處在一個(gè)很焦慮的狀態(tài),所謂的焦慮就是錢少,上升空間也沒有。每天拿著一點(diǎn)微薄的薪水勉強(qiáng)度日。上班忙于上班,下班了便躺在床上什么都不做,玩玩手機(jī)上上網(wǎng)。我一直在思考,這輩子是否會(huì)這么平庸的活下去,以我目前的薪資這輩子也不可能在這個(gè)城市里買房,我又不想回老家。那里已經(jīng)沒有我的圈子了,所以我必須思考著其它出路。那時(shí)候的我每天都很焦慮,活了這么久,卻什么也沒干,什么事情都是在拖延。我想我以后的生活可以按照自己的想法而活。
俗話說(shuō),鵪鶉要吃紅櫻桃,光想是沒有用的。每一個(gè)疲憊生活里的英雄夢(mèng)想都是從一個(gè)小的開始。
大概在三月份的時(shí)候,我向公司遞交了辭職申請(qǐng)。主管和老板一直在挽留我,花了將近一個(gè)月的時(shí)間在給我做思想工作,給我描繪了大好的藍(lán)圖。不過(guò)我還是遵從了內(nèi)心的指示。
很早就想做軟件了,不僅僅是現(xiàn)在軟件行業(yè)一直保持著快速健康發(fā)展的趨勢(shì),還有收入平均的增速。像我們這樣非科班出身,如果想走軟件這條路,大多數(shù)的方法就是先進(jìn)入一家培訓(xùn)公司學(xué)習(xí)。我有好多同學(xué)在當(dāng)初畢業(yè)的時(shí)候或者在大四的時(shí)候,都是這么選擇的。從事的方向也很多,什么嵌入式,安卓、Ios、游戲什么的。不過(guò)據(jù)我所知,有的只是在學(xué)習(xí)課程結(jié)束后找了一個(gè)測(cè)試的工作。我也上網(wǎng)查了很多培訓(xùn)機(jī)構(gòu),琳瑯滿目,不過(guò)價(jià)格來(lái)說(shuō)都是一個(gè)貴字。有些風(fēng)評(píng)也不好,未必適合我??傊?,最后根據(jù)自己的興趣,決定從Java入手。因?yàn)閸徫欢喟?!同志們?/p>
下面就是我自己學(xué)習(xí)的一些心得和過(guò)程。
先確定學(xué)習(xí)的方向,因?yàn)槲蚁霃氖耊eb開發(fā),也就是說(shuō)。我需要知道這門體系的一個(gè)學(xué)習(xí)路線圖
20180216103838768.jpgJavaSE
關(guān)于這方面的知識(shí),網(wǎng)上有很多資源。一些培訓(xùn)機(jī)構(gòu)的視頻也可以下載下來(lái)看。我在這方面選擇的是看書學(xué)習(xí)。先找了一本Java2實(shí)用教程(第五版),這里我不推薦一上來(lái)就看什么Java編程思想,核心技術(shù)這樣的書。對(duì)我這種新人來(lái)說(shuō),里面的內(nèi)容太苦難了。先把語(yǔ)法看懂,寫一寫書上的小例子,知道Java是怎么一回事就行。
等回過(guò)頭來(lái),再去翻翻Java編程思想會(huì)容易理解很多。當(dāng)然,余下的時(shí)間我推薦你最好看看計(jì)算機(jī)內(nèi)部底層是怎么一回事,不需要精通,只需明白是怎么回事就可以了。
學(xué)SE的過(guò)程中,可以有那些不懂的地方,可以看看那一部分視頻。結(jié)合起來(lái)才能有效率。GUI可以不學(xué),多線程也可以先了解。因?yàn)槎嗑€程不是你看書一時(shí)半會(huì)就能明白的,需要大量的實(shí)戰(zhàn)。
數(shù)據(jù)庫(kù)
關(guān)于數(shù)據(jù)庫(kù)方面的知識(shí)也是必學(xué)的,這里我推薦某傳劉道成的 MySQL 視頻教程。一定要結(jié)合JavaSE寫一些JDBC的操作。學(xué)習(xí)一下事務(wù)的特性,因?yàn)檫@個(gè)面試會(huì)問(wèn)。我在好幾家面試面試官都會(huì)問(wèn)你JDBC驅(qū)動(dòng)加載過(guò)程,事務(wù)是什么,有什么特性。
以上兩方面的內(nèi)容,假設(shè)在你每天學(xué)8小時(shí)的情況下,一個(gè)月就可以學(xué)完了。我覺得你應(yīng)該是可以做一些小的軟件了。比如聊天室(涉及Socket內(nèi)容)、飛機(jī)大戰(zhàn)等等。
JavaWeb
來(lái)說(shuō)說(shuō)這方面的知識(shí)怎么學(xué),HTML、CSS、Javascript、Jquerry、Ajax肯定是必不可少的。企業(yè)開發(fā)必須要懂這些,沒有捷徑。
其次是Jsp、Servlet。Jsp其實(shí)底層就是Servlet,所以你一定要把Servlet學(xué)好。API你一定要會(huì)用。到時(shí)候面試問(wèn)你Servlet的知識(shí)你一定要能答得上來(lái)。這方面的知識(shí)只能找視頻學(xué)習(xí),對(duì)于不是科班出身的人不推薦看書。我一開始也不知道怎么開始,在網(wǎng)上找了很多方法,遇到不懂的就百度查資料。一定要嘗試,多寫。俗話說(shuō)萬(wàn)事開頭難。
接下來(lái)就是框架了,現(xiàn)在企業(yè)流行SSM框架。所以我只學(xué)了這三個(gè)、Spring、SpringMVC、Mybatis。學(xué)完框架之后我想你可以開始試著做一個(gè)Web項(xiàng)目了。這部分網(wǎng)上的資源也很多??梢愿?。遇到不明白的或者代碼有報(bào)錯(cuò)可以求助網(wǎng)友,畢竟網(wǎng)友是很強(qiáng)大的。
此時(shí),我想你已經(jīng)具備了可以去實(shí)習(xí)了,僅僅是實(shí)習(xí),因?yàn)楝F(xiàn)在的你才剛剛開始,還有更多的技術(shù)需要你去不斷的學(xué)習(xí)。我就是因?yàn)橛X得人生是不能停止學(xué)習(xí)的,才毅然辭職,選擇從事軟件的行業(yè)。
心路歷程
整個(gè)學(xué)習(xí)的過(guò)程很痛苦,那種痛苦雖然比不上考研。我在圖書館,通宵熬夜沒命的看書。每天回到出租屋里就會(huì)覺得空虛,迷茫。第二天起來(lái)又去圖書館??吹街皬氖逻@方面的同學(xué)一個(gè)個(gè)都加薪了,心里面不是滋味。歷時(shí)三個(gè)多月都是這種狀態(tài)。找工作的時(shí)候更加如此,不斷的撞南墻?;丶也槊嬖囉龅讲粫?huì)的問(wèn)題,其實(shí)選擇公司面試的題目大部分都是差不多的。只要你虛心一點(diǎn),和面試官多聊聊,我相信你會(huì)找到第一份軟件開發(fā)的工作。
找工作部分
首先是簡(jiǎn)歷,因?yàn)槲覜]有這方面的經(jīng)驗(yàn)和經(jīng)歷。簡(jiǎn)歷一定要寫的真誠(chéng),說(shuō)明自己的清空。寫明自己的教育背景,如果你的外語(yǔ)能力比較強(qiáng),這也是比較加分的。然后就是Java的一些技能,千萬(wàn)不要寫精通什么什么,被面試官問(wèn)到深一點(diǎn)的你答不上來(lái),那么印象分會(huì)大打折扣。如果你在學(xué)校有獲得什么證書最好也寫上。多投投一些要求低的。面試多了,你也就大概知道什么套路了。找工作的一個(gè)月時(shí)間里,我收到了四個(gè)offer,雖然不多。但是我很開心。最終選擇了一家薪資,發(fā)展空間,平臺(tái)也好的一家公司。對(duì)方很看重我的毅力,給了我4.5K的工資。雖然不多,但這才是開始!目前我已經(jīng)在這家公司入職了,氛圍很好,老人愿意帶我,真的很幸運(yùn)!
屏幕前的你,一定要相信自己,可以完成你想象中的事情!
說(shuō)道JAVA,本人也是有很深的體悟和感慨,本人也是從程序員開始,然后一直到現(xiàn)在從事產(chǎn)品工作,經(jīng)歷了挺多,也獲得了挺多,好了不跑題了,在這里分享一下一些個(gè)人的體悟.
JAVA其實(shí)說(shuō)白了就是一門開發(fā)語(yǔ)言,但是實(shí)際在社會(huì)上,利用JAVA這個(gè)開發(fā)的語(yǔ)言衍生出了非常多的工種和內(nèi)容,比如Android的開發(fā),JAVA后臺(tái)的開發(fā)(Struts2,Spring,Hibernate,MyBatis等等框架)
假若你想想要走前端Android工程師路線,個(gè)人建議的學(xué)習(xí)路徑:
JAVA語(yǔ)言學(xué)習(xí)(開發(fā)環(huán)境搭建,基本語(yǔ)法,面向?qū)ο?集合框架,泛型,等等等等,可購(gòu)買書籍或網(wǎng)上下載視頻) --> 數(shù)據(jù)庫(kù)基礎(chǔ)學(xué)習(xí)(可以專門學(xué)習(xí)Mysql等知識(shí),網(wǎng)上有教程視頻免費(fèi)下載) --> Android基礎(chǔ)學(xué)習(xí)(Android開發(fā)環(huán)境搭建,空間的學(xué)習(xí),xml-Layout學(xué)習(xí)) --> 實(shí)戰(zhàn)學(xué)習(xí)(自己摸索開發(fā)一款軟件).
JAVA-WEB開發(fā)工程師路線,個(gè)人建議學(xué)習(xí)路徑:
JAVA語(yǔ)言學(xué)習(xí)-->數(shù)據(jù)庫(kù)學(xué)習(xí)(可重點(diǎn)學(xué)習(xí)Oracle)-->JAVAWeb基礎(chǔ)學(xué)習(xí)(JDBC,HTML,CSS,TOmcat服務(wù)器,Ajax等等)-->JAVAWeb高級(jí)學(xué)習(xí)(Struts2,Spring,SpringMVC,SCM,Log4j等等框架內(nèi)容)-->JAVAEE實(shí)戰(zhàn)做項(xiàng)目
其實(shí)就個(gè)人的建議,假若在時(shí)間的允許下,想要學(xué)習(xí)好JAVA并可以快速入門形成自有的競(jìng)爭(zhēng)力,建議還是去一些培訓(xùn)機(jī)構(gòu)學(xué)習(xí). 相對(duì)與個(gè)人獨(dú)自學(xué)習(xí),培訓(xùn)機(jī)構(gòu)有以下幾點(diǎn)優(yōu)勢(shì)的:
當(dāng)然假若去培訓(xùn)機(jī)構(gòu),也會(huì)有弊端:
當(dāng)然,相對(duì)于培訓(xùn)機(jī)構(gòu)的弊端,個(gè)人認(rèn)為他們優(yōu)勢(shì)還是比較大的,其實(shí)就本人經(jīng)歷來(lái)說(shuō),從畢業(yè)到現(xiàn)今,工作的也有6~7年的時(shí)光,其實(shí)在這些時(shí)間里,為了獲得技能,也是花費(fèi)了很多時(shí)間與成本在培訓(xùn)和學(xué)習(xí)上,如軟件培訓(xùn),產(chǎn)品經(jīng)理學(xué)習(xí),高級(jí)職稱,高級(jí)管理師學(xué)習(xí)等等... 當(dāng)然就個(gè)人而言,付出總會(huì)有回報(bào),所以依據(jù)自己曾經(jīng)走過(guò)的道路,在這里給出大家的小建議。
本人現(xiàn)今從事互聯(lián)網(wǎng)產(chǎn)品工作,高級(jí)項(xiàng)目管理師,PMP國(guó)際管理師,歡迎有想在互聯(lián)網(wǎng)或者在科技技術(shù)領(lǐng)域有所經(jīng)驗(yàn)的人兒們相互關(guān)注交流學(xué)習(xí).
我使用Java的時(shí)間比較久,也出版過(guò)關(guān)于Java的編程書籍,所以對(duì)Java語(yǔ)言非常熟悉。
Java語(yǔ)言是目前使用最為廣泛的編程語(yǔ)言之一,對(duì)于沒有基礎(chǔ)的初學(xué)者來(lái)說(shuō),學(xué)習(xí)Java還是有一定難度的。為了高效率學(xué)習(xí)Java我給出以下幾點(diǎn)建議:
第一,學(xué)習(xí)Java的重點(diǎn)是對(duì)核心概念的理解。這里的核心概念有類、對(duì)象、屬性、方法、封裝、繼承、多態(tài),以及由這些核心概念派生出的一系列概念,比如方法重載、方法重寫、虛方法、抽象方法、靜態(tài)方法、接口等概念。
第二,掌握J(rèn)ava面向?qū)ο蟮木幊踢^(guò)程和思想。Java的編程過(guò)程分為三個(gè)步驟:類的設(shè)計(jì)、對(duì)象的創(chuàng)建、方法的調(diào)用。核心思想是以對(duì)象為基礎(chǔ)來(lái)構(gòu)建功能間的交互,類則是對(duì)象的抽象。
第三,理解容器(JVM)的作用。Java的容器功能十分強(qiáng)大,基本上實(shí)現(xiàn)了所有系統(tǒng)級(jí)的問(wèn)題,比如垃圾回收、線程管理、對(duì)象生命周期管理、事件管理、本地化管理等等功能。了解Java的重點(diǎn)是了解容器的機(jī)制,容器在java中無(wú)處不在。
第四,多做實(shí)驗(yàn)。無(wú)論學(xué)習(xí)什么語(yǔ)言,多做實(shí)驗(yàn)一定是對(duì)的,尤其對(duì)一些比較抽象的概念,通過(guò)實(shí)驗(yàn)?zāi)芙嬅娓?,同時(shí)能通過(guò)實(shí)驗(yàn)驗(yàn)證自己的想法。
第五,多交流。學(xué)習(xí)編程語(yǔ)言要多與別人交流,尤其是資深的Java程序員。如果身邊沒有這樣的資源,也可以通過(guò)看一些視頻資料來(lái)輔助學(xué)習(xí)。
第六,做實(shí)際的項(xiàng)目(實(shí)習(xí))。當(dāng)學(xué)習(xí)完基本的語(yǔ)法,做了一定的實(shí)驗(yàn)之后,就應(yīng)該通過(guò)實(shí)際項(xiàng)目來(lái)提升自己的編程能力了,通過(guò)實(shí)際項(xiàng)目獲得的經(jīng)驗(yàn)是十分寶貴的。
我在頭條上寫了關(guān)于Java學(xué)習(xí)的系列文章,想學(xué)習(xí)Java的朋友可以關(guān)注我的頭條號(hào),相信一定會(huì)對(duì)你有所幫助。
謝謝!
最快的方法就是語(yǔ)言遷移。
假如你已經(jīng)知道任何其他編程語(yǔ)言,或者面向?qū)ο蟮闹R(shí)?
如果是的話,你的學(xué)習(xí)路徑可以更順暢。轉(zhuǎn)移到Java將非常容易和快速。
假如真實(shí)純小白。個(gè)人建議先從基礎(chǔ)開始吧。
從基礎(chǔ)的概念開始。
比如,你先分清java和javascript吧。
入手的媒介因人而異,可以是書籍或者視頻或者老師。名師出高徒,但是不是每個(gè)老師都是24小時(shí)的盯著你?;A(chǔ)的概念弄清楚:
Java基礎(chǔ)知識(shí),注釋,修飾符,變量,運(yùn)算符,條件語(yǔ)句,循環(huán)語(yǔ)句,字符串,數(shù)組,文件處理,方法和異常處理。 Java面向?qū)ο缶幊滔到y(tǒng)基礎(chǔ),繼承,多態(tài),抽象和封裝。了解包,對(duì)象,類和實(shí)例方法、數(shù)據(jù)結(jié)構(gòu),線程等等基礎(chǔ)知識(shí)。這些概念本身有很多細(xì)節(jié)和實(shí)踐;
無(wú)論何種語(yǔ)言入門,都會(huì)需要很多時(shí)間。 當(dāng)然,你可以非??斓貙W(xué)習(xí)一些語(yǔ)法,但是你的代碼很可能會(huì)在頭幾個(gè)月變得糟糕,而且會(huì)慢慢地變得更好。 基本上沒有辦法解決這個(gè)問(wèn)題,直到人類能發(fā)明AI代碼機(jī)器人。
計(jì)算機(jī)算法里有一個(gè)分而治之。
中國(guó)式的教育,無(wú)論哪種方式,都會(huì)從源頭開始,全面學(xué)習(xí),從高考到上大學(xué)。
學(xué)一種語(yǔ)言,個(gè)人覺得更適合??频乃悸?,即你先分而治之。
java學(xué)完基礎(chǔ)之后,你要做網(wǎng)絡(luò)編程, 就學(xué)網(wǎng)絡(luò)的api,要做底層驅(qū)動(dòng)就學(xué)驅(qū)動(dòng)的api,分而治之,沒必要都學(xué)習(xí)。
整理了需要掌握的,自己比較一下:
我是小鳥,多年深蹲于互聯(lián)網(wǎng)大坑里,歡迎關(guān)注來(lái)撩。
結(jié)合本人艱難的自學(xué) Java 之路,談?wù)勛约旱膸c(diǎn)建議:
1.不要相信知乎上推薦的自學(xué)書籍 《Thinking In Java》,我甚至很是懷疑這些張口閉口推薦這本書的家伙自己有沒有認(rèn)真看完這本書,說(shuō)實(shí)話,完全不適合自學(xué)的新手學(xué)習(xí),反正一開始我是看的云里霧里的。
2.學(xué)習(xí)基礎(chǔ)知識(shí)時(shí)不要著急,要多做練習(xí)多敲代碼,熟悉 Java 常用的 API。一開始可以跟著視頻教程學(xué)習(xí),后面慢慢的就可以自己跟著教材學(xué)習(xí)(我是跟著一個(gè)個(gè)人站長(zhǎng)的 Java 教程學(xué)習(xí)的),這個(gè)時(shí)候?qū)滩牡倪x擇千萬(wàn)不要多,隨便挑一本跟著好好學(xué)就對(duì)了。一定要自己多敲代碼多做練習(xí),只有寫的多了,才會(huì)有感覺,說(shuō)實(shí)話,我最開始學(xué)習(xí)的時(shí)候起個(gè)類名、變量名、方法名都要糾結(jié)半天。
3.學(xué)完基礎(chǔ)知識(shí)后,嘗試自己寫個(gè)小項(xiàng)目。對(duì)于無(wú)人指導(dǎo)的自學(xué)者而言,這一點(diǎn)是最難的,因?yàn)橐婚_始肯定時(shí)無(wú)從下手的,不知道怎樣開始一個(gè)項(xiàng)目,甚至可能自己想要實(shí)現(xiàn)什么功能做個(gè)什么樣的項(xiàng)目都是模模糊糊的。這時(shí)可以在網(wǎng)上找一個(gè)簡(jiǎn)單的項(xiàng)目跟著學(xué)習(xí),先弄懂別人的項(xiàng)目,再仿造寫一個(gè)類似的項(xiàng)目就 OK 了,在這個(gè)過(guò)程中你會(huì)遇到很多的問(wèn)題,這時(shí)你的提升會(huì)非???,也可以迅速的增強(qiáng)自信。比如,做一個(gè) web 項(xiàng)目,首先會(huì)指定需求,然后設(shè)計(jì)表,最后開始編碼工作……
當(dāng)然,我上面談的都是自學(xué) Java,如果覺得自己的執(zhí)行力和意志力不太夠的話,也可以報(bào)個(gè)被訓(xùn)班,可以幫你快速入門,不會(huì)像自學(xué)這樣痛苦,但就像大家說(shuō)的,IT 技術(shù)日新月異,工作之后也要不斷的學(xué)習(xí)充電,必須做好心理準(zhǔn)備。
我也是自學(xué)出來(lái)的,這里每個(gè)學(xué)習(xí)階段的視頻我都有,需要的話可以發(fā)私信我,放心我不會(huì)收取任何費(fèi)用的。
1.基礎(chǔ)階段的學(xué)習(xí)
在這個(gè)學(xué)習(xí)階段你應(yīng)該找一個(gè)好的基礎(chǔ)學(xué)習(xí)視頻,對(duì)著視頻認(rèn)真進(jìn)行學(xué)習(xí),每天自己要逼著自己學(xué)習(xí),大學(xué)很容易讓人頹廢。邊看還要變敲代碼,不要用ide用記事本有利于后期的代碼編寫習(xí)慣,還要做好筆記哦。
2.java web階段的學(xué)習(xí)
當(dāng)你學(xué)習(xí)了前面基礎(chǔ)階段后你肯定會(huì)困惑,天天打印幾個(gè)字有啥用,其實(shí)不然基礎(chǔ)階段就是為這個(gè)階段做準(zhǔn)備的,有了前面的基礎(chǔ)你可以輕松的學(xué)習(xí)這個(gè)階段的知識(shí):servlet,jsp,Tomcat,數(shù)據(jù)庫(kù)等。同樣這個(gè)階段也要做好筆記用于以后的回顧。
3.框架學(xué)習(xí)階段
上面兩個(gè)階段學(xué)習(xí)完后要想去參加工作是不行的,你需要學(xué)習(xí)一些公司流行的框架來(lái)提供開發(fā)效率和質(zhì)量,現(xiàn)在流行的框架有:spring,springmvc,mybatis,shiro等等,學(xué)習(xí)這些框架時(shí)你不需要了解透徹它,你只要知道怎么用怎么去搭建環(huán)境就可以了,等以后有了工作后你自然會(huì)理解它。
大體就是這幾個(gè)階段吧,希望能幫到你,還有在大學(xué)里一定要能控制住自己不能頹廢,兩天打魚,三天曬網(wǎng)。那樣是學(xué)不好東西的,加油吧少年!
先說(shuō)一個(gè)我親身的經(jīng)歷,我有一個(gè)同事是半路轉(zhuǎn)行做JAVA的,他也是在培訓(xùn)機(jī)構(gòu)學(xué)習(xí)之后才開始做JAVA編程。他現(xiàn)在可以說(shuō)是已經(jīng)達(dá)到了高級(jí)JAVA工程師的水平,無(wú)論是并發(fā)編程,分布式,設(shè)計(jì)模式,數(shù)據(jù)結(jié)構(gòu)都能很好的應(yīng)用,而他僅僅只用了2年的時(shí)間。要說(shuō)真正的原因,首先是興趣,其次是方法。
大多數(shù)人都會(huì)對(duì)自己擅長(zhǎng)的東西感興趣,而對(duì)無(wú)法勝任的事情感到厭煩,因此首先要通過(guò)練習(xí)的方式讓自己有成就感和自信,可以從簡(jiǎn)單的,有意思的示例,讓自己對(duì)編程感興趣。學(xué)習(xí)要循序漸進(jìn),不能冒進(jìn)。
無(wú)論學(xué)什么,打好基礎(chǔ)很重要。作為一名在培訓(xùn)機(jī)構(gòu)的學(xué)生,首先要認(rèn)真學(xué)習(xí)培訓(xùn)課程,培訓(xùn)課程基本上都包含JAVA語(yǔ)言的基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、算法、數(shù)據(jù)庫(kù)等理論知識(shí),這些知識(shí)是寫好程序的奠基石,即便它們不會(huì)被立即使用,它們也將成為你能夠在這一行中走的更遠(yuǎn)的奠基石??梢酝ㄟ^(guò)刷題的方式來(lái)檢驗(yàn)自己的學(xué)習(xí)進(jìn)度。
俗話說(shuō)實(shí)踐出真知,JAVA中的很多概念特別抽象,像類和對(duì)象,繼承和多態(tài),多線程等,只有在真實(shí)的運(yùn)行環(huán)境中才能夠真正的體會(huì)抽象的概念,才能夠真正的掌握其用法。因此,在學(xué)習(xí)理論的基礎(chǔ)上,多思考,多寫代碼示例。
大量的閱讀JDK、框架(spring、struts、hibernate等)、git上的項(xiàng)目源碼,可以說(shuō)是提高編碼水平的捷徑。
總之想要學(xué)好JAVA語(yǔ)言,就要理論結(jié)合實(shí)際,在多讀書學(xué)習(xí)理論的基礎(chǔ)上,完成一個(gè)又一個(gè)程序和項(xiàng)目,迭代自己的認(rèn)知和編碼水平。
關(guān)注@照亮職場(chǎng),每天收獲一點(diǎn)職場(chǎng)小知識(shí)。如果認(rèn)可我的觀點(diǎn),煩請(qǐng)點(diǎn)贊、轉(zhuǎn)發(fā)和評(píng)論。你的支持,是我最大的動(dòng)力!本人自學(xué)Java也有一年多時(shí)間了,期間斷斷續(xù)續(xù)的學(xué)了好幾次。以下說(shuō)說(shuō)自己學(xué)習(xí)Java的歷程。
大二暑假在家,天天玩游戲,感覺玩膩了,又因?yàn)轳R上大三了,想搞一下學(xué)習(xí),由于專業(yè)是計(jì)算機(jī)相關(guān)的,所以就想好好學(xué)一下編程,湊巧大二下學(xué)期開了Java課,但是沒怎么聽講,期末考試也是踩線過(guò)的,當(dāng)時(shí)不知道怎么想的,立馬就百度搜了下如何自學(xué)Java,一搜全是培訓(xùn)的廣告亂七八糟的。于是我就放棄百度了,轉(zhuǎn)而去看看有沒有Java自學(xué)群,QQ一搜果然有好多,隨便加了幾個(gè)群,詢問(wèn)一下群里的大佬如何學(xué)Java,經(jīng)過(guò)大佬們的建議,我給自己設(shè)定了幾個(gè)目標(biāo):
1. 跟著視頻學(xué),首先跟著老師敲,敲完有不明白的問(wèn)問(wèn)大佬或者百度。過(guò)程很枯燥,堅(jiān)持下去定會(huì)有收獲。(基礎(chǔ)視頻推薦畢向東老師的Java基礎(chǔ))
2. 學(xué)會(huì)做筆記,總結(jié)自己在最近學(xué)習(xí)中遇到的問(wèn)題和收獲。(有道云筆記或者為知筆記都是很好的工具,也可以寫成博客與他人一起討論)
3. 學(xué)完Java基礎(chǔ)后,一定要做幾個(gè)小項(xiàng)目,小游戲也好,小工具也行,總之要給自己一些激勵(lì)。
附上自己學(xué)完Java基礎(chǔ)之后做的一個(gè)小游戲
基礎(chǔ)階段學(xué)完之后,一般有兩個(gè)方向Android開發(fā)和JavaWeb開發(fā)。根據(jù)自己的興趣愛好選擇即可,如果有足夠的時(shí)間,兩個(gè)方向都可以嘗試一下,有比較才知道自己比較熱愛哪個(gè)方面嘛。個(gè)人比較推薦兩方面都了解了解。
最后,推薦一下書籍《Java核心技術(shù)卷一》,《Java核心技術(shù)卷二》,這兩本書可以說(shuō)是比較經(jīng)典的教材了,建議在學(xué)習(xí)過(guò)程中多看多敲多思考。如果學(xué)完Java基礎(chǔ)想學(xué)習(xí)Android開發(fā)則《第一行代碼》是一個(gè)不錯(cuò)的選擇哦。祝題主早日學(xué)會(huì)Java。
你是一名希望開始或者正在學(xué)習(xí)機(jī)器學(xué)習(xí)的Java程序員嗎?
利用機(jī)器學(xué)習(xí)編寫程序是最佳的學(xué)習(xí)方式。你可以從頭開始編寫算法,但是利用現(xiàn)有的開源庫(kù),你可以取得更大的進(jìn)步。
本文介紹了主要的平臺(tái)和開放源碼的機(jī)器學(xué)習(xí)庫(kù)。你可以使用這些機(jī)器學(xué)習(xí)庫(kù)。
環(huán)境
本節(jié)描述了用于機(jī)器學(xué)習(xí)的Java環(huán)境或工作域。它們提供了用于執(zhí)行機(jī)器學(xué)習(xí)任務(wù)的圖形用戶界面,還提供了用于開發(fā)自己應(yīng)用程序的Java API。
WEKA
懷卡托環(huán)境知識(shí)分析(Weka)( https:// www.cs.waikato.ac.nz/ml/weka/)是一個(gè)由新西蘭懷卡托大學(xué)開發(fā)的機(jī)器學(xué)習(xí)平臺(tái)。提供Java的圖形用戶接口,命令行接口和Java API接口。它可能是最流行的Java機(jī)器學(xué)習(xí)庫(kù),也是開始或練習(xí)機(jī)器學(xué)習(xí)的好地方。
KNIME
康斯坦茨信息挖掘(KNIME)(https://www.knime. com/)是德國(guó)康斯坦茨大學(xué)開發(fā)的一個(gè)分析和報(bào)告平臺(tái)。它的研發(fā)重點(diǎn)是藥物研究,但已擴(kuò)展到一般商業(yè)智能。它提供一個(gè)圖形用戶接口(基于Eclipse)和Java API。
快速挖掘
快速挖掘(https://rapidminer.com/)由德國(guó)多特蒙德應(yīng)用技術(shù)大學(xué)研發(fā)。它提供了一個(gè)GUI和一個(gè)Java API來(lái)開發(fā)自己的應(yīng)用程序。還提供了數(shù)據(jù)處理、可視化和建模的機(jī)器學(xué)習(xí)算法。
ELKI
ELKI是一個(gè)用于開發(fā)由索引結(jié)構(gòu)支持的KDD-應(yīng)用程序的環(huán)境(https://elki-project.github.io/),它是由德國(guó)慕尼黑的路德維希馬克西米利安大學(xué)用Java語(yǔ)言開發(fā)的一款數(shù)據(jù)挖掘工作平臺(tái)。它的重點(diǎn)是在關(guān)系型數(shù)據(jù)庫(kù)中處理數(shù)據(jù),例如異常值檢測(cè)和分類(基于距離函數(shù)方法)。它提供了一個(gè)迷你GUI、命令行接口和Java API。
庫(kù)
其實(shí)本文列出的每個(gè)項(xiàng)目都帶有Java API庫(kù)。不過(guò)在這一節(jié)中列出的這些項(xiàng)目?jī)H提供了一個(gè)Java API。從狹義上來(lái)說(shuō),它們是機(jī)器學(xué)習(xí)庫(kù)。
Java-ML
Java機(jī)器學(xué)習(xí)庫(kù)(Java-ML)(http://java-ml.sourceforge.net/)提供了在Java中實(shí)現(xiàn)的機(jī)器學(xué)習(xí)算法的集合。它為每一種算法提供了標(biāo)準(zhǔn)接口,沒有UI(用戶界面),也沒有引用相關(guān)的科學(xué)文獻(xiàn)來(lái)進(jìn)一步閱讀。它包括數(shù)據(jù)操作、群集、特性選擇和分類的方法。值得注意的是,截止本文成稿為止,它的最新一個(gè)版本是在2012年。
JSAT
Java統(tǒng)計(jì)分析工具(JSAT)(https://github.com /EdwardRaff/JSAT/tree/master)提供了一個(gè)純Java語(yǔ)言實(shí)現(xiàn)的標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)算法,用于解決中等規(guī)模的問(wèn)題。JSAT的作者稱他開發(fā)的這個(gè)庫(kù)部分是為了進(jìn)行自我學(xué)習(xí),部分是為了完成工作。盡管如此,算法的列表還是令人印象深刻的。它包括分類、回歸、合集、聚類和特征選擇方法。
Java大數(shù)據(jù)項(xiàng)目
本節(jié)列出了適合大數(shù)據(jù)的Java項(xiàng)目,例如機(jī)器集群。
Mahout (Hadoop)
Apache Mahout(https://mahout.apache.org/)提供了用于實(shí)現(xiàn)Apache Hadoop平臺(tái)(分布式映射化簡(jiǎn))的機(jī)器學(xué)習(xí)算法。該項(xiàng)目主要關(guān)注集群和分類算法,一個(gè)流行的應(yīng)用程序驅(qū)動(dòng)實(shí)現(xiàn)是它在推薦系統(tǒng)的協(xié)作篩選中使用。還包括在單個(gè)節(jié)點(diǎn)上運(yùn)行算法的引用實(shí)現(xiàn)。
MLlib (Spark)
Apache機(jī)器學(xué)習(xí)庫(kù)(MLlib)(http://spark. apache.org/mllib/)提供了用于Apache Spark平臺(tái)(HDFS,而不是映射化簡(jiǎn))機(jī)器學(xué)習(xí)算法的實(shí)現(xiàn)。盡管Java庫(kù)和平臺(tái)支持Java、Scala和Python綁定。這個(gè)庫(kù)是新的,算法的列表很短,但是增長(zhǎng)很快。
MOA
大規(guī)模在線分析(MOA)(https://moa.cms. waikato.ac.nz/)是一個(gè)開源平臺(tái),由新西蘭懷卡托大學(xué)的數(shù)據(jù)流挖掘設(shè)計(jì)。和Weka相同(開發(fā)在相同的地方),提供一個(gè)GUI,命令行接口和Java API。它提供了一長(zhǎng)串的算法,重點(diǎn)是分類和支持離群檢測(cè),解決概念漂移。MOA使用先進(jìn)的數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)系統(tǒng)(ADAMS)(https://adams.cms.waikato.ac.nz/)管理工作流,開發(fā)也在相同的地方。
SAMOA
可擴(kuò)展的高級(jí)在線分析(SAMOA)(http://samoa-project.net/)是一個(gè)由雅虎開發(fā)的分布式流媒體機(jī)器學(xué)習(xí)框架。它的設(shè)計(jì)運(yùn)行在Apache Storm 和 Apache S4上。系統(tǒng)可以利用MOA項(xiàng)目提供的算法來(lái)完成分類等任務(wù)。
自然語(yǔ)言處理
本節(jié)將致力于Java庫(kù)和項(xiàng)目,用于解決來(lái)自機(jī)器學(xué)習(xí)的子領(lǐng)域的問(wèn)題,稱之為自然語(yǔ)言處理(NLP)。
自然語(yǔ)言處理不是我的領(lǐng)域,所以我僅僅指出關(guān)鍵的庫(kù)。
OpenNLP: Apache OpenNLP(http://opennlp. apache.org/)是處理自然語(yǔ)言文本的工具包,它為諸如標(biāo)記化、分割和實(shí)體提取等自然語(yǔ)言處理任務(wù)提供了方法。
LingPipe:LingPipe(http://alias-i.com/lingpipe/)是計(jì)算語(yǔ)言學(xué)的一個(gè)工具包,包括了主題分類、實(shí)體提取、聚類和情緒分析的方法。
GATE: 文本工程一般結(jié)構(gòu)(GATE)(http://gate.ac.uk/)是一個(gè)開源的用于文本處理的庫(kù)。它提供了針對(duì)不同用例子項(xiàng)目的數(shù)組。
MALLET:機(jī)器學(xué)習(xí)語(yǔ)言工具包(MALLET)( http://mallet.cs.umass.edu/)是一種Java工具包,用于統(tǒng)計(jì)自然語(yǔ)言處理、文檔分類、集群、主題建模和信息提取。
計(jì)算機(jī)視覺
本節(jié)列出了機(jī)器學(xué)習(xí)子領(lǐng)域庫(kù),稱之為計(jì)算機(jī)視覺(VC)。
計(jì)算機(jī)視覺不是我熟悉的領(lǐng)域,所以我僅僅指出關(guān)鍵的庫(kù)。
BoofCV:BoofCV(http://boofcv.org/index.php?title=Main_Page)是一個(gè)用于計(jì)算機(jī)視覺和機(jī)器人應(yīng)用的開放源碼庫(kù)。它支持圖像處理、特征、幾何視覺、校準(zhǔn)、識(shí)別和圖像數(shù)據(jù)輸入等功能。
深度學(xué)習(xí)
隨著深度學(xué)習(xí)方法和硬件的快速發(fā)展,神經(jīng)網(wǎng)絡(luò)又重新流行起來(lái)。本節(jié)列出了用于處理神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的關(guān)鍵Java庫(kù)。
Encog:Encog(http://www.heatonresearch.com/encog)是一個(gè)機(jī)器學(xué)習(xí)庫(kù),提供了諸如SVM、經(jīng)典神經(jīng)網(wǎng)絡(luò)、遺傳編程、貝葉斯網(wǎng)絡(luò)、HMM和遺傳算法的算法。
Deeplearning4j:Deeplearning4j(http://deeplearning4j.org/)被認(rèn)為是一個(gè)用Java編寫的商業(yè)級(jí)的深度學(xué)習(xí)庫(kù)。它被描述為與Hadoop兼容并提供了一些算法,包括受限的Boltzmann機(jī),深層的信念網(wǎng)絡(luò)和堆疊的降噪自動(dòng)編碼器。
總結(jié)
在這篇文章中,當(dāng)我們?cè)贘ava中選擇一個(gè)用于機(jī)器學(xué)習(xí)的庫(kù)或平臺(tái)時(shí),我們已經(jīng)接觸到了大項(xiàng)目名稱選項(xiàng)。這些是倍受學(xué)習(xí)者歡迎的項(xiàng)目,但絕不只這些列出來(lái)的。比如:看一下MLOSS.org (http://mloss.org/software/language/java/)上的這個(gè)頁(yè)面,(截止本文時(shí))它列出了71個(gè)基于java的開源機(jī)器學(xué)習(xí)項(xiàng)目。這是一件很重要的工作,我相信GitHub和SourceForge還有更多的工作要做。
學(xué)習(xí)者的關(guān)鍵是要認(rèn)真考慮自己的項(xiàng)目和需求。從一個(gè)庫(kù)或者一個(gè)平臺(tái)中找出你需要的東西,然后選擇和學(xué)習(xí)一個(gè)最適合自己的項(xiàng)目。
0
回答0
回答0
回答0
回答0
回答10
回答0
回答5
回答0
回答0
回答