中小公司的Java工程師應(yīng)該如何逆襲沖進(jìn)BAT?

(1)80% Java工程師都有的迷茫

這篇文章,跟大家聊一聊很多很多很多人問我的一個(gè)問題:中小公司的Java工程師應(yīng)該如何規(guī)劃準(zhǔn)備,才能跳槽進(jìn)入BAT這類一線互聯(lián)網(wǎng)公司?

之所以我用了三個(gè) “很多” 來形容這個(gè)問題,是因?yàn)閷?shí)在這個(gè)問題太普遍了,因?yàn)閲鴥?nèi)Java工程師至少好幾十萬,但是在國內(nèi)互聯(lián)網(wǎng)大廠里干過的碼農(nóng)可能也就十分之一,或者五分之一的比例。

所以,其實(shí)這個(gè)也是符合28法則的,少部分人在大廠里干過,發(fā)展的很好。但是大部分人還是在中小型公司,或者外包類傳統(tǒng)IT公司里工作。

這些同學(xué)可能對自己的技術(shù)成長,職業(yè)發(fā)展感到非常的迷茫,自己有點(diǎn)追求,也想去一下大廠,但是又不知道怎么規(guī)劃。

開始本文之前,同樣強(qiáng)調(diào)一點(diǎn):像這種講職業(yè)規(guī)劃發(fā)展的文章,有可能很多同學(xué)會以為是廣告。但是這篇文章,筆者特意聲明:?純干貨、非廣告?。

因?yàn)槲覀€(gè)人在國內(nèi)幾個(gè)最大的互聯(lián)網(wǎng)公司先后有著十余年工作經(jīng)歷,面試和招聘過大量各種水平的開發(fā)人員。包括初、中、高級開發(fā),技術(shù)專家,高級技術(shù)專家,都面過。

同樣,也指導(dǎo)過很多同學(xué)的職業(yè)發(fā)展規(guī)劃,看過大量的同學(xué)不順利的職業(yè)發(fā)展,所以打算從我個(gè)人的角度來聊聊這個(gè)問題:中小公司的同學(xué)應(yīng)該如何一步一步實(shí)現(xiàn)逆襲進(jìn)入BAT。

我相信以下情形很多同學(xué)應(yīng)該都有類似體會:一直徘徊在各種中小公司里開發(fā)一些沒技術(shù)難度的Java系統(tǒng),主要就是CRUD。

哪怕是用了用MQ、緩存、分庫分表,但是也沒什么并發(fā)量,數(shù)據(jù)量也不算特別大,自己的技術(shù)成長極為緩慢。

然后就是三五年,七八年,甚至十多年,職業(yè)發(fā)展和技術(shù)水平都停滯在這個(gè)狀態(tài),無法有更進(jìn)一步的發(fā)展。

隨著現(xiàn)在寒冬到來,到處裁員,中年碼農(nóng)的危機(jī),加不動班,體力越來越差,孩子壓力越來越大,對自己何去何從很迷茫。

有一些同學(xué)是一直徘徊在那種中小型互聯(lián)網(wǎng)公司里碰到上述情況,有一些同學(xué)是在一些外包類的IT公司里碰到上述情況。

(2)你的技術(shù)為啥十年八年都無法進(jìn)步?

先來搞清楚一個(gè)問題,你的技術(shù)到底為什么十年八年都無法進(jìn)步?

拆解一下,你的能力集中在哪幾塊:

技術(shù)廣度

·?對MQ、緩存、NoSQL、大數(shù)據(jù)、高并發(fā)、高可用、微服務(wù),等一系列的相關(guān)技術(shù)都有一定的了解,熟悉常見功能

·?在自己的項(xiàng)目里落地使用過,有一定的技術(shù)使用經(jīng)驗(yàn)

這可以解釋為技術(shù)廣度。

技術(shù)深度

·?讀過Kafka的底層源碼?

·?對消息中間件的架構(gòu)設(shè)計(jì)思想有深刻的理解?

