Java自學有什麼好的學習建議麼?

JAVA後端架構


身為一名Java程序員的我來回答一下自己當年自學的經驗吧。




重視基礎和概念

學習任何一門語言,首先學習的必定是語法,這是基礎中的基礎,也是最重要和最容易讓大家忽視的東西。比如,我現在舉個例子,Java是一門什麼樣的需要?他和C還有C++有什麼區別?他為什麼可以實現跨平臺使用?面相對象的語言三條最基礎最重要的特性是什麼?他們的具體使用場景是什麼?這些基本問題你是否都可以回答出來?別小瞧了這些基礎問題,後面很多難的東西和靈活使用的東西都是由這些基礎組成的。所以我建議首先,你先把基礎語法學會再來學習後面難的東西。



注意學習前後的知識點的銜接

我知道學習編程語言是一件特別痛苦的事情,常常越往後面學越難,並且學到後面會把前面的知識點給忘記。這個時候就需要依靠前後知識點的銜接來處理。什麼意思?舉個簡單的例子,比如你今天學習了函數的封裝,明天學習了類的繼承,那麼你是不是可以寫一個類來封裝一些方法,並且再寫一個類來繼承這個封裝方法的類,這樣既學習到了今天的知識,又複習了昨天的知識。一舉兩得。

學以致用,獲得滿足感

前面也說過了,學習一門語言是一件非常枯燥的事情,絕大多數人都堅持不下來。想想這是為什麼呢?原因很簡單,因為我們學了這些知識點之後根本不知道如何使用,導致大腦十分疲勞,排斥學習這些東西了。試想一下,如果你學習了幾天就能寫一個小遊戲,或者學習了幾下就能夠寫一個軟件去給別人使用,是不是這個時候自己的虛榮心就會得到滿足,就覺得學習是一件特別有意思的事情,就有動力學習下去呢?學霸學習的動力其實也是為了滿足自己的虛榮心,因為他考了全班第一老師會表揚,同學會羨慕,家長會誇獎,所以他才有動力去繼續學習。不然老是考倒數第一,換成誰都會自我放棄的。學習Java也一樣。我那會兒學習也是學了一點就立馬做一個小項目來滿足一下自己的虛榮心,告訴自己原來學到的知識點可以這麼用,並且還能做出這麼好玩的東西來,興趣一下子就提起來了。

最後,如果在學習Java的時候遇到不懂的問題,及時百度谷歌,如果對一些編程問題過職業規劃不明白的也可以直接私心我,我也很樂意為你解答。祝順利。😄😄


晨雨細曲


其實Java並沒有想象中的那麼難,首先想要入這個行,要做好一個心理準備,那就是你想走遠點,就得不間斷的去學習,去汲取知識,前期不能怕辛苦,不要閒下來就打LOL、吃雞、王者農藥,有空就得多看看各種開源項目的代碼,API的設計方式,各大網站的設計架構,理解各個環節的作用。補齊自己的知識視野。

當然這個行業也並不是什麼門檻都沒有,不要再私信我初中生、高中生、中專生能不能學習Java了。反正我個人是認為不可行的,或許你可以去問問其他大神? 或許他們會覺得可以的。

下圖是我更新過的自學表,分別分為5個部分。按照這5個方向平穩的去學習並在每一個階段做完相應的項目和練習,找一份工作是完全沒有問題的 。當然,這裡有個前提是你能學的下去,且通過查看網上的資料或視頻能起碼看得懂第一階段的內容。如果第一階段全職學習耗時2個月以上的話,我個人建議你就需要仔細考慮考慮是否真的要人這個行業吧。因為這個時間節點還沒能夠搞明白第一階段的內容的話,從我個人的經驗來講可能後續走起來會更加吃力。



Java學習前的一些準備
  • JDK - (Java SE Development Kit)

JDK是Java開發所需要的環境,就跟我們想玩某個網遊一樣,玩之前一定是需要先安裝相應的程序包的。 那這個JDK就是我們準備登陸Java大陸前需要安裝的一個程序包。

下載地址 : Java SE - Downloads
  • IDE - (Integrated Development Environmen)

