Java开发私教_笃学私教:7年Java开发(月薪37K)分享正确的自学路线,不喜勿喷...
趁著昨晚空閑和今早的時間,編輯這一篇帖子,寫下當(dāng)初我自學(xué)Java走的彎路,希望大家引以為戒,不要多走前人走過的彎路,浪費時間。到今年年底結(jié)束,我做Java開發(fā)已經(jīng)七年的時間了,現(xiàn)在月薪37k已經(jīng)算知足了,但是距離我年薪百萬的目標(biāo)還有很長的路要走,而以后靠的不能僅僅是技術(shù),更是一些管理和帶人方面的知識和頭腦。因為曾經(jīng)自己自學(xué)Java的時候走了不少的彎路,今天想做下總結(jié):
彎路一:盲目的去學(xué)當(dāng)初我在對于Java這個行業(yè)什么都不了解的情況下,比如:不知道未來發(fā)展趨勢,不知道學(xué)習(xí)Java應(yīng)該注意哪些初始問題,不知道具體的學(xué)習(xí)規(guī)劃學(xué)習(xí)路線等等,一味地買書看書,看視頻,到了中期階段萌生放棄的想法,和主要是因為覺得自己越學(xué)越迷茫,也知道自己這樣學(xué)找不到工作,這是初學(xué)者最大的誤區(qū)。
彎路二:沒人指點。在之前,Java對于我來說是從來不了解的行業(yè),而我當(dāng)時從來沒有想過找一個這個行業(yè)比較厲害的人去請教下,現(xiàn)在我終于認(rèn)識到了一點什么叫“方法不對,努力白費”所有的Java大神都有自己的學(xué)習(xí)方法,而學(xué)Java的學(xué)習(xí)也基本是一致,而對于一個什么都不懂的初學(xué)者根本不會知道怎么學(xué),這也是造成失敗的最直接原因。所以學(xué)Java一定要有人指點。
彎路三:盲目看書對于新手來說,學(xué)習(xí)一個技能肯定是買書看書,但是后來我才實踐的證明,對于一個啥都不懂的初學(xué)者來說看書基本可以成為無用的,因為這樣的結(jié)果就勢必會造成大多數(shù)人的情況:能看懂,但是永遠不會寫,這就是我最初出現(xiàn)的問題,非常煩人,所以建議初學(xué)者少看書,多動手,必須弄清楚Java的效率學(xué)習(xí)方法。
學(xué)習(xí)Java確定切記三點:
1.少看書,多動手,手別懶 。
2.初學(xué)的問題,不要覺得自己很NB,該找人問就找人問。
3.學(xué)Java的人很多,同時放棄的占據(jù)80%。
很多人在學(xué)習(xí)的時候會擔(dān)心自己的學(xué)歷找不到工作,說下我對于這個事情的理解,現(xiàn)在這個社會好像在說學(xué)歷越來越重要,我個人并不是這樣認(rèn)為的,如果一個人因為學(xué)歷而不去學(xué)習(xí)技術(shù),一直做又臟又累的活,那他可能就是這樣的命運。人不會因為學(xué)歷而不是學(xué)習(xí)技術(shù),至少學(xué)歷無法改變,但是你總可以改變其他的東西。是否應(yīng)該去培訓(xùn)?我個人的建議不應(yīng)該去培訓(xùn),根據(jù)現(xiàn)在行情來看,四個月培訓(xùn)出來找不到工作的人很多,而且還要辭掉工作,這樣做法是不理智,建議在線上學(xué),這樣可以降低很多成本,還有人指導(dǎo),可以邊工作邊學(xué)。
關(guān)于在校的學(xué)生如何學(xué)Java:
我見過很多在校學(xué)生大學(xué)四年都是混過來的,在目前來看,我們可以把他看成是正常的現(xiàn)象,到了大四的時候,很多人就開始恐慌找工作的事情,那個時候想學(xué)業(yè)沒有學(xué)習(xí)的心,一直在糾結(jié)之中,這就是畢業(yè)學(xué)生的迷茫。所以現(xiàn)在大二大三的學(xué)生一定要吸取前面人的教訓(xùn),不要等著大學(xué)混了四年,然后去還債。不知道要用多少的時間才能還回四年欠下的債。
1、關(guān)于學(xué)習(xí)。Java開發(fā)的技術(shù),主要靠自學(xué)應(yīng)該,可能有些大學(xué)開的課有相關(guān)方面的課程,但新技術(shù)還是要自己去學(xué)習(xí)。另外,知識學(xué)得好,不如東西做得好,要多練習(xí)多多練習(xí)多總結(jié)經(jīng)驗,做出來東西擺出來讓別人看,且看著是那個樣,看著舒服,才是王、道,而你懂得多,但就是動手能力不行,讓你做個東西,做半天做不出來,那別人會怎么想,可想而知。
2、關(guān)于代碼編寫:建議初學(xué)者脫離可視化編輯器,練習(xí)手寫代碼能力,這樣看似麻煩,笨拙,但堅持下去,真正到你進行設(shè)計時就會體會到其中甜頭。手寫代碼,對于你對代碼的理解是很有幫助的,同時也會便于編寫更具有語義的代碼。
3、關(guān)于學(xué)習(xí)方法:自己不理解的實在想不明白就百度一下,或者到各大論壇去提問,請高手幫你解決,不要不好意思,當(dāng)然去的時候盡量提些有技術(shù)含量的問題,基礎(chǔ)知識不懂了就去翻翻書。要經(jīng)常逛論壇,向高手學(xué)習(xí)經(jīng)驗,有機會大家可以去看看,里面高手很多。
可以自學(xué),但是要有一個老司機當(dāng)你師傅,你就會進步非常快。書上和教程上的知識點并不難,難的是具體問題的處理,這時候,老司機有經(jīng)驗,他能指導(dǎo)你,讓你少走彎路。其實感覺還有很多東西要說。可忽然有了種“想要說些什么又不知從何說起”的感覺。最主要的原因我困了……也都是想到哪些到哪。如果有什么問題大家可以直接問,知無不言,言無不盡。對于我這種市井小民,除了沙發(fā)上的屁股印,能幫到別人同樣也可以提升我的存在感,好讓我出現(xiàn)一種這個世界需要我的錯覺。哈哈。
想要通過自學(xué)Java技術(shù)從事這方面的崗位工作,你需要掌握的技術(shù)知識點有這些:
第一階段:Javase:java基礎(chǔ),既然是基礎(chǔ),那肯定是最重要的,所以學(xué)習(xí)的時候也是需要重點學(xué)習(xí)的地方。
第二階段:數(shù)據(jù)庫:為什么要學(xué)數(shù)據(jù)庫呢,因為我們的web數(shù)據(jù)需要持久化到磁盤上統(tǒng)一管理,而數(shù)據(jù)庫無疑就是最好工具。目前主流的關(guān)系型數(shù)據(jù)庫有mysql 和oracle。我建議先學(xué)mysql。為什么呢mysql相比Oracle難度要低,而在國內(nèi)應(yīng)用場景又是最多的。學(xué)會了mysql可以開發(fā)出一個完整的產(chǎn)品了,再學(xué)oracle都可以的。
第三階段:前端基礎(chǔ):既然是做一個網(wǎng)站,那肯定不能是后臺的數(shù)據(jù),這樣用戶也是沒辦法看的,所以需要學(xué)習(xí)前端知識,把數(shù)據(jù)展示到頁面上,而對于后臺人員來說,學(xué)習(xí)階段只需要學(xué)習(xí)前端基礎(chǔ)就可以了。Html 、js、css、jquery就可以了。當(dāng)然到離開后期你也可以學(xué)學(xué)專門為后端人員定制的前端框架,比如,layui,easyui。如果還覺得不夠可以學(xué)學(xué)前端專用框架。比如vue element ,但是大前提是把自己的后臺學(xué)到位了再學(xué)其他的。
第四階段:Javaweb:jsp、servlet。為什么用了html還要學(xué)jsp呢。因為jsp和Java是無縫連接的。學(xué)了javaweb以后就可以自己做一個項目出來了,比如你想做一個個人網(wǎng)站。你可以給你們學(xué)校做一個教務(wù)管理系統(tǒng)都是可以的。
第五階段:Spring:后臺框架。為什么要用框架呢,可以快速開發(fā),并且降低了耦合。Spring的AOP支持允許將一些通用任務(wù)如安全、事務(wù)、日志等進行集中式管理,從而提供了更好的復(fù)用,Spring的ORM和DAO提供了與第三方持久層框架的良好整合,并簡化了底層的數(shù)據(jù)庫訪問。
第六階段:Mybatis:持久層框架,當(dāng)然持久層還有一個框架應(yīng)用也很廣的,那就是hibernate,一個是半自動的一個是全自動,而在國內(nèi)應(yīng)用最多的是mybatis,在國外用得最多的是hibernate,具體原因,大家可以百度查查。持久層框架有什么好處呢?如果你用原始的jdbc做開發(fā),那你得自己來管理每一個連接,連接的打開和關(guān)閉,都是有開發(fā)人員來操作的,而且jdbc也沒有實體的映射,需要我們寫代碼把值set進去,而用了框架這些都交給框架去做了。
第七階段:Maven:mavne是一個工具,他的核心是pom.xml,這個配置文件,pom的全英文是project object model,意思是對象管理模型,也就是把項目也看成一個對象來操作了。給我們帶來最直觀的好處就是依賴問題,以前我們需要自己下載jar包,在構(gòu)建到項目中,但是有了maven只需要寫jar的依賴就可以自動給我們下載了。
第八階段:Springboot:springboot是基于maven的,springboot最明顯的特點就是開箱即用,也就是構(gòu)建了一個springboot項目 直接就可以做開發(fā)了,而不需要像我們自己配一個springmvc的框架一樣的需要去配置大量的xml文件。讓我們開發(fā)人員更著重于業(yè)務(wù)上的開發(fā)。
第九階段:Redis:前面的mysql,oracle是關(guān)系型數(shù)據(jù)庫,什么是關(guān)系型呢,就是一對一 一對多 多對多。有表與表之間有這些關(guān)系在,所以就叫關(guān)系型數(shù)據(jù)庫,而redis就是非關(guān)系型數(shù)據(jù)庫,也就是他存儲數(shù)據(jù)之間是沒有這些關(guān)系,他是以鍵值對 list set方式存儲的。
第十階段:Springcloud:微服務(wù)框架,什么是微服務(wù)呢,就是把我們傳統(tǒng)的單體服務(wù)拆分開了,就是將一個單體架構(gòu)的應(yīng)用按業(yè)務(wù)劃分為一個個的獨立運行的程序即服務(wù),微服務(wù)架構(gòu)其實就是一個分布式架構(gòu),具體的就不詳細的講了,因為這里面牽涉到的解決方案是靈活的。
第十一階段:Linux:linux的應(yīng)用通常都是在底層,那我們上層開發(fā)人員為什么也要學(xué)它呢,其實我們的主要應(yīng)用是在服務(wù)器上,也就是服務(wù)器的系統(tǒng)。當(dāng)然系統(tǒng)也有Windows的,而Windows的和Linux的區(qū)別就是Windows服務(wù)器有問題是微軟來解決,很方便:別人替你做,但也不方便:你遇到問題都得讓他官方來解決漏洞,但是Linux就不一樣,他是完全開源的,有問題自己馬上就可以解決,只要開發(fā)人員能力夠硬去改內(nèi)核都是可以的。
第十二階段:Git:版本管理工具,與之對應(yīng)的還有svn,最大的區(qū)別在于git是分布式系統(tǒng),而svn不是分布式的,因為你們進企業(yè)以后都是協(xié)同開發(fā) 也就是一個項目小組里面幾個小伙伴一起開發(fā)一個項目,所以就要有一個代碼的管理工具來保證你們做的不同模塊可以整合,所以說git也是需要學(xué)的。
最后在這里啰嗦一下,零基礎(chǔ)想要通過自學(xué)Java技術(shù)從事這方面的崗位工作,你需要具備以下幾點素質(zhì):
第一、有超強的學(xué)習(xí)耐心及進取心。
第二、手不懶,代碼寫的足夠多,熟能生巧。
第三、有一定的學(xué)習(xí)能力,善于自學(xué)善于自己解決問題。
第四、可以獨立寫一些簡單的項目。
以上的內(nèi)容我都是完全站在Java初學(xué)者的角度來說,就是希望能用通俗易懂的語言讓大家清晰的明白學(xué)習(xí)Java全面系統(tǒng)的學(xué)習(xí)內(nèi)容,以及應(yīng)該達到什么程度才能拿到一份Java工作的offer,希望可以你帶來幫助。
總結(jié)
以上是生活随笔為你收集整理的Java开发私教_笃学私教:7年Java开发(月薪37K)分享正确的自学路线,不喜勿喷...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tallest Cow POJ - 32
- 下一篇: java美元兑换,(Java实现) 美元