·?對分布式事務(wù)框架/中間件的架構(gòu)設(shè)計(jì)有過研究?

·?在每秒百萬并發(fā)場景下做過底層系統(tǒng)的深入優(yōu)化和故障處理?

如果你有類似這種過人之處,那么你才能說你有某些技術(shù)深度。

項(xiàng)目經(jīng)驗(yàn)

·?你有沒有整體負(fù)責(zé)過幾億注冊用戶,幾千萬日活用戶的大規(guī)模、高并發(fā)、分布式、高可用、高復(fù)雜度的系統(tǒng)架構(gòu)設(shè)計(jì)?

·?或者你負(fù)責(zé)的一直都是那種公司內(nèi)部使用的,幾十個(gè)人用的OA系統(tǒng),CRM系統(tǒng)?

這些就是你的項(xiàng)目經(jīng)驗(yàn)

團(tuán)隊(duì)管理

·?你在互聯(lián)網(wǎng)公司里帶過20的團(tuán)隊(duì)?

·?或者你在一個(gè)傳統(tǒng)IT公司里帶過3個(gè)人的小組?

這都是你的團(tuán)隊(duì)管理經(jīng)驗(yàn)。

拆解過后,再來看看,如果你在一些小型互聯(lián)網(wǎng)公司,或者是做一些傳統(tǒng)軟件開發(fā),為什么技術(shù)無法進(jìn)步?

其實(shí)道理很簡單,可能你的公司推出了一款A(yù)PP,但是不好意思,用戶量總共就100萬,日活用戶就10萬人。

那你覺得你的系統(tǒng)有技術(shù)挑戰(zhàn)嗎?沒有。

既然沒有技術(shù)挑戰(zhàn),你把系統(tǒng)搞那么復(fù)雜干嘛?或者你的架構(gòu)師搞那么復(fù)雜干嘛?不需要。

大家簡單做一做,主要crud寫一下功能,最多現(xiàn)在spring cloud流行了,上一下拆成微服務(wù)的就夠了。

然后這套系統(tǒng)就穩(wěn)定支撐你公司的業(yè)務(wù)了,那你接觸不到很大的技術(shù)挑戰(zhàn),所以技術(shù)進(jìn)入停滯狀態(tài),不是很正常么?

或者你做一些傳統(tǒng)的軟件開發(fā),比如說建筑類軟件,辦公自動化軟件,類似這種的??偣簿蛶资畟€(gè)人用一個(gè)系統(tǒng),或者幾百人用,那你就更是如此了。

可能都不需要spring cloud,直接單塊系統(tǒng),單機(jī)部署,就是在里面填充業(yè)務(wù)代碼就好了。

所以根本原因,就是很多同學(xué)平時(shí)的工作環(huán)境,他沒有什么技術(shù)挑戰(zhàn),所以只要把系統(tǒng)技術(shù)做的簡單一些,低成本就可以支撐公司業(yè)務(wù)了,那既然這樣,當(dāng)然技術(shù)就進(jìn)展很緩慢了。

然后可能你工作了八年十年,技術(shù)廣度還可以,對流行的技術(shù)自己都看過一些書,簡單用過,玩過demo。

你的項(xiàng)目經(jīng)驗(yàn)積累了不少,但是都是一些各個(gè)傳統(tǒng)領(lǐng)域的系統(tǒng)業(yè)務(wù)理解較為深刻,沒有極高技術(shù)挑戰(zhàn)的項(xiàng)目經(jīng)驗(yàn)。

有的人工作時(shí)間長,可能就是帶過一些人,有過一些帶團(tuán)隊(duì)的經(jīng)驗(yàn),能管人。

大概就是如此了,每次換工作,還是只能換類似的公司,干類似的技術(shù),依然沒有進(jìn)步,依然是類似的項(xiàng)目經(jīng)驗(yàn)。

所以大伙兒先梳理清楚,迷茫的根源究竟在哪里。