IDE是集成開發環境,一般集成開發環境都會帶有JDK,可以使用自帶的JDK也可以使用我們下載的JDK,不同的IDE配置不同。Java常用的IDE有Eclipse、MyEclipse、IntelliJ IDEA。IDE具備代碼分析、補全、變異、調試等常用功能,可以大大的提高開發人員的編程效率。

eclipse下載地址 : https://www.eclipse.org/downloads/MyEclipse下載地址 : MyEclipse官方中文網IntelliJ IDEA : IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains
我提到的這些東西都能搜到對應的資料,無非多踩點坑罷了。但是,看文檔or項目永遠進步不了。一定要上手敲,想再多也不如動手。有機會聯繫一名優秀學長,有個走在前面的人給你指路肯定比你自己走要快得多。 最後,一定要動手,一定要動手,一定要動手。把代碼敲爛,你才會有收穫,不要被視頻誘導,敲一遍之後誤認為你自己會了,如果第二天你起來時已經忘了昨天學習了什麼的話,那說明你還是沒學會。好好加油吧。 在所有的學習過程中,每一個節點都應該有相應的練習或者項目來進行練手,看再多的博文和視頻都是不行的, 不能讓自己的雙手停下來,只有不停的敲打鍵盤,寫出自己的項目,然後在實際的開發中學會如何使用debug,總結所有遇到的bug及解決思路,這樣才叫做學習技術。所以,希望有興趣的同學,能夠好好努力,不要因為一點點難度就懈怠、放棄。開發這條路途,無論你工作多久,都會遇到各種奇奇怪怪的問題,以及形形色色的bug等著你去解決。

最後,我會根據最新的前沿技術更新更加全面的學習路線、課程和資料。目前個人自學小站正在開發中,計劃按照完全免費無任何套路的方式進行建設。有興趣的同學可以關注我的頭條號【Java技術zhai】。


Java技術宅


就好像一千個人心中有一千個哈利波特一樣,這個答案不絕對也不唯一,Java好學但自學的確阻力有些大,作為一門技術語言,它所蘊含的智慧絕對不是靠幾本XX入門,XX框架之類的書所能概括,自學Java你要做好一種英語0基礎達到4級水平的準備理出了一些自學Java可能遇到的問題,希望會對你的學習有所促進和幫助。



自學Java可能遇到的問題有哪些?


一方面是:對Java瞭解不夠深刻,缺乏靈活應用的本領就好像我們學會了26個英文單詞,但仍舊不能寫出一串正確的句子;


另一方面是:缺乏獨立查找錯誤的能力這個能力是伴隨所有程序的,無論你有多少年豐富的項目經驗,你必須能寫代碼,還能發現bug並且能夠解決這個bug,對於自學者而言因為沒有基礎的沉澱,對Java各種編程屬性的不瞭解,往往會遇到“能正著寫,卻不能倒著推”三分時間寫代碼七分時間找bug工作效率也大打折扣。


耗盡了所有的耐力,學到這裡才是Java課程基礎, 你可能用了3個月、5個月甚至更久才勉強消化這些知識,對以後學好框架幾乎成了奢望。所以自學Java還是奢望,自學Java只是浪費時間,最後還會成為徒勞,什麼都學習不會。


下面是我覺得是比較全面的學習框架體系

1:電商項目專題

2:分佈式專題

3:團隊協作專題

4:微服務架構專題

5:性能優化專題

6:源碼分析


結尾

最後,送大家一句話,我是在某個網站上看到的:

再牛 x 的夢想也抵不住傻 x 似的堅持!

還有,別走。

我沒有辦法助你成功,那是洗腦工程師做的事兒。

我倒是有這麼個晉升渠道,它可能會幫你完成那每天的0.01的積累。



JAVA爛豬皮


自學是一個需要自己有一定的自制力的事情,看到你的這個問題我假設你是個零基礎入門學習java的,先給自己定個目標,為什麼要學習java,從事java開發或者只是打個基礎往大數據開發方向發展?或者純粹只是興趣?有了目標學習起來才有動力。

第一,如果現在是有工作的建議是邊工作邊學習。利用休息時間學習提升自己,不要盲目的就離職在家就開始學,生活上經濟上的壓力各種方面給你帶來的困擾是無法讓你靜下心來學習的。

