學(xué)弟:學(xué)Java一般要多久能找到工作?需要參加培訓(xùn)班嗎?
大家下午好?。?/span>
早上起來刷知乎的時候偶看到一個問題:“學(xué) Java 一般要多久能找到工作?需要去千峰、達(dá)內(nèi)報個班嗎?” 。

看了一下回答區(qū),發(fā)現(xiàn)很多回答都挺誤導(dǎo)人的。
之前也回答過很多類似的問題,于是我就根據(jù)個人的經(jīng)歷和感受簡單寫了一個回答。希望能幫助到也有類似問題的小伙伴。
個人能力有限,文中觀點僅代表個人看法!如果文章有任何需要改善和完善的地方,歡迎在評論區(qū)指出,共同進(jìn)步!
下面正文。
01 是否要參加培訓(xùn)
其實,真心沒必要從眾!很多人看到身邊的小伙伴參加培訓(xùn)了,自己也按捺不住,也去參加培訓(xùn),結(jié)果發(fā)現(xiàn)效果并不是自己想的那樣。
參加培訓(xùn)班之前,一定要想清楚:“自己為什么報培訓(xùn)班?培訓(xùn)班能給自己帶來什么幫助?”。
對于培訓(xùn)班,網(wǎng)上有很多人挺偏激的,覺得培訓(xùn)班出來的都是“垃圾”,覺得人人都應(yīng)該自學(xué)。我個人是非常反對這種看法的。

客觀點說,我們不能因為一些培訓(xùn)班垃圾就把所有培訓(xùn)班給拉下水了!這是不厚道的。
自學(xué)能力固然重要,但是,是否需要參加培訓(xùn),還是要看人的。
畢竟,并不是每個人都有非常清晰的學(xué)習(xí)目標(biāo)和比較強的學(xué)習(xí)動力,有一個比較靠譜的學(xué)習(xí)路徑和學(xué)習(xí)氛圍,確實能夠讓很多初學(xué)者少走很多彎路。

而且,很多小伙伴是跨專業(yè)過來的。他們也想自學(xué),也不想花錢參加培訓(xùn),畢竟培訓(xùn)費用還是不小的。然而,由于沒有計算機基礎(chǔ)是很難自學(xué)的,他們大部分參加培訓(xùn)也是無奈之舉。
真心沒必要看不起參加編程培訓(xùn)的小伙伴,編程培訓(xùn)也屬于技能培訓(xùn)的一種,沒必要帶著有色眼鏡看待。
不過,前提是你要參加培訓(xùn)的話,盡量要找一個靠譜負(fù)責(zé)一點的機構(gòu)。 大部分培訓(xùn)班的培訓(xùn)水分特別大,說白點,明面上標(biāo)榜著自己對標(biāo)阿里 P6,P7 ,實際上教的內(nèi)容很水,老師的水平也很低。
對于時間比較多的小伙伴(比如在校大學(xué)生),有了學(xué)習(xí)路線之后,你也是完全可以自己學(xué)習(xí)!
02 個人自學(xué)經(jīng)歷分享
拿我自己來說吧!我本科學(xué)校很一般,荊州的一所雙非一本。在大二上學(xué)期末,最終確定了自己以后要走的技術(shù)方向是走 Java 后端。于是,我就開始制定學(xué)習(xí)計劃,開始了自己的 Java 后端領(lǐng)域的打怪升級之路。
到了大三,我基本把 Java 后端領(lǐng)域一些必備的技術(shù)都給過了一遍,還用自己學(xué)的東西做了兩個實戰(zhàn)項目。整個過程一共花了我一個暑假+半個學(xué)期,每天的學(xué)習(xí)強度基本都在 10 個小時以上。
一個是跟著老師一起做的績效考核系統(tǒng),類似下圖這樣。

一個是跟著網(wǎng)上視頻做的分布式商城系統(tǒng),自己對于其中的一些地方做了簡單改進(jìn)和優(yōu)化,比如增加了緩存 Redis。