(3)追求卓越,自己設(shè)立技術(shù)挑戰(zhàn)

通常來說,我個(gè)人站在公司角度是很反對架構(gòu)的過度設(shè)計(jì)的,因?yàn)槠桨桌速M(fèi)很多時(shí)間,而且很多架構(gòu)過度復(fù)雜沒有必要。

但是如果是站在個(gè)人的職業(yè)發(fā)展角度而言,那么你的leader必須要有對技術(shù)追求卓越的思維?;蛘吣闶莑eader的話,就得有對你的團(tuán)隊(duì)技術(shù)追求卓越的品質(zhì)。

什么叫追求卓越呢?

舉個(gè)例子,現(xiàn)在你開發(fā)了一款辦公自動化系統(tǒng),服務(wù)了某個(gè)公司,幾百人在用,那么技術(shù)一般,就是一個(gè)單塊系統(tǒng),直接Spring MVC + Spring + MyBatis就搞定了。大家都做著沒意思。

好,現(xiàn)在leader為了大家的幸福和未來,咬咬牙說:

幾個(gè)月后,大家研發(fā)了一套系統(tǒng),完成了測試,系統(tǒng)集成了緩存集群、MQ集群、分庫分表技術(shù),還有很多其他的一些東西。

這個(gè)時(shí)候領(lǐng)導(dǎo)就想辦法了,能不能跟老板建議一下,咱們就把產(chǎn)品做成SaaS云的模式呢?然后是不是可以就把這套系統(tǒng)給部署到生產(chǎn)環(huán)境里去?

到此為止,就通過一個(gè)例子,給大家闡述了一下,自己在公司里,如何通過想辦法不斷的追求系統(tǒng)的卓越,提高研發(fā)效率,支撐也許可能會存在的更高的并發(fā)量,更多的數(shù)據(jù)量,盡可能把系統(tǒng)做的更好一些。

多想想為了解決自己設(shè)想的一些技術(shù)挑戰(zhàn),如何盡可能把一些業(yè)界常用的技術(shù)都學(xué)習(xí)一下,比如緩存、消息、分布式、微服務(wù)、大數(shù)據(jù),等等。

然后都盡可能進(jìn)行相關(guān)的實(shí)踐,積累相關(guān)的項(xiàng)目經(jīng)驗(yàn)。

實(shí)際每個(gè)人在落地的這個(gè)過程的時(shí)候,方式肯定是不一樣的:有的人也許人微言輕,只能對自己負(fù)責(zé)的模塊設(shè)想一些技術(shù)挑戰(zhàn),然后只能自己在本地拉一個(gè)公司代碼分支,嘗試對這些分支加入一些技術(shù),自己練習(xí)思考。

還有的人,可能是個(gè)小leader,無法左右公司產(chǎn)品發(fā)展方向,但是可以盡可能跟上級溝通,闡述自己對系統(tǒng)架構(gòu)追求卓越的一些構(gòu)想。

然后,爭取到一些時(shí)間,盡可能把系統(tǒng)多融入一些技術(shù),給做的好一些。

每個(gè)人都有每個(gè)人的方式,但是?歸根到底一句話?:如果你本身工作沒有技術(shù)挑戰(zhàn),那么盡可能多給自己設(shè)立一些挑戰(zhàn),多學(xué)一些技術(shù),多做一些嘗試和實(shí)踐。

這總是可以盡可能幫助你在一定程度上提高技術(shù),擴(kuò)展技術(shù)知識的。

在這個(gè)階段,我見過最多的人犯的最大的一個(gè)錯(cuò)誤就是:覺得自己這樣倒騰一些技術(shù)是沒用的,沒有實(shí)際的真正的經(jīng)驗(yàn)。

然后他們著急忙慌,心浮氣躁,自怨自艾,總想著必須得先進(jìn)一個(gè)好的公司,才能鍛煉技術(shù)。

實(shí)際上,這是一種很浮躁的想法,你要進(jìn)好的公司鍛煉,你必須先打磨一下自己的技術(shù),然后才能有資本去一家更好的公司。