第二,不要盲目的就開始,做好準備。網上免費的資料太多太雜了,該如何開始學習是最關鍵的。如果以轉行找工作為目的就更加要做好功課了,學到什麼程度,學習路線是怎麼安排的,大概要花多長時間,安排好每天的學習計劃。列出來一個整體的學習路線出來的篇幅太長就不展示出來了。java基礎入門的學習資料網上一大把 找一個關於基礎的開始就可以了,也不難。重點是後續你的發展方向,java開發工程師or大數據開發工程師。實在有需要的朋友可以關注我,並私信我,我可以給你java工程師和往大數據發展的一個建議和學習技能規劃圖,Java開發一至五年的想往高級開發或者架構師方向提升也可以找我獲取一些資料,免費給你做參考。


達到以上兩點就可以準備開始了,希望你能堅持下來。

以下:

第三,如果有條件,建議你可以找一家專業有口碑的線上機構課程學習。當然這個建議你可以不接受哈。目前全國所有程序員大概有80%-90%是培訓出生的,不管是為了入行找到一份餬口的工作還是已經做了幾年程序員想要提升或者跳槽轉行都有過參加培訓的經驗和培訓提升的行為。不要太排斥培訓,只是希望你不要被騙,擦亮雙眼多看看多瞭解多做對比和參考。培訓系統的學習比你自己盲目的學習會好很多,只不過同樣的是需要付出努力。


大數據信息站


我也是零基礎小白,現在在看尚學堂高淇老師java300集在學習,因為不是計算機專業,所以瞭解了一下行業的發展,薪資等等,感覺jav更合適一些。學習java300集是師兄推薦學習的,他自己也在學習,高老師講課挺不錯的,內容比較詳細,而且也會用一些小列子解釋技術,聽起來更容易理解,這樣學起來更輕鬆一些。


小小互聯科技


在學習java過程中,先是接觸了面向對象的三個特徵:封裝,繼承,多態。封裝:將一些代碼寫到類、方法中,以便提高複用性,設置寫訪問權限,將內部的一些信息隱藏。繼承:由於一系列的事物有共同的屬性,於是將其抽取出來,封裝成一個類,這有助於提高複用性,在類之間建立聯繫;對於接口,有三個作用,一是暴露規則方便外部使用,二是提高擴展性,三是降低了耦合性。多態:掌握了涉及多態時,一些屬性的狀態,以及轉型的問題。然後內部類的使用以及格式,接著就是異常的知識,主要是分為編譯異常,運行異常,兩個的處理方式也不同。包和線程又是非常重要的知識,多線程的使用在編程過程佔了非常大的比重。String類主要是許多控制的方法,以及格式的轉換方法。之後就是用於存儲元素的容器,即集合,與數組最大的不同是能夠存儲不同的數據,以及容器的大小不受限制。還有容器可以使用泛型來限制,方便了取出操作。同時,有兩個使用比較頻繁的工具類,就是Collections和Arrays,內有許多的方法用於操作集合和數組,方便操作。然後就是流對象的使用了,有輸入流輸出流,字符流字節流,不同的流對象有不同的方法用於操作不同的對象。與流對象還有一個相關的知識就是網絡編程,主要分為兩方面UDP和TCP編程,他們各有各的特點,UDP使用數據包的操作,不需要實時連接,TCP則需要實時連接,再使用封裝的流對象來進行操作。最後兩個知識點就是正則表達式和反射機制了,正則表達式在字符串操作效率方面有非常大的提升,方便了對字符串的限制。反射機制能夠在運行時期,對於每一個類,都能獲取到他的構造函數,屬性,方法,通過反射機制也能夠創建類的對象。


心情的花園


老家的畢業一兩年的朋友,或者一些還未畢業的大學生,經常思考一個問題,要不要開始學習編程,然後隨手賺個“一百億”,做為過來人 我再三強調這一行賺不了大錢,之前推過為了錢就別來當程序員國一文,如果老家有編制,事業單位,可立馬去來家吧,別來大城市瞎摻和所謂IT的工作,除非你的學歷特別高,不然你是無法到所謂的頂端的。如果你入行一兩年了,那麼沒有退路了,那學習這個問題還是值得關注,親戚推薦了一個表弟想學習編程,我不好拒絕,不然還認為我悶聲發大財,阻止別人發財的夢。

