Java學(xué)到什么程度才可以找到工作?我從不同公司來幫你分析
非常理解,剛開始學(xué)習(xí)Java的小伙伴,尤其是那種又沒錢又沒有背景的,剛開始學(xué)習(xí)Java都關(guān)心這么一個(gè)問題:到底把Java學(xué)到何種程度才能找到第一份工作呢?每個(gè)人都很現(xiàn)實(shí),目標(biāo)都是相當(dāng)?shù)囊恢?,都是為了能拿到像別人高薪的工作。那到底一個(gè)Java初學(xué)者要學(xué)多少Java知識,才能找到第一份Java工作呢?
在很久以前我曾經(jīng)寫過一篇關(guān)于自己的文章,記錄了我IT職場中第一次面試,當(dāng)時(shí)我的技術(shù)水平跟大家差不多,就是剛?cè)腴T的水準(zhǔn),畢竟是一個(gè)剛接觸的小白。但是作為一個(gè)剛開始工作的新手,找到一家小型公司的Java開發(fā)工作還是比較容易的,畢竟現(xiàn)在最多的就是互聯(lián)網(wǎng)公司,每個(gè)公司對于員工的要求也是天差地別。比如阿里、華為這樣的公司,他們可能對于學(xué)歷要求比較高。而一些只有幾十個(gè)人的創(chuàng)業(yè)公司,他們更加注重這個(gè)人的技術(shù)能力、實(shí)踐能力、解決問題的能力。
我想應(yīng)該用不同的公司來作為標(biāo)準(zhǔn),只有這樣我才覺得有現(xiàn)實(shí)意義:
創(chuàng)業(yè)型小公司
創(chuàng)業(yè)型小公司的特點(diǎn)就是人氣比較少,平時(shí)做事情比較雜。在這里我說的是不到百人的創(chuàng)業(yè)公司,這樣公司在國內(nèi)是最多的,以我多年在職場的經(jīng)驗(yàn)來看,大多數(shù)這樣的創(chuàng)業(yè)型公司,他們很難招聘到非常優(yōu)秀的技術(shù)人才。第一個(gè)是他們沒有這樣的實(shí)力去給他們發(fā)工資,第二是比較優(yōu)秀的人才一定是被大公司挖走的。這樣的公司本身沒有什么底氣,所以他們對于應(yīng)聘者要求也會比較低,學(xué)歷基本都是不看的,Java基礎(chǔ)知識能良好的掌握,能獨(dú)立做幾個(gè)Java Web項(xiàng)目,基本都可以應(yīng)聘上,最基本的CRUD可以獨(dú)立完成。對于這樣的公司,已經(jīng)是不錯(cuò)了。
這種小型的創(chuàng)業(yè)公司招聘人才的渠道非常少,每個(gè)月的薪水得不到保障,而且整個(gè)辦公環(huán)境也比較差,但是工作時(shí)間倒是一點(diǎn)都不少。所以,像去這種類型的公司找工作,只要自己真正的學(xué)了一些本領(lǐng),基本上都可以很容易找到工作。
中小型公司
一般定位中小型企業(yè),都是說那些100人以上,500人以下的成熟公司。普遍都是叫不上名字,但是公司還算有發(fā)展?jié)摿Φ?,這樣的公司稍微正規(guī)一點(diǎn),整個(gè)的辦公環(huán)境會好很多,以及一些福利待遇,而且不用擔(dān)心發(fā)不出來工資的問題。招聘技術(shù)人才和培訓(xùn)人才會有自己的一套標(biāo)準(zhǔn)。他們的要求一般都是大專學(xué)歷以上的,對于個(gè)人的技術(shù)上把關(guān)更嚴(yán)格一點(diǎn),除了可以良好的掌握J(rèn)ava基礎(chǔ)知識和項(xiàng)目之外,還會考查你的debug能力,代碼規(guī)范、異常處理能力,以及對一些Java高級特性的理解能力,可能最好多用過一些框架。這就要求我們在學(xué)習(xí)的過程中,多付出精力寫代碼,并且對于一些原理問題要搞清楚。
總的來說,這樣公司在選拔技術(shù)人才的時(shí)候,標(biāo)準(zhǔn)更加模范化,更加有體系。不會像創(chuàng)業(yè)型公司那樣隨意,只要領(lǐng)導(dǎo)拍個(gè)板就行。在我看來,他們這樣的公司其實(shí)也吸引不到太多優(yōu)秀人才,但不同的是,確實(shí)會有一些能力不錯(cuò)的公司骨干。
二三線互聯(lián)網(wǎng)公司
這種類型公司范圍非常廣,比如大家常聽說的搜狐、暢游、新浪、360,還有一直萎靡的迅雷、金山、獵豹,甚至是愛奇藝、攜程這類現(xiàn)狀比較不錯(cuò)的企業(yè)等等。這種級別的公司還擠不到BAT TMD等一線互聯(lián)網(wǎng)行列,但是如果你能進(jìn)入這樣的公司,已經(jīng)是非常不錯(cuò)了。薪資不會低于年薪40萬。它們這樣的公司對于技術(shù)人才的要求就要非常高了。
他們的最低要求就是本科學(xué)歷,對Java基礎(chǔ)知識要達(dá)到精通的程度,要可以非常熟練的閱讀源碼,如果你沒看過源碼,那么在源碼方面的面試題一定要好好準(zhǔn)備一下。除此之外,一般來說他們還會考察你網(wǎng)絡(luò)知識、操作系統(tǒng),考察的不會太難,能把面經(jīng)上的知識點(diǎn)掌握了就算是比較扎實(shí)了。
這種類型的公司一般不會考太復(fù)雜的題目,他們招聘的需求一般都是中級程序員,只要知識面能夠廣,考你的題目都能說到關(guān)鍵點(diǎn)上面,其實(shí)不需要掌握得特別深入,也可以有機(jī)會拿到offer。
總結(jié)來說,我認(rèn)為二三線互聯(lián)網(wǎng)企業(yè)不太可能和戰(zhàn)斗在一線的互聯(lián)網(wǎng)公司爭奪人才,所以他們一般爭取的都是二線人才,不需要太優(yōu)秀,但至少要是中級程序員的水平,所以這種類型的公司對很多Java程序員來說機(jī)會還是非常大的。
一線互聯(lián)網(wǎng)公司和獨(dú)角獸
BAT、TMD等互聯(lián)網(wǎng)企業(yè)都屬于這類公司,這種規(guī)模的公司和二三線互聯(lián)網(wǎng)公司的發(fā)展差距還是比較大的。公司的人數(shù)規(guī)模、市場市值、還有股價(jià)方面,業(yè)務(wù)以技術(shù)為基礎(chǔ),因此規(guī)模的公司的技術(shù)就是互聯(lián)網(wǎng)業(yè)內(nèi)最頂尖的技術(shù)。比如阿里的云計(jì)算和中間件,頭條的推薦算法、騰訊的游戲技術(shù)等等。
想要進(jìn)這樣令人羨慕的公司,必須要掌握J(rèn)ava基礎(chǔ)、計(jì)算機(jī)基礎(chǔ)知識,并且是非常熟練地掌握,你需要深入理解每一個(gè)知識點(diǎn),因?yàn)槊嬖嚬贂粩嗌钊氲叵蚰闾釂?,了解你的知識深度,同時(shí),你需要對源碼有所理解,在讀懂源碼的基礎(chǔ)上去理解框架的實(shí)現(xiàn)、JDK的實(shí)現(xiàn)。分布式、高并發(fā)、大數(shù)據(jù)、算法這些都是在考察的范圍之內(nèi)。
另外,非常需要你對JVM虛擬機(jī)有非常清晰的認(rèn)識,不僅僅只是了解簡單的結(jié)構(gòu),垃圾回收原理,甚至還要知道如何在遇到線上問題時(shí)通過JVM調(diào)優(yōu)來解決它們。
同理,你還需要對Java并發(fā)編程和網(wǎng)絡(luò)編程的使用方法與底層實(shí)現(xiàn)原理非常熟悉,不僅僅答出NIO和BIO的區(qū)別,或者是synchronized和lock的區(qū)別,你還需要知道NIO的底層實(shí)現(xiàn)epoll是什么,synchronized對應(yīng)的mutex lock是什么,lock和condition的實(shí)現(xiàn)原理又是什么,而lock本身也是通過AQS、CAS操作類等組件來實(shí)現(xiàn)的,其中的內(nèi)容實(shí)在太多,絕不只是幾道面試題就可以搞定的。
除此之外,這些公司對數(shù)據(jù)庫、緩存、分布式技術(shù)等方面的要求都會比其他公司要高得多,你最好要搞懂MySQL的存儲引擎、索引和鎖的實(shí)現(xiàn)原理,Redis緩存的數(shù)據(jù)結(jié)構(gòu)、備份方式、底層實(shí)現(xiàn)。同時(shí)如果你能理解負(fù)載均衡算法、CAP理論,甚至是raft和paxos算法,以及分布式常用技術(shù)如消息隊(duì)列、zookeeper等等,那么無疑也是可以為你加分的技能。
為什么這些頂級的大公司的要求這么高,因?yàn)樗鼈兪鞘澜缟献詈玫幕ヂ?lián)網(wǎng)公司,要招的自然也是最優(yōu)秀的人才,如果考察底層原理還不能滿足他們篩選人才的需要,他們也會考察面試者的算法能力,比如LeetCode上medium難度的原題,或者是劍指offer的變式題等等,算法題相對考察理論基礎(chǔ)而言,篩選度更高,可以淘汰的人也更多。
我曾經(jīng)在阿里呆過兩年,最后離開的原因是實(shí)在受不了每天加班到12點(diǎn)的作息時(shí)間。但是在阿里的這段日子,成長確實(shí)是非常大的。大公司也并沒有大家想的那么好,除了工資高之外,其他的都是夠人受的,幾乎沒有升職空間,因?yàn)槿瞬盘嗔?。幾乎每天都加班,沒有太多的生活體驗(yàn)。而且條條框框特別多,每天都是在被限制。當(dāng)然了,如果你有實(shí)力進(jìn)入大公司,最好還是去鍛煉幾年,年輕人嘛,還是闖一闖。
畢竟在這樣的公司工作年薪不會低于60萬,所以按照你目前的情況來選擇,你最終會進(jìn)入什么樣的企業(yè),你自己心里應(yīng)該是有數(shù)的。
有任何學(xué)習(xí)疑惑可以隨時(shí)私信我交流
更多學(xué)習(xí)干貨在等你!
我的秋秋交流討論裙一直為想學(xué)習(xí)java的你們開放,快來加入吧,前面是735,中間是721,后面是532