(4)幻想一步登天?那只是你的黃粱美夢

很多人多學(xué)了一些技術(shù),有了一些經(jīng)驗(yàn),很容易開始有點(diǎn)膨脹,老是想著一步登天,一下子就進(jìn)入BAT。

關(guān)于這個(gè),其實(shí)是有類似的一些成功經(jīng)歷,比如有的人是大專學(xué)歷,通過自己的努力學(xué)習(xí),加上一些機(jī)緣巧合,直接一下子就從中小公司跳入了BAT。

但是就現(xiàn)實(shí)情況來看,不是每個(gè)人都一定可以一步登天,復(fù)制這個(gè)經(jīng)歷的。

在你學(xué)習(xí)了一些技術(shù),同時(shí)自己多做了一些嘗試,積累了一定的經(jīng)驗(yàn)之后,此時(shí)應(yīng)該做的是:做最壞的打算,抱最好的希望。

你完全可以去試試BAT的面試,TMD的面試,盡可能去爭取機(jī)會,但是如果沒面上也無所謂。

你可以降低期望,人只要跟自己比就好了。

比如說你現(xiàn)在在某小型的傳統(tǒng)外包軟件公司,那么接下來如果你能面進(jìn)一家小型創(chuàng)業(yè)互聯(lián)網(wǎng)公司,有個(gè)幾百萬用戶量,日活用戶有幾十萬,比之前的公司技術(shù)挑戰(zhàn)多一些,用的技術(shù)也更多一些,那么你就可以去了。

只要你每一步跳槽,都比之前好,都讓自己有進(jìn)步,那么整體的大方向就是沒錯(cuò)的。

也許你先進(jìn)一個(gè)創(chuàng)業(yè)型互聯(lián)網(wǎng)公司,然后下一家就可以進(jìn)入一個(gè)市值幾十億美金的上市互聯(lián)網(wǎng)公司,再下一步就可以進(jìn)入BAT。

在這個(gè)階段我見過很多人犯的?最大的錯(cuò)誤?就是:老是覺得自己剛學(xué)了一點(diǎn)東西,就必須立馬進(jìn)大公司。

這些同學(xué)往往心態(tài)著急的不行,而忽略了自己的學(xué)歷、背景、經(jīng)驗(yàn)導(dǎo)致了起點(diǎn)較低。能立馬進(jìn)BAT當(dāng)然很好,但是有時(shí)候機(jī)緣巧合緣分沒到,進(jìn)不去也正常。

在這個(gè)階段最需要做的,就是跟自己比,別跟別人比,只要每一次跳槽都比上一次好,公司更大,薪資更高,職位更高,技術(shù)挑戰(zhàn)更大,就可以了。

(5)不斷提升自己,最后進(jìn)入BAT

一旦你開始做到跳槽進(jìn)入一家比之前更好的公司,有更高的技術(shù)挑戰(zhàn),那么公司本身的技術(shù)挑戰(zhàn)就會促使你快速成長,還是舉個(gè)例子吧。

比如說你本來就在做傳統(tǒng)軟件的開發(fā),用的都是單塊系統(tǒng)涉及的一些技術(shù),就是簡單的spring mvc、spring、mybatis等技術(shù)做CRUD的業(yè)務(wù)開發(fā)。

但是呢,你通過追求卓越,自己業(yè)余不停的學(xué)習(xí)技術(shù),然后對自己負(fù)責(zé)的一些模塊多設(shè)立了一些技術(shù)挑戰(zhàn),自己構(gòu)思了很多更高挑戰(zhàn)的場景下,可以給自己的模塊加入哪些更高階的技術(shù)。

接著你帶著自己學(xué)習(xí)的一些技術(shù),還有積累的一些實(shí)踐經(jīng)驗(yàn)和思考,進(jìn)入了一家創(chuàng)業(yè)型互聯(lián)網(wǎng)公司。