整個過程一共花了我一個暑假+半個學(xué)期,每天的學(xué)習(xí)強度基本都在 10 個小時以上。
所以,在我看來:自學(xué) Java 想要找到一份工作的話,學(xué)習(xí)強度比較高的話大概需要半年時間,學(xué)習(xí)強度正常水平的話大概需要一年。 對于沒有任何編程基礎(chǔ)的小伙伴來說,這個時間或許還要繼續(xù)延長一些。
對于每一門技術(shù),我會去網(wǎng)上找一些常見的面試題,并把這些面試題作為重點來復(fù)習(xí)!同時,掌握這些面試題,又讓我對這門技術(shù)有了更深刻的認(rèn)識。
知識點差不多學(xué)習(xí)完之后,我每天的任務(wù)基本就是刷刷算法題,寫寫代碼,總結(jié)一下常見的面試問題。
這個期間還接過一些外包做(大三下學(xué)期實現(xiàn)經(jīng)濟獨立,還賺了一些錢),還和一些朋友參加了一個軟件設(shè)計大賽。這讓我的編碼能力有了非常大的進(jìn)步。并且,讓我的簡歷也有了更多可以寫的東西。
我將自己接私活的經(jīng)歷分享在了這篇文章中:嘮嘮嗑!大學(xué)那會接私活賺了 3w+ 。
03 重視項目經(jīng)驗
另外,不論是自學(xué)還是參加培訓(xùn),很重要的一點就是項目經(jīng)驗。 你的項目經(jīng)驗很大程度上決定了你能否有機會面試,也很大程度上決定了面試官會在面試中問你什么問題。分享 4 個面試被問項目經(jīng)歷的小技巧:
1.提前搞清楚項目的架構(gòu)圖、技術(shù)選型等等。
比如下面這個就是我之前寫的一個簡易 RPC 框架(guide-rpc-framework)的架構(gòu)圖。

再比如下面這個是一個微服務(wù)的電商網(wǎng)站的架構(gòu)圖。

2.提前想好項目的亮點,針對項目涉及的關(guān)鍵技術(shù)進(jìn)行深度復(fù)習(xí)。
比如說,你的項目用了消息隊列的話,你就很有必要提前想好怎么回答消息隊列相關(guān)的一些問題:消息隊列解決了什么問題、常見消息隊列對比、如何保證消息只被消費一次、如何保證消息不被重復(fù)消費......。

3.引導(dǎo)面試官問你熟悉的技術(shù)。
比如說,你對消息隊列比較了解的話,介紹項目的時候就可以多介紹一下自己通過消息隊列解決了什么問題。
4.突出個人的貢獻(xiàn)比如自己在項目中解決了什么問題,而不只是敘述自己做了什么。
5.提前想好項目的難點或者說自己做的過程中遇到的問題。
昨天就有個球友問到了類似的問題:

04 最后
講真,你們比我當(dāng)時自學(xué)幸福多了!因為缺少指導(dǎo),我自學(xué)那會走了很多彎路,就比如我當(dāng)時把一本已經(jīng)過時的書《Java Web 整合開發(fā)王者歸來》看了兩遍,為此還逃了很多課。

其實,這本書的有些理論內(nèi)容還是不錯的,就是里面講解的知識點有點過時了。
我的第一個 JavaWeb 項目就是參考這本書對 Struts2 的講解做的一個圖書管理系統(tǒng),類似下面這樣。

現(xiàn)在回想起來,感覺學(xué)習(xí) Struts2 純粹是在浪費自己的時間,對于后續(xù)學(xué)習(xí) Spring 也沒有起到任何幫助。
最后,Java 后端的 2021 版詳細(xì)學(xué)習(xí)路線我也寫過:2021 最新的 Java 后端學(xué)習(xí)路線!凎! 。如果你不知道如何學(xué)習(xí)編程也沒關(guān)系,我也寫過自己是如何學(xué)習(xí)編程的:我是怎么學(xué)習(xí)編程的? 。
共勉~
推薦?? :坦白帖!我訂閱了哪些技術(shù)團隊的博客?(完善版)
推薦?? :真香!用 IDEA 神器看源碼,效率真高!
推薦?? :周志明老師的又一神書!發(fā)現(xiàn)寶藏!