所以經常會被問到:我想學習編程,應該從哪裡開始學習呢?

這是一個有趣的問題,但是又難以回答。當然,我可以甩給他們一本關於編程的書,但是這樣做真的好嗎?對於初學者,推薦我偏愛的編程語言合適嗎?可能不會。不要忘了他們問這個問題的真正的目標。

當我聽到這個問題的第一反應,就是弄清楚他們為什麼想學編程。這是一個很好地起點——弄清楚從中想要得到什麼。

“我想要通過學習編程,進入IT行業,拿到理想的薪資”

嗯,目標很明確,很直白!老家沒有靠山,找不到好的工作,或者愛好這一行,這些都可能成為為什麼學習編程的原因。如果你有一個真實世界的問題待解決,或者有一個明確的目標,那麼給你行動的建議就很簡單了。

1

選一門編程語言

學編程自然要先選一門編程語言當入口。語言都是工具,選工具前你要拍明確自己做什麼東西,然後找什麼語言適合做。例如做安卓應用學Java,做IOS應用學swift。後端學習Java,機器學習Pathy等

2

語言不要糾結版本問題

第二選擇學一門語言不要糾結學什麼版本,例如現在是安裝java6還是java7還是java8啊?學當下最新的就行,不要老YY什麼兼容問題。新人在很長時間內達不到要被版本區別坑的水平。而且基本上作為新人從開始學到開始能做產品怎麼也得一兩年。到時候現在這個版本就是穩定主流版本了。

3

先搞定語法

一開始不用學枯燥的計算機組成原理、設計模式之類的知識。就先學語言,也不用深究歷史啊優點啊區別啊,直接學語法。不用管那麼多,先做些看得見的東西。敲代碼敲代碼一直敲代碼,感受一下控制計算機的感覺。這樣才能讓自己感到酷炫,激發一邊學一邊和小夥伴們嘚瑟的熱情。先學好一門語言回頭再來看看歷史和做比較,看看大師們的理論,逐漸向外擴展更多知識或許更有效率。

4

沒人帶路自己努力去找入口

無論是為未入門的外行,還是剛入門不就的同行,都有一個共同話題,那就是沒人帶,怎麼去學習讓自己能力提高? 這個問題問的好, 如果你處在這個階段,那麼對了,你有一顆進取的心,沒人帶能否讓自己提高 這關係著你以後是否成為大牛的根本原因,自己學習不一定成為行業大牛,但是大牛一般都是自我強烈學習的慾望和行動。

自己努力找前輩討教,多瀏覽技術貼,你選中語言的中文API,和其他博客等,當然你也可以看我的公賬號!

5

沒有MAC就先在Windows上學

很多前輩會和你說Linux系統下編程多酷炫, 用Mac下多優雅,用Windows多Low。我覺得這是在裝逼,高手一般都是用的Windows,那些命令行系統是不是真的很高效拋開不說。

如果新人不會用Linux就先不要學,不要刻意去裝個ubuntu裝個黑蘋果搞半天,裝好了不知道怎麼搭建開發環境又搞半天,然後Windows習慣一時半會有揮之不去效率特別低下,各種常用軟件還沒有,還沒開始學編程先把自己的生活搞得一團糟了。所以一開始就在Windows上搞,這是最好的。

還有就是新手資料基於Windows平臺是最多的。

6善於尋找資源

根據你學習的熱情和進度,可以給予一些指導,去找一些學習的資源。

用google搜索,我上面鼓勵一開始直接敲代碼暫時跳過其它知識。但是學編程前先學會科學上網我是大大提倡的。

微博搜索,強烈推薦很多時候比google還好用,特點是按時間排序很新鮮,還能篩選只看關注人關於某事的微博。

知乎搜索,原因大致同上。

GitHub學習開源項目。

多瀏覽技術網站和社區

多參加技術社群和交流會。


開發者技術前線


很多想學JAVA的小夥伴的一個問題就是我該如何入門?是啊,面對這樣的問題我們該如何去做呢,這是擺在很多小夥伴面前的問題。我根據自己多年的編程經驗為大家分享自己的看法。

看好書