這家公司的好處就在于,互聯(lián)網(wǎng)公司技術(shù)氛圍更好,比如zookeeper、redis、rocketmq、sharding-jdbc,等各種技術(shù),在公司生產(chǎn)環(huán)境的系統(tǒng)里,都有落地和使用。

那么你此時(shí)是不是就不用停留于一些技術(shù)挑戰(zhàn)的構(gòu)思,可以開始真正做一些有點(diǎn)技術(shù)挑戰(zhàn)的工作了。

但是,此時(shí)你還是需要繼續(xù)不停的學(xué)習(xí)技術(shù),學(xué)習(xí)更多的架構(gòu)上需要的技術(shù),深入的學(xué)習(xí)技術(shù),同時(shí)積累實(shí)踐經(jīng)驗(yàn)。

然后帶著這份工作經(jīng)歷,同時(shí)加上你不斷加強(qiáng)的技術(shù)學(xué)習(xí),你進(jìn)入了一家比如30億美金估值的獨(dú)角獸公司。

這家公司有2000萬用戶,日活用戶達(dá)到百萬級,高峰并發(fā)量可以過萬,每天數(shù)據(jù)庫里日增數(shù)據(jù)量達(dá)到了數(shù)十萬。

此時(shí)你開始真正接觸一些所謂的:高并發(fā)、高可用、高性能、海量數(shù)據(jù)的實(shí)際處理。

基于你開發(fā)的業(yè)務(wù)系統(tǒng),你開始更多的實(shí)踐,同時(shí)你還對各種涉及到的技術(shù)有了更加深入的研究,比如對一些核心中間件系統(tǒng)進(jìn)行了源碼級別的閱讀和研究。

最后你終于等到一個(gè)機(jī)會,BAT里某家公司讓你去面試,經(jīng)歷了四五輪面試之后,對方給了你一個(gè)offer,是年薪40萬的高級Java工程師的職位。

然后你進(jìn)去之后,可以在最頂尖的互聯(lián)網(wǎng)公司里學(xué)習(xí)開發(fā)流程、規(guī)范、架構(gòu),接觸到最大規(guī)模的用戶量,每天都有解決不完的技術(shù)挑戰(zhàn),在這個(gè)過程中,你又可以繼續(xù)成長。

最后可能你再次跳槽,就可以進(jìn)入TMD中某一家,拿下技術(shù)專家的offer,在大公司里拿下技術(shù)專家的職位,帶一個(gè)團(tuán)隊(duì),達(dá)到人生第一個(gè)巔峰。

接著你再跳槽,可能一些創(chuàng)業(yè)公司就開始挖你去做一些技術(shù)管理層。

大家別以為這個(gè)僅僅是筆者捏造的一個(gè)故事,在筆者指導(dǎo)過的同學(xué)中,確實(shí)有同學(xué)按照這個(gè)路線,實(shí)現(xiàn)了人生的逆襲!

(6)最后的寄語

最后,送大家一句話:?九層之臺,始于壘土;千里之行,始于足下?。

這里面最難的就是開始的那一步,也就是大量的人都停留在一些完全沒太多技術(shù)含量的技術(shù)工作的情況下,這個(gè)時(shí)候是最難熬的。

其實(shí)只要能把第一步走好,自己拼命的積累技術(shù),努力跟其他工程師競爭,技術(shù)遠(yuǎn)超跟自己同情況的其他工程師,那么你就有機(jī)會率先脫離這種困境,開始慢慢第二步,第三步。

到了后面,就是讓公司的技術(shù)挑戰(zhàn)push你不斷努力和進(jìn)步,最后進(jìn)入BAT這類一線互聯(lián)網(wǎng)公司。

最后

如果你對技術(shù)提升很感興趣,歡迎工作一到五年的Java工程師朋友們加入Java高級架構(gòu):617912068

群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時(shí)間來學(xué)習(xí)提升自己,不要再用"沒有時(shí)間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個(gè)交代!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容