返學費網(wǎng) > 培訓機構(gòu) > 全國IT培訓中心
想了解學java程序好不好嗎?想了解JAVA程序員就業(yè)真的很難嗎?,為什么很多學習Java的人能看懂代碼,但自己動手確寫不出來?,為什么有的人學了那么久編程還是只會寫“Hello World”?,自學5個月Java找到了9K的工作,我的方式值得大家借鑒?? 嗎?......本文帶你一探究竟。
這個是老話題了,Java程序員遠遠沒有飽和,年薪10萬+元是很正常的一個薪酬水平?,F(xiàn)在Java程序員挺多的,但是職位需求量更大,特別是能干實干或優(yōu)秀的程序員是相當缺乏的,沒存在飽和一說。從經(jīng)驗來說,如果你是一位實干,又有強烈改變際遇的意志力的人,我建議可以做,做Java技術(shù)開發(fā),至少你的付出會有收獲(技術(shù)領(lǐng)域內(nèi)相對公平) !近20年來Java程序員的工資一直是在穩(wěn)中有升的狀態(tài),極端點的反例來說明,就算那些具有3~5年開發(fā)經(jīng)驗的中下水平(注意:中下,負能)的工程師,擁有年薪10萬+元是很正常的一個薪酬水平。百度了下09年(現(xiàn)在已經(jīng)2021年了)就有一貼子說他覺得Java方面的程序員已經(jīng)是嚴重過剩,一個在職崗位大概有543人來競爭,行業(yè)人才競爭狀況更是惡性的之類的云云?,F(xiàn)實卻不是如此,快十年過去了(2021),在未來5年內(nèi)合格軟件人才的需求將遠大于供給。如果你想做Java程序員,先打個預(yù)防針,先說點不好的方面:程序這行技術(shù)不斷刷新,需要不斷學習,各種辛苦等等。類似30歲以后,就要時刻準備被淘汰了的種種話題。有人說把身體,青春全部獻給程序,一天1-2小時來騎行,跑步這個總能實現(xiàn)的吧?高檔的衣服鞋子,去高檔餐廳這些消費,程序員可以去體驗,提升自己的商業(yè)頭腦,生活方式的選擇在于自己,然后動力十足,有往上發(fā)展的資本及欲望。眼界決定高度,技術(shù)有深度,更要有廣度如果將程序當做愛好,你會發(fā)覺跟20歲的年輕人精力差不多,熟練可靠,敏銳的捕捉到新技術(shù)的應(yīng)用點。曾經(jīng)NB的程序員,例如馬化騰是寫程序出身的,史玉柱的確是靠寫程序賺了第一桶金,比爾蓋茨是搞程序的......既然如此,我們下決定去做,如何成為那位不飽和的Java程序員呢?在入行后開始規(guī)劃好1年,2年,3年甚至5年10年后的目標,清楚地知道自己應(yīng)該做那些事情,讓自己不再迷茫,做到更優(yōu)秀。如果喜歡技術(shù),職業(yè)上就往架構(gòu)師,技術(shù)總監(jiān)方面發(fā)展,這些都需要5,10年的積累。當你學會了Java的基礎(chǔ)知識以后,你還不足以參加工作,你還需要繼續(xù)深造。學會Java開發(fā)框架,會使用一些Java Web框架。目前比較主流的是SSM框架,即spring、springmvc、mybatis。學會這三個框架的搭建,并用它們做出一個簡單的增刪改查的Web項目。工作0-1年之間,Java程序員必須要做得事兒先體會,在實踐中去了解那些配置都是什么含義,以及為什么要這么做,用有道云或云筆記之類的記錄下你第一次搭建的過程。記住有個技巧,先體會再深入(要不然太費時了),一些高端的用法隨著你工作經(jīng)驗的增加會逐漸接觸到的。還熟悉了一些前端知識的具體應(yīng)用等等,html+css+,ajax,bootstrap等等。工作1-2年之間,Java程序員必須要做得事兒還是直白一點來說吧,基于已經(jīng)對Java有了一個更加深入的了解,代碼,設(shè)計模式,并發(fā),類庫的使用,選擇深入的方向。了解設(shè)計模式,閱讀一些關(guān)于代碼編寫優(yōu)化的書,核心是提高你的代碼能力,要能寫出一手優(yōu)雅的代碼。在工作當中,或多或少接觸過并發(fā),你應(yīng)該去更加深入的了解并發(fā)相關(guān)的知識。對于Java的類庫也有了更深入的了解,去看一些JDK中的類的源碼,使用的框架的源碼。目標是:深入了解Java底層和Java類庫,JVM和JDK的相關(guān)內(nèi)容。實現(xiàn)方式推薦看源碼或者看官方文檔。3-4年工作經(jīng)驗,選擇精通一兩項,形成自己的優(yōu)勢這個階段的提升已開始有點難度了及面臨多樣化的選擇,明顯感覺時間不夠用。接觸到更多的技術(shù),比如大數(shù)據(jù)、分布式緩存redis,mongoDb、分布式消息隊列服務(wù)、分布式計算、軟負載均衡等等。每一項技術(shù),若能精通任何一項,都將是你未來巨大的優(yōu)勢,建議從感興趣的技術(shù)開始,深入去研究一下,這項技術(shù)不一定是你工作所用到的,通常是相關(guān)的,可以假設(shè)將來某個業(yè)務(wù)場景會使用到,這時學習的動力十足,代入感也很強,消化能力不在言下,當然你得花心思堅持投入。工作4-5年,在領(lǐng)域有自己一定的見解,提高影響力,突破瓶頸在自己所鉆研的領(lǐng)域已經(jīng)有了自己一定的見解,單純直接去提高技術(shù)通常會碰到一些瓶頸。是時候提高你的影響力了,你可以嘗試去一些知名的公司去提高你的背景光環(huán)。你可以發(fā)表一些文章去影響更多的人,Github創(chuàng)建一個屬于你的開源項目,去打造自己的產(chǎn)品。更多的是影響力可以給你創(chuàng)造更多的機會,同行的反饋讓你的信息面更廣。所以在這個階段,你最大的任務(wù)是提高自己的影響力,為自己未來的十年工作生涯那一天做準備。最后.....再往后的發(fā)展呢?我相信美國的風向就是接下來的未來幾年中國的情形,程序員養(yǎng)家糊口不成問題的,去年人工智能畢業(yè)專業(yè)的新人起薪20W起,而且全球人工智能人才有 40%是華裔,包含的機遇不在言說中,現(xiàn)在去做真的還不遲.
為什么很多學習Java的人能看懂代碼,但自己動手確寫不出來?關(guān)于這個問題,想必是很多人都有的心理歷程或者是“說辭”,但其實真正的原因并不是你們所說的“我能看懂,但是讓我寫卻寫不出來”,真正的原因和問題是在于你當時學習的時候就沒有學會,也不懂如何正確的學習Java編程。根據(jù)這個問題的具體原因以及如何去破解這樣的問題,我今天會在下面跟大家詳細說明?!拔夷芸炊a,但是讓我自己寫卻寫不出來”,這樣的話在我剛開始的時候自己也說過,但后來會寫代碼之后,會發(fā)現(xiàn)這樣的說法是沒過腦子的,也沒有仔細去探究一下根本原因是什么,“能看懂”這樣的說法可以說是記憶好,或者是對于英語懂一些,類似于背單詞,這樣當然可以看懂,而學習Java編程是在于用代碼寫出良好的互聯(lián)網(wǎng)產(chǎn)品,是自己根本就沒有理解代碼。當我自己會寫代碼后,就會覺得自己曾經(jīng)說的這話非常打臉,真正看懂代碼的人,是看懂了業(yè)務(wù)邏輯是什么,并不是看懂了英文單詞,讓他去寫一個功能,他是可以自己獨立敲出來的,這樣才是真正的懂。知乎營銷平臺我覺得寫不出來代碼有兩種情況:一種就是有思路,但是對于Java這門語言的語法結(jié)構(gòu)不是特別了解,所以代碼編寫不出來。一種則是對于Java語言語法結(jié)構(gòu)掌握的還算可以,但是解題卻沒有思路,我個人認為這樣的情況是偏多的,或者說是既對Java語言語法結(jié)構(gòu)掌握的不好,同時也沒有思路,這樣的情況也比較多。針對第一種情況,我認為是比較好解決的,自己細心的多看幾遍視頻,好好掌握一下Java的基礎(chǔ)知識就很容易解決,只要自己不懶就沒什么問題。針對第二種情況,應(yīng)該是每個人在學習過程中都會遇到的難題,往往我們針對一個功能或者一個題目不知道整體的構(gòu)建思路是什么,這也是學習Java剛開始時比較棘手的問題。我的建議就是“先模仿,后創(chuàng)造”,這是一個慢慢積累的過程,我們在看視頻或者書中的代碼時,關(guān)注點要在別人解題的思路上,這是一個會學習的人必備的技能,并不是把他的代碼照抄一遍就行了,每個人都有每個人的學習習慣,自己多整理多歸納,見得多了,慢慢就都有了解題的思路,這跟小學生學習奧數(shù)是一個道理,量變引起質(zhì)變。心理障礙對于剛開始學習Java的小白,可能多多少少都會有一些懼怕寫代碼的心理障礙。講實話,剛開始學Java的時候,我回憶以前自己也有過這樣的感覺,潛意識在暗示自己不會寫,寫不出來,然后自己真的就只是光看視頻,而不去寫代碼,這種學習過程中不愿意動手的習慣就會逐漸養(yǎng)成,而學習一項技能往往靠的就是動手實踐的能力,這也是導(dǎo)致自己最終不會寫代碼的一方面因素。知乎營銷平臺這方面我必須反復(fù)的跟大家強調(diào)“多思考”“多思考”“多思考”“動手寫”“動手寫”“動手寫”,腦袋和手一個都不能懶,手懶就只剩下理論知識,腦袋懶就只剩下一部麻木復(fù)制機器。無論是看視頻還是看書,我們看過一個程序的大致思路后,就合上書或者關(guān)掉視頻,然后按照自己的思路把代碼寫出來,不要去想視頻中的代碼每一段是什么,要圍繞著我們要解決的問題和要完成什么樣的功能,去思考視頻中的代碼思路是怎么完成的。同時自己腦海中也要回憶,自己曾經(jīng)寫過或者看過哪些類似的程序,模仿著曾經(jīng)自己接觸的程序,最終把完整的代碼思路寫出來,這才是最正確的學習過程和思路,其實很多人自己是不會學習的,需要別人去引導(dǎo)才能走到正確的道路上,學習習慣這東西是需要漫長的時間培養(yǎng)出來的。一定要著手去寫代碼,一個沒有大量代碼積累的人,是不可能從事Java開發(fā)工作的,用道家的一句話:道生一,一生二,二生三,三生萬物。程序也是同樣的道理,學會第一個程序,才會有第二個程序。寫不出來沒關(guān)系,我們可以先從最簡單的開始,由簡單到復(fù)雜,但一定要有毅力,可以堅持學下去。代碼從十行積累到一百行,再到一千行,再到一萬行,逐漸遞增,當你積累的足夠多的時候,你現(xiàn)在所想的自己“能看懂代碼,但是不會寫”的說辭就不復(fù)存在了。
二胖前幾天在公眾號后臺收到了一個讀者的留言,他有很多很多學習資料,但就是不知道學什么、也不知道該從何學起,學了很久還只會寫個Hello World。根據(jù)我的經(jīng)驗,除了這個問題,很多同學應(yīng)該還會遇到如下問題:為什么有的人學了很久很久編程,還是只會寫一些簡單的算法題?學了幾個月編程,還沒有寫出超過100行的小項目。好不容易看完了一本書,合上卻發(fā)現(xiàn)前面的內(nèi)容全忘了。我相信,很多學習編程的同學都想切實地做出一個項目,比如可以真正被使用的軟件。可是很多人搞來搞去,永遠都只會寫控制臺程序,不是動態(tài)規(guī)劃就是貪心。以上現(xiàn)象你中招了嗎?不要怕,你不是一個人,我剛學編程那會兒也是這樣的。不僅是我,我相信還有很多同學是這樣,那到底是什么隱形的力量在阻止我們學會編程呢?我總結(jié)了以下幾個原因,如果你中招了,可以考慮參考一下解決方案哦。先問大家一個問題,學習編程的你有沒有刷過OJ(OJ指在線編程練習)。我相信大部分人都有過刷題的經(jīng)歷或是現(xiàn)在正想開始刷題。我曾經(jīng)也是,一閑下來就迫不及待地打開一些刷題網(wǎng)站不停刷題,今天刷動態(tài)規(guī)劃,明天刷最短路......為了AC一道題,我曾一天都忘了吃飯。直到有一天,我突然發(fā)現(xiàn)了一個問題——我究竟為什么要刷題?不知道各位刷題是為了什么。提升編程能力?如果是這樣,那么問題來了...... 刷題真能提升編程能力嗎?如果能。那么問題又來了......什么是編程能力?你可能又會說:“會刷題!”噢!恍然大悟,原來刷題是為了提升編程能力,編程能力提升以后刷題就更容易了......這好像是個無解的問題 ......不知道各位有什么高見沒有,如果有,請務(wù)必留言告訴我,謝謝!集思廣益嘛。昨天有個讀者在公眾號后臺問我刷題的事情,我想她(沒錯,是個妹子)可能遇見了我當年遇到過的問題——每日一題。她還問我是否需要多做題,好像她也不知道為什么要刷題,但是就是每日一題......好了,我來講下我對刷題的理解吧。我先講一個我和ACM的故事。首先解釋一下什么是ACM,ACM的英文全稱是 Contest,簡單來說就是一個生程序設(shè)計競賽。計算機和軟件的同學肯定知道這個競賽,也有很多人參與。由于我是被調(diào)劑到計算機專業(yè)的,所以在前對計算機的相關(guān)行業(yè)并不是特別了解。在我懵懵懂懂地入學時,學校有各種課外社團宣講招新,其中有個社團就是由ACM愛好者組成的。聽完那場宣講會我只有一個感覺:牛逼的人都參加ACM。對,我并不是因為愛好,只是覺得參加了ACM就比別人懂得多。這種心理就和高中參加課外補課班的感覺一樣,有種私下里偷學了很多知識,看誰都是傻逼的感覺。所以我報名參加了ACM,可能是因為我大一的時候編碼能力太弱,沒入選,也就和ACM失之交臂。我并不是因為當初沒被選上參加ACM而“懷恨在心”,才在這里吐槽。我并不是吐槽ACM不好,其實參加ACM對提升思維能力是很有好處的。我想吐槽的是很多人無理由地參加ACM——從眾心理。很多人生怕別人參與了ACM就比自己學得多,所以別人做什么他就要做什么,就像人人都說機器學習牛逼,你就跟著去學,結(jié)果什么都學不好。學習任何一個技能,要么是因為愛好,能從中獲得快感,要么能提升自己。學編程,刷題一定是要的,但一定不是盲目地刷。第一遍刷題是將你學習的算法和數(shù)據(jù)結(jié)構(gòu)理論變成實踐,強化知識。刷題有助于我們將抽象的算法轉(zhuǎn)化為具象的代碼實現(xiàn),讓我們明白其中的原理。比如你用C++、Java或是Python把9大算法都實現(xiàn)一遍以后,你就知道其中的原理,之后就沒必要再繼續(xù)刷同類型的題了。我們需要培養(yǎng)自己的技術(shù)選型能力、方案選擇能力,具體是指:當遇到實際業(yè)務(wù)和需求的時候,你需要知道在什么場景下使用什么樣的數(shù)據(jù)結(jié)構(gòu)和算法,然后通過查詢或調(diào)庫使用這些算法。技術(shù)是服務(wù)于業(yè)務(wù)的,編程是為了解決問題。當然,以上言論都是我自己的理解,你可以有不同的看法,但是我不接受反駁。第二遍刷題是在你找工作面試的時候?qū)⒏鞣N算法寫給面試官看。為找工作刷題無可厚非。就像高考一樣,我們需要一套選拔的機制,面試中手寫代碼的過程就能直接體現(xiàn)一個人的代碼能力。為了拿到一個好的offer,你必須刷題,關(guān)于刷題的事情我也在我之前找工作的系列文章中提到過,感興趣的同學可以自行查看,此處就不過多套路。以上兩點就是我自己“刷題”方式,我時就在這兩個時期全身心地投入刷題,其他時間我就做其他的事情了,做什么事情呢?后文我們繼續(xù)聊??偨Y(jié)一下就是,不管是編程還是任何其他學科的學習,我們一定要明白自己學習的意義,如果僅僅是因為從眾,而根本不知道自己為什么要做這件事情,那么還是先搞清楚自己為什么要做,否則很多時候都是在做無用功。死磕原理指的是什么?舉個簡單的例子。大家要是學過樹或圖的遍歷算法,肯定知道最基本的兩個遍歷方式:DFS和BFS(這里有北外的同學嗎?)其實就是深度優(yōu)先遍歷和廣度優(yōu)先遍歷。不明白沒關(guān)系,我先簡單解釋下。就拿最簡單的二叉樹舉例,下面是一個二叉樹。如果要從A點出發(fā)遍歷完所有的點。深度優(yōu)先遍歷就是“不撞南墻不回頭”,從A點一直往下走到盡頭才往回走,在發(fā)現(xiàn)新路后又繼續(xù)往下走,所以遍歷順序是:A-B-D-E-C-F-G。寬度優(yōu)先遍歷就是“先走完上一層再走下一層”,所以遍歷順序是:A-B-C-D-E-F-G。那么問題來了,死磕原理和二叉樹遍歷有毛關(guān)系?不瞞您說嘞,關(guān)系大著呢...我們把二叉樹比喻成一個知識體系。第一層A代表了你所學的所有的專業(yè)知識。第二層代表本科階段的各個科目,比如B有可能是Python課程,C有可能是算法和數(shù)據(jù)結(jié)構(gòu),當然還有很多其他的科目,如高數(shù),英語等,我就不一一列舉了。試問大家一個問題,如果掛了幾科第二層的課程,能畢業(yè)嗎?好像是不能畢業(yè)的。那現(xiàn)在假設(shè)某個同學第二層的課程全部通過得以順利畢業(yè),他將進入到研究生階段。這時候他會選擇一個“方向”繼續(xù)“深造”。請注意上面加粗的詞語。本科生階段是面向于“面”的教育,就是啥都教給大家;研究生階段是面向“點”的教育,是建立在本科階段對自己專業(yè)的整個體系有了初步了解后做出的選擇,他可能會選擇自己感興趣的方向繼續(xù)學習。所以,如果他選了B方向,那么他將繼續(xù)攻克D和E。和學習編程一樣,第二層就像是你肯定要學習的編程語言、算法、數(shù)據(jù)結(jié)構(gòu)等學科,學好它們才能寫出一個靠譜的程序。再往后的第三層,是你可能在研究生階段主攻的機器學習、人工智能等知識,或是架構(gòu)方向、圖像處理等方向?!彼揽脑怼暗亩x漸漸清晰了:我們不要一個胡同走到黑,初學編程的時候,一定要多多了解各個學科之間的聯(lián)系。人的精力是有限的,如果你一直在一門課上搞啊搞的,缺點有三:你很可能很久都寫不出來一個像樣的程序,自信心受到打擊;你可能會做很多無用功。一些學科需要其他學科的知識做鋪墊,而僅僅在一門課中閉門造車會浪費大量的時間;你可能會陷入造輪子的境地。那到底有什么好的方法可以學習編程嗎?有的!還是舉個例子,我們學數(shù)據(jù)結(jié)構(gòu)的時候不是有很多已經(jīng)封裝好了的數(shù)據(jù)結(jié)構(gòu)嗎?比如C++中的Vector,Python中的dict、list等,你們有看過它們是怎么實現(xiàn)的嗎?如果你看過Vector的實現(xiàn)方式,你肯定會感嘆它的動態(tài)擴展內(nèi)存有多么巧妙。你自己能把這個數(shù)據(jù)結(jié)構(gòu)寫出來嗎?注意,上面加粗的字,正是很多人編程學得慢的重要原因之一。什么知識都要強調(diào)自己能寫出來。我剛學數(shù)據(jù)結(jié)構(gòu)那會兒也是這樣想的,當時我在心中定下一個宏大的目標,要自己實現(xiàn)課本上所有的數(shù)據(jù)結(jié)構(gòu)。所以我花了很長時間去寫一些現(xiàn)有的數(shù)據(jù)結(jié)構(gòu),也成功地寫出了一些,如平衡二叉樹、紅黑樹......可真的花費了我很多時間......我又陷入了沉思......可以直接用的東西,我為什么要去寫呢?初學的時候,我建議大家還是面向“面”去學習,我們可以了解某個數(shù)據(jù)結(jié)構(gòu)的內(nèi)部原理,但先不要嘗試自己去實現(xiàn)。遇到一個場景,我們知道選擇什么樣的數(shù)據(jù)結(jié)構(gòu)去使用就好。然后學完原理之后,大家就可以學一些算法和一些小的框架了。不瞞您說,如果只是一味地學習編程語言語法和刷題是學不會編程的。一定要去看一些框架、做一個項目,然后運用你現(xiàn)在學習的這些知識,把它們?nèi)诤掀饋怼T趯嵺`的過程中你會發(fā)現(xiàn)自己還欠缺很多其他的知識,這時你再去有針對性地學習,知識轉(zhuǎn)化率才高。這個項目可以是一個Web,一個App,或者一個爬蟲系統(tǒng)。為了讓大家更理解,我舉個自己的例子吧,下文圖片有點多,但請大家耐心看完。當時本科畢設(shè),女朋友的老師希望她做一個與高考志愿填報相關(guān)的調(diào)研。但是她無從下手,這種情況只有我上了。我的想法是用最直接的方式去展現(xiàn)高校錄取的變化規(guī)律,可以做一個展示高考錄取情況的數(shù)據(jù)分析網(wǎng)站,絕對亮瞎老師們的鈦合金......好像不對,絕對讓老師們目瞪口呆。然后我用兩周時間搞出了下面這個網(wǎng)站,是邊學邊搞的,不知道的東西就查。Web主頁:數(shù)據(jù)查詢功能:數(shù)據(jù)可視化與對比功能:這個項目運用到了哪些知識呢?爬蟲,我抓了上千萬條數(shù)據(jù),項目完成后我的爬蟲技術(shù)提高了很多。數(shù)據(jù)分析能力,為了進行數(shù)據(jù)可視化,我又學習了echarts的使用。Web知識,可以通過PHP搞出一個網(wǎng)站。前端編碼能力,雖然我搞的網(wǎng)站有點丑,不過好歹在過程中理解了前端工程師的一些工作。數(shù)據(jù)庫,對數(shù)據(jù)庫的使用更加熟悉。同時,我知道了自己的不足之處,在做項目的過程中快速迭代,不斷更新自己的知識,得以進步飛速。如果你永遠刷題刷題刷題,估計等畢業(yè)了也還是只會刷題刷題刷題?!耙豢诔猿梢粋€胖子”的貪婪心理也是一個阻礙大家學習編程的絆腳石。還是舉個例子:我們學習一個框架或者學著做一個項目的時候,可能文檔或課程說明上會寫“學習本課程之前需要先會Java、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫、操作系統(tǒng)等知識”。但你肯定不是全會啊,怎么辦?立馬放下這個項目去學習上述課程?這就是典型的“一口吃成一個胖子”的表現(xiàn)。我們做項目的時候不要怕自己這不會,那也不會。不會先上谷歌百度查一下,或者先直接參考別人的代碼,然后自己把問題記下來,后面再去深究。當你成功做出第一個項目后,你就會大受鼓舞,再去做第二個、第三個,然后就起飛了。萬事開頭難。一定要采取項目驅(qū)動式的學習方法,不管是編程還是其他科目,我們除了系統(tǒng)學習,還一定要建立一條“發(fā)現(xiàn)問題,解決問題”的學習路徑。一開始做項目,不用自己去做,先找個別人的項目來看。如果找不到項目,出門右拐github。順便給大家推薦一篇我的知乎萬贊文章:這可能是我見過最好的編程指南了!看完你會回來給我點贊的。以上~本文首發(fā)于專欄同名微信公眾號:逆襲的二胖。
我是去年9月22日才正式學習Java的,因為在國營單位工作了4年,在天津一個月工資只有5000塊,而且看不到任何晉升的希望,如果想要往上走,那背后就一定要有關(guān)系才行。而且國營單位的氣氛是你干的多了,領(lǐng)導(dǎo)覺得你有野心,你干的不多,領(lǐng)導(dǎo)卻覺得你這個人不錯。我才26周歲,實在的受不了這種工作氛圍,情緒已經(jīng)壓制了很多久,一心想著要跳出來,卻一直找不到合適的機會。因為身邊的朋友有在北京做Java開發(fā)的,他工作了四五年的時間,可以在北京拿到3萬的月薪,說心里話我是真的羨慕,這遠超出了我的認知范圍。所以經(jīng)過朋友的推薦,我開始學習Java,一共學了大概5個多月的時間,今年的3月6號在天津找到了一份Java開發(fā)的工作,我包裝了一年的工作經(jīng)驗,月薪9K五險一金,這算是成功上岸了。在剛開始學習的時候我考慮過去線下培訓班,但是我朋友不建議去,因為他就是培訓出來的,他和我說去培訓班幾乎沒作用,你去了之后會發(fā)現(xiàn)全程都是靠自己自學,老師上完課就走,不如自己看視頻學有效率,如果再有一次機會,我絕對不會花3萬塊錢去培訓。因為朋友是過來人,他的建議我不得不聽,而且我在網(wǎng)上查了一下,培訓班的口碑似乎都不好,這就讓我直接放棄了培訓的想法。況且3萬的培訓費用是我不吃不喝半年的工資,確實有點舍不得。于是我開始自學,因為有朋友是做這行的,所以自己在開始的時候少走了很多彎路,他給了我很好的建議,所以學習Java有個大佬帶是尤為重要的。因為做軟件研發(fā)的都有一個圈子,所以經(jīng)過了朋友的引薦,他讓我加了他們那個圈子的Java技術(shù)研討群。里面大部分都是自學成功的大佬,在整個學習期間,我在他們這里真的是得到了不少的幫助。因為他們每個人都積累了很多資源,所以平時都是相互分享資源,如果公司有內(nèi)推就業(yè)的名額也會相互推薦工作機會。當然里面也有一些還在學習中的人,這都是朋友相互推薦聚到一起的。所以我建議那些還在學習Java的初學者,一定要多結(jié)識一些行業(yè)內(nèi)的大佬,可以加一下這個Java交流群,對于一個初學者來說可以獲得非常多的幫助,平時有一些問題發(fā)在群里,他們中有人工作不忙的時候就會出來解答,效率很高而且每個解答都講解的非常透徹。我之所以能在5個月左右的時間自學Java就業(yè),確實是得到了這些大佬不少的幫助。 Java主要的學習內(nèi)容:一、JavaSE基礎(chǔ)篇JavaSE就是一種標準版,是Java語言的基礎(chǔ)部分,Java衍生出來的各種框架(如Spring系列)各種產(chǎn)品都是基于JavaSE標準,JavaSE是Java向上發(fā)展的基礎(chǔ),Java任何高級產(chǎn)品的底層基礎(chǔ)都是JavaSE,通俗來講這是所有孩子的”爹“。JavaSE如果學不好,理解不透徹,后面學習框架時就有如天書一般,所以JavaSE這部分的重要性是不言而喻的,希望各位初學者銘記。主要包含內(nèi)容:數(shù)據(jù)類型、基礎(chǔ)語法、運算符、流程控制、數(shù)組、面向?qū)ο?、常用類、異常處理、集合、IO流、多線程、反射、注解、解析、網(wǎng)絡(luò)編程。二、數(shù)據(jù)庫篇數(shù)據(jù)庫是學習Java語言必學的一項內(nèi)容,常見的數(shù)據(jù)庫就是MySQL和Oracle這兩種,作為初學者一般都是學習MySQL為主,一般情況下中小型企業(yè)都會選擇MySQL數(shù)據(jù)庫,比較大型的互聯(lián)網(wǎng)公司會選擇用Oracle,而學習Oracle相對于MySQL也要復(fù)雜一些,建議是主要學習MySQL數(shù)據(jù)庫,Oracle作為了解即可。學習數(shù)據(jù)庫較為簡單,基本的操作就是增刪改查。三、Web開發(fā)Web前端內(nèi)容:HTML/CSS//(前端頁面)注意:Java后端開發(fā)可以不用過多關(guān)注HTML頁面及CSS的處理,但是最起碼要會用簡單的HTML,是必需要會的,因為Javaweb后端程序員畢竟要接觸使用AJAX方式處理數(shù)據(jù)及顯示。當然如果只關(guān)注服務(wù)器端實現(xiàn)而不考慮任何用戶界面,則HTML、CSS、都不用關(guān)注,但是完全脫離前端的開發(fā)現(xiàn)在雖然也不少,但是絕對不關(guān)心前端是不可能,尤其是,但是前端卻可以完全不關(guān)心服務(wù)器后臺的任何實現(xiàn)。JavaEE內(nèi)容:Servlet/JSP雖然現(xiàn)在網(wǎng)上在傳JSP很少用了,可能是被一些模板或JS AJAX方式代替了一些,但是我認為還是應(yīng)該接觸一下,萬一要用到不會怎么辦,而且它是Java EE的動態(tài)網(wǎng)頁實現(xiàn)標準組件。學習JSP過程也能更好的幫助我們理解web會話的過程,掌握web會話都有哪些我們必需知道的。如果學習Javaweb、JSP都不接觸那就相當于學習使用而一點不接觸一樣,豈不是稀里糊涂。包括開發(fā)Javaweb 我們必需知道的概念諸如Web應(yīng)用上下文,請求對象,響應(yīng)對象,,Cookie等都是在接觸學習JSP和Servelt中體現(xiàn)的,還有一些比較少見的EJB JSF JMS 以及 Java Felix等。一些初學者不清楚這些難免會有誤區(qū),尤其是有些較成熟的工程師也這么說,我只能說他們很無知,只是代碼機器而已,其實對于應(yīng)用開發(fā)設(shè)計也就稀里糊涂,人云亦云罷了。永遠沒有被淘汰的技術(shù)也沒有永遠流行萬能的技術(shù),要看在什么環(huán)境和場合應(yīng)用,符合我需求的技術(shù)和工具就是好的,就是對的。四、高級框架1、 核心IOC容器2、Spring boot 在Spring基礎(chǔ)上的更全面提升效率的Spring工具3、ORM 框架當今流行使用較多的是Mybatis 和 MP(Mybatis插件),Hibernate是可選性學習的4、模板技術(shù),比較成熟的、Spring Cloud 微服務(wù)框架,Spring Cloud提供的全套的分布式系統(tǒng)解決方案。五、工具maven 是構(gòu)建管理項目的工具,svn 和git是團隊協(xié)作開發(fā)的項目源代碼及相關(guān)文檔資料管理工具,需要學習者初步掌握其應(yīng)用。像Tomcat,jetty ,resin,JBoss,GlassFish 等都是部署運行Java web應(yīng)用的服務(wù)器。以上就是初學者大概學習的內(nèi)容,我是盡量站在初學者的角度來說的,沒有寫得特別復(fù)雜,怕初學者看不懂,沒有實質(zhì)性的幫助。所以我盡量用白話把話說的簡單一些,給大家羅列出主要學習的Java知識點。Java學習 - 知乎有任何關(guān)于Java相關(guān)的疑問,隨時私聊我。
上述文章了解到關(guān)于JAVA程序員就業(yè)真的很難嗎?,為什么很多學習Java的人能看懂代碼,但自己動手確寫不出來?,為什么有的人學了那么久編程還是只會寫“Hello World”?,自學5個月Java找到了9K的工作,我的方式值得大家借鑒?? ,讓我們對學java程序好不好 有一個直觀的認知。我們發(fā)現(xiàn),作為一個優(yōu)秀的Java程序員是多么的自豪。
只要一個電話
我們免費為您回電