對於JAVA,建議你看如下的書:

首先,《21天學通JAVA》;

然後,《30天學通JAVA項目案例開發》(這本書的內容都是實例的,非常棒的實例!適合初學者的同時,又有實際應用性!)

以上的書籍,是基於你只想學J2SE的。

我還建議你主要攻J2EE方面的知識(在中國,J2SE要高手才能找到工作,而J2SE,只是菜鳥都很可能找到工作),至於J2EE方面的書籍:

首先,《21天學通JAVAWEB開發》

然後,《30天學通JAVAWEB項目開發》

以上都是本人確切的經驗來的,絕對沒有介紹錯

2.我聯合互聯網上的一群大牛,組建了一個編程的免費學習群,你只需要來我們這個群裡聽就行,開頭的的第一部分是:六三三.,位於中間的第二部分是:425,處於最後一部分的是:005。 這裡有免費的學習資源,每天直播課程,不需要你付出什麼,只需要有一顆學習的心就可以了。 不是想要學習的就不要加了。

3、動手去寫去練

當然只看是很難學會的。我們需要搭建IDE環境來多練習才能完全掌握這些語法。編程學習沒有捷徑可走,只有入門快慢之分。要學會編程只有coding、coding最後還是coding。

送給那些懦弱的人們

A : 我是護士,我的專業就是護理。我做不了excel、做不了ppt、我學不會ps,好難,我不會寫文章。

我: 我學習那麼好,寫字那麼漂亮,編程也不錯,ps也挺好、我還能打籃球、我會兵乓求、我會羽毛球、我會足球、我會設計、我會英文。(有的都是高二退學之後自己加強學習的,讀書只給了我 算數、識字這些基本的的能力),我特麼是神嗎?

A : 人人都跟你一樣?不是誰都能用很短的時間學很多的東西。

我 :我大概是神吧!你能少看一點 《爸爸去哪兒》、《額滴歌神啊》、《奔跑吧兄弟》嗎,今天出了《爸爸去哪》,明天來個《女兒去哪》、《爺爺去哪兒》,你看得完?你能不能看點有用的東西?例如有點啟發、讓人學到東西的影片或者書?

A:委屈的癟癟嘴,那好,我要學習,給我買一本書吧,推薦一下。

我:書到了,學習 吧,一個月後我要看你的成績。我來考考你

A:好難啊,我好睏,我要看一會兒電視.....(然而沒然後了....)

其實,這位A同學,極度的懦弱,並不是她不上進,只是那麼的懦弱,那麼的沉迷於垃圾節目、垃圾書籍,喜歡看不倫不類,不三不四的東西。不明白自己應該要什麼,自己怎麼做才能得到,認為自己的能力那麼的差,做不到

B:大神,我要學node了,推薦一下node的書籍唄

我:恩,入門看一下《node於express開發》吧,然後看看node官網。還有一些博客什麼的。當然了,你完全按照那本書,也能做出一些的東西了。最重要的是,要自己動手,去做東西,然後發現問題,解決問題。提升自己。

B:大神,除了那本書,還有別的書嗎?

我:書很多,但書不在於多,而是,你能否理解了,並且能運用了?你看完了嗎?

B:我感覺很難做,node好難。

我:做做項目,搜搜Google、看看github。

而今,我不知道這位同學水平到底到了什麼水平,我想,應該不會太好,最終原因,我想是因為沒有深入的去折騰,沒有去寫代碼,沒去發現自己的問題

其實,我們的潛力很大,我們能學的更好。我們能掌握的更多,但是許多人都做不到堅持、做不到深入。不肯思考,不肯的動手,是阻礙我們進步的最大原因。

後記:

人,應該要明確自己的目標,擁有理想。


0110011010001000


其實Java並沒有想象中的那麼難,首先想要入這個行,要做好一個心理準備,那就是你想走遠點,就得不間斷的去學習,去汲取知識,前期不能怕辛苦,不要閒下來就打LOL、吃雞、王者農藥,有空就得多看看各種開源項目的代碼,API的設計方式,各大網站的設計架構,理解各個環節的作用。補齊自己的知識視野。歸根接地還需要自身努力。

前端小學生


主要是有人教


分享到:


相關文章: