什么樣的Java程序員可以去BAT公司上班?
很多Java初學(xué)都關(guān)心這么一個(gè)問題,Java學(xué)到什么程度以后可以找到第一份工作。大家的目標(biāo)都很明確,也很實(shí)在,學(xué)習(xí)Java無非就是為了找工作,那到底我要學(xué)多少Java知識(shí),才可以找到第一份工作呢。我想應(yīng)該用公司來作為變量,這樣回答這個(gè)問題才有意義。01 創(chuàng)業(yè)型小公司創(chuàng)業(yè)型小公司的特點(diǎn)就是人少,事雜。這里我們指的是不到100人的小公司,這種公司其實(shí)也很多,我們拋開一些獨(dú)角獸或者知名創(chuàng)業(yè)公司不談,先談?wù)劥蠖鄶?shù)的創(chuàng)業(yè)公司,這些公司吸引不到優(yōu)秀人才,并且也拿不出太多錢給員工,因此招牌要求也會(huì)比較低,學(xué)歷基本不看,Java基礎(chǔ)知識(shí)稍微掌握一些,做過幾個(gè)Java Web項(xiàng)目,最好還能寫寫前端代碼,能吹幾句牛皮,應(yīng)該問題就不會(huì)很大。這種公司招人的渠道本來就少,薪水得不到保障不說,辦公場(chǎng)所也很簡(jiǎn)陋,但是工作時(shí)間倒是少不了。02 中小型公司說到中小型公司,泛指那些100人以上,500人以下的公司,大多數(shù)也是叫不上名字,但是還算有所發(fā)展的公司,這類公司稍微會(huì)正規(guī)一點(diǎn),招聘和培訓(xùn)可能會(huì)有自己的一套標(biāo)準(zhǔn),比如學(xué)歷上可能稍微做一些要求,技術(shù)上的把關(guān)更嚴(yán)格一點(diǎn),除了Java基礎(chǔ)知識(shí)和項(xiàng)目經(jīng)歷之外,可能還會(huì)考查你的debug能力,代碼規(guī)范、異常處理能力,以及對(duì)一些Java高級(jí)特性的理解能力,可能最好多用過一些框架。總而言之,這類公司選人的標(biāo)準(zhǔn)更加有體系,不會(huì)像一些特別小的公司,招人很隨意,領(lǐng)導(dǎo)拍個(gè)板就行。當(dāng)然,這類公司也吸引不到太多優(yōu)秀人的人才,但是也確實(shí)可能會(huì)有一些踏實(shí)能干的勤奮員工。03 二三線互聯(lián)網(wǎng)公司這類公司范圍就很廣了,比如日薄西山的搜狐、新浪、360,或者是一直起不來的迅雷、金山、獵豹,甚至是愛奇藝、攜程這類現(xiàn)狀比較不錯(cuò)的企業(yè)等等,這類公司擠不到BAT TMD等一線互聯(lián)網(wǎng)行列,但是在二三線陣容還算是比較不錯(cuò)的公司,它們對(duì)于人才的要求其實(shí)還是相對(duì)比較高的。比如一般都會(huì)要求本科學(xué)歷,對(duì)Java基礎(chǔ)知識(shí)要比較熟悉,最好能夠看過源碼,如果沒看過,那么源碼方面的面試題好歹也要準(zhǔn)備一下,除此之外,一般來說還會(huì)考察你的后端技術(shù)知識(shí),比如數(shù)據(jù)庫、網(wǎng)絡(luò)、操作系統(tǒng),考察的不會(huì)太難,能把面經(jīng)上的知識(shí)點(diǎn)掌握了就算是比較扎實(shí)了。這類公司一般不會(huì)考太復(fù)雜的題目,更希望招一些水平能力都是中等的人才,只要知識(shí)面能比較廣,題目都能說到點(diǎn)子上,不需要掌握得特別深入,也可以有機(jī)會(huì)拿到offer。其實(shí)歸結(jié)原因,就是因?yàn)槎互聯(lián)網(wǎng)不太可能和一線公司爭(zhēng)奪一線人才,所以一般爭(zhēng)取的都是二線人才,不需要太優(yōu)秀,但是至少要是中等水平,所以這些公司對(duì)很多程序員來說還是比較有機(jī)會(huì)的。04 一線互聯(lián)網(wǎng)公司和獨(dú)角獸BAT、TMD等互聯(lián)網(wǎng)名企都屬于這類公司,這類公司和二三線互聯(lián)網(wǎng)公司的發(fā)展差距還是比較大的,體現(xiàn)在公司的規(guī)模、市值、甚至是股價(jià)等方面,業(yè)務(wù)以技術(shù)為基礎(chǔ),因此這些公司的技術(shù)往往也是業(yè)界最頂尖的,比如阿里的云計(jì)算和中間件,頭條的推薦算法、騰訊的游戲技術(shù)等等。要進(jìn)這些公司,不僅要做到之前那些事情:掌握J(rèn)ava基礎(chǔ)、計(jì)算機(jī)基礎(chǔ)知識(shí),并且是非常熟練地掌握,你需要深入理解每一個(gè)知識(shí)點(diǎn),因?yàn)槊嬖嚬贂?huì)不斷深入地向你提問,了解你的知識(shí)深度,同時(shí),你需要對(duì)源碼有所理解,在讀懂源碼的基礎(chǔ)上去理解框架的實(shí)現(xiàn)、JDK的實(shí)現(xiàn)。另外,你需要對(duì)JVM有一個(gè)清晰的認(rèn)識(shí),不僅要了解其結(jié)構(gòu),垃圾回收原理,甚至還要知道如何在遇到線上問題時(shí)通過JVM調(diào)優(yōu)來解決它們。同理,你還需要對(duì)Java并發(fā)編程和網(wǎng)絡(luò)編程的使用方法與底層實(shí)現(xiàn)原理非常熟悉,不僅僅答出NIO和BIO的區(qū)別,或者是synchronized和lock的區(qū)別,你還需要知道NIO的底層實(shí)現(xiàn)epoll是什么,synchronized對(duì)應(yīng)的mutex lock是什么,lock和condition的實(shí)現(xiàn)原理又是什么,而lock本身也是通過AQS、CAS操作類等組件來實(shí)現(xiàn)的,其中的內(nèi)容實(shí)在太多,絕不只是幾道面試題就可以搞定的。當(dāng)然,除此之外,這些公司對(duì)數(shù)據(jù)庫、緩存、分布式技術(shù)等方面的要求都會(huì)比其他公司要高得多,你最好要搞懂MySQL的存儲(chǔ)引擎、索引和鎖的實(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)秀的人才,如果考察底層原理還不能滿足他們篩選人才的需要,他們也會(huì)考察面試者的算法能力,比如LeetCode上medium難度的原題,或者是劍指offer的變式題等等,算法題相對(duì)考察理論基礎(chǔ)而言,篩選度更高,可以淘汰的人也更多。05 到青鳥學(xué)JAVA優(yōu)勢(shì)在哪1. 享受國內(nèi)一線Java大牛聯(lián)合授課,每一節(jié)都是最優(yōu)秀的老師講授。2. 掌握框架源碼、工程化管理、微服務(wù)架構(gòu)、高并發(fā)分布式、性能優(yōu)化等高級(jí)開發(fā)技能。3. 學(xué)完后都可以獲得內(nèi)推到國內(nèi)20萬家知名公司就業(yè)的機(jī)會(huì),BAT不是夢(mèng)。4. 結(jié)識(shí)大咖講師、優(yōu)秀同學(xué)等人脈資源,今后職業(yè)發(fā)展的潛在助力。5. 線下交流學(xué)習(xí)——一線名師老師、BAT大咖不定期線下分享經(jīng)驗(yàn)。你是不是也想成為一個(gè)人人羨慕的技術(shù)大牛!是不是也有一個(gè)月薪過萬的夢(mèng)想?
想學(xué)互聯(lián)網(wǎng)技術(shù)不能猶豫,否則你就和高薪擦肩而過了。不論你是0基礎(chǔ)還是轉(zhuǎn)行,都有大牛老師手把手教你學(xué)習(xí)最新熱門技術(shù),找一份自己滿意的高薪工作。