不滿現狀,三年逆襲拿下BAJTM高薪offer,自律的Java程式設計師到底有多可怕
15年畢業,計算機專業出身,對軟體開發很感興趣,所以畢業找工作的時候就一直投IT行業的職位。剛踏入這個行業時,以為突擊一下東拼西湊的面試材料,就能有個很好的收穫。結果卻是,別說大公司了,就是很多看不上的小公司的筆試題都過不去。
焦躁階段
後來我去了本地的一個小公司去做服務端的開發。雖然叫服務端開發,但其實就是做系統指標監控功能,從DB中讀取一些指標資料,透過圖表的形式展現在瀏覽器中,所用的技術無非就是Spring MVC那一套。 這種CRUD的工作內容做時間長了,就純粹是體力勞動了,技術視野沒辦法開啟。
即使寫這麼簡單的功能程式碼,卻還總是被leader批評,說我 寫的程式碼質量太差,配不上這幾千塊的工資。人總是要臉面的,為了改變這種狀況,就開始想著如何在平凡的工作中把事情做到極致,開始關注程式碼質量,開始真正的啃起了 《Java程式設計思想》、《effective java》、《設計模式》這些書。
同時強迫自己在程式碼開發前,多畫一些架構圖、資料流程圖,寫程式碼的時候也強迫自己程式碼分層,經過半年的磨鍊,漸漸的也能寫出一些松耦合高內聚的程式碼,也改變了滿屏if-else亂飛的現象。leader也不再說我程式碼差了,還給我漲了幾百塊錢(知識就是金錢)!
開啟見識階段
當時我以為這就是優秀程式設計師的核心能力,就鼓足勇氣去投了一些大公司的職位,卻沒收到一個面試邀請函。後來投了幾個小公司的面試,收到了面試卻沒收到offer,因為有的面試題我根本沒有概念,比如:
相比關係型資料庫,NoSQL的優勢在哪裡,你們在什麼場景下會用到?分析日誌裡存的都是賬號登陸資訊,一天100G左右,找某一時間段內登陸次數最多的一個賬號你們的併發量有多大,對於雪崩現象是如何規避的?
這些問題讓我意識到:語法與設計模式只是程式設計師基本技能而已,要想進一步發展,必須在 資料結構、高併發、分散式技術等方面提高。最開始學習的時候是很艱難的,基礎弱,加上工作中又沒有這些技術的使用場景,所以只能在論壇、部落格等看零碎的文章,進步比較慢。
要想系統的學習,圖書和網路課程是比較好的選擇。我買了諸如《 java併發程式設計實踐》、《 大型分散式網站架構設計與時間》、《 Spring Cloud與微服務構建》等書,來來回回看了好幾遍。然後在網上看了些影片,有免費的,也有收費的。我還花了近半年時間系統性地學習了一套課程,學完之後對Java相關的技能有了更為體系化的瞭解。同時, 對於非科班出身或基礎知識不夠紮實的工程師來說,也可以有效起到查漏補缺的作用。
之後我就試著在工作中利用這些技術,當時的狀態就是“拿著錘子後,看到哪裡都是釘子”,學到一個新技術後,就想強行用在任何專案上,leader有時候說我瘋了,可我覺得也不必鄙視這種經歷,凡事都有一個認知過程,這也是一種積累。
知識深化階段
大概17年下半年,我就投了一些大的網際網路公司職位,比上次好一點,有一些公司給我了面試邀請,但最後卻都還是沒收到offer。
後來覆盤一下面試問題,發現我在整體技術面上回答得較好,但在細節技術點上,有點吃力,比如面試官問:
聊一聊你對JVM的原理,如何減少Full GC的情況?訊息佇列如何保證順序消費?如何保證at least once特性?資料是透過push還是pull方式給到消費端,各自有什麼弊端?如果消費失敗,可能是哪些原因引起?如果是因為網路原因引起,該如何解決?
通俗的話來講,就是雖然我見識了各種各樣的輪子了,也知道各種輪子適合在什麼樣的路上跑,但不知道為什麼適合。針對這種情況,結合已有的知識體系,選擇了一個方面進行了深入,我當時選的是訊息佇列的深入研究,從網路協議、服務端訊息儲存、客戶端消費、各種異常情況的處理等都摸了一遍。
這個過程我會針對每個環節進行假設反問,如果這一步失敗了,會發生什麼情況,該如何處理?這種思維培養了我對技術問題細節思考的能力,現在看來真的是受益匪淺。
18年上半年,我又去試了大公司的面試,雖然過程磕磕絆絆,但是面試官覺得我思考問題還是挺全面的,潛力比較大,因此最後收到了待遇豐厚的Offer!
逆襲路上的3點體會
為什麼我會一直執念於要去BAT之類的大型網際網路公司工作?除了因為薪水誘人,更是因為能有大規模分散式的技術可以挑戰。
回首三年來的升級打怪之路,從15年畢業後,能到成為頂尖網際網路公司的資深Java開發工程師,不免感慨良多。如果說讓我給大家分享幾點心得,那以下的3點應該是我近兩年來最大的感觸:
跳出舒適圈,找到目標是前進的起點。如果你在自己當下的工作中無法接觸太多的新技術,可以嘗試多去外面公司面試,這能在一定程度上幫助自己找到學習的目標;
跳槽要趁早,杜絕成為溫水裡的青蛙。對於想跳槽到大公司的同學來說,一定要趁早。因為同樣的水平情況下,大公司更會看中「潛力」—— 年齡越大,潛力越小;
始終保持你的學習欲。對於工程師來說,學習永無止境。但埋頭苦學是不夠的,你要注意自己的學習一定要有系統性,除了手頭的專案和身邊“大牛”的指導外,看書和網路課程是最有效的方法,用少量的金錢換取寶貴的時間,是非常值得的。
如果你依然覺得有些茫然,那麼以下的福利很適合你,有自己個人學習規劃的可以忽略,但是期待提升自己技術棧的也可以看看(文末彩蛋)
針對大型網際網路企業所整理出來最適合工程師們學習的一套正確方向!
關注新增助理VX:MXW5308 即可免費獲取文末學習資料
1.阿1巴巴的資料庫連線池druid
2.阿里巴巴Dubbo+Zookeeper註冊中心
3.阿里巴巴MyCat分庫分表
4.pushlets推送技術
5.Linux作業系統下shell程式設計
6.Redis快取技術(session統一管理案例實現)
7.引入介面聯調過程
8.支付寶和微信支付
9.支付中的掉單處理
10.處理常見超賣問題
11.網際網路金融專案的撮合業務系統
12.網際網路金融專案的滿標稽核、散標釋出
13.訊息佇列ActiveMQ的具體應用
14.樂觀鎖、悲觀鎖、分散式鎖
15.介面安全方案
16.叢集環境下的定時任務
17.分散式檔案系統FastDFS
分散式檔案系統儲存合同檔案
18.NoSQL&MongoDB&Cassandra
19.HttpComponents
21.20FreeMarker/Velocity
22.SpringBoot
23.Log4j2.
24.效能調優
25.JVM調優
26.Java程式效能最佳化
27.Tomcat
28.Mysql
29.Spring IOC
30.Spring AOP
31.Spring MVC
32.Spring 5新特性
33.Mybatis
34.分散式架構
35.架構核心服務層技術
36.架構關鍵技術設施
37.分散式訊息通訊 非同步於MQ
38.分散式快取
39.Redis
40.Memcached
41.MongoDB
42.資料儲存
43.高併發分流技術Nginx
44.分散式解決方案
45.微服務架構
46.團隊協作開發
效能調優
JVM調優
Java程式效能最佳化
Tomcat
Mysql
應用框架原始碼解讀
Spring IOC
Spring AOP
Spring MVC
Spring 5新特性
Mybatis
分散式架構專題
分散式架構思維
架構開發基礎
架構核心服務層技術
架構關鍵技術設施
分散式訊息通訊 非同步於MQ
分散式快取
Redis
Memcached
MongoDB
資料儲存
高併發分流技術Nginx
分散式解決方案
微服務架構
團隊協作開發
工程化+框架原始碼
效能調優+併發程式設計
微服務專題
分散式框架+專案實戰
如果你對以上知識點能掌握到一定程度那麼進入BAT不是什麼大問題!
{附}個人總結收集到的一些面試資料圖以及針對上面技術錄製的精講進階架構影片資料
高頻面試題答案文件獲取,掃一掃即可免費獲取
(影片教程+面試寶典+pdf書籍+筆記+學 維導圖 )
Java進階架構師影片教程:
程式設計師必備演算法教程:
Java面試教程合集:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985897/viewspace-2728820/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式設計師逆襲《遍地黃金》程式設計師
- 程式設計師必備Python技能!不會?究竟有多可怕....程式設計師Python
- 程式設計師逆襲應具備的7大技能程式設計師
- 逆天程式設計師,6 天面試了 6 家矽谷頂級公司並拿下 6 份 Offer !程式設計師面試
- 當一個java程式設計師到底有多難Java程式設計師
- 程式設計師到底有多累,有多辛苦?程式設計師
- java程式設計師|超詳細面經(四面一總結),助你逆襲!Java程式設計師
- 【揭祕】高薪,單身,苦逼,這就是中國程式設計師生存現狀?高薪程式設計師
- 最新最全JAVA程式設計師拿高薪祕訣Java程式設計師高薪
- 高中畢業,我想去看看-屌絲程式設計師的逆襲之旅程式設計師
- 如何突破Java程式設計師三年的門檻Java程式設計師
- 程式設計師如何輕鬆引起獵頭公司的注意,並拿到高薪offer,逃不過這8條定律!程式設計師高薪
- 程式設計師從offer不斷到無人問津,多麼痛的領悟!程式設計師
- 進大公司拿30K+到底有多難?一名開發三年的Java程式設計師陳述Java程式設計師
- 從網癮少年到網管,再到程式設計師,看他的逆襲路,哭了……程式設計師
- 【原始碼分享】讓黑馬程式設計師逆襲的仿騰訊 IM 專案原始碼程式設計師
- 面試半月無滿意offer,這個Android程式設計師直呼“被現在的公司害了”面試Android程式設計師
- 逆襲職場,有風變程式設計就夠了程式設計
- 高薪Java程式設計師職業發展規劃指南高薪Java程式設計師
- 年輕程式設計師最需要學什麼?自律!程式設計師
- 程式設計師高薪盛宴背後:程式設計師其實正在消失?程式設計師高薪
- 秋招失利被撈!捲土重來決戰阿里4面成功拿下offer,附上我的逆襲經驗!阿里
- 二三線城市的程式設計師如何走向高薪?程式設計師高薪
- 春招來襲!程式設計師如何拿下矽谷頂級公司200萬年薪?程式設計師
- 羨慕程式設計師的高薪?你會讓你的孩子當程式設計師嗎?程式設計師高薪
- 【學員分享】0基礎老男孩培訓五個月,完美逆襲,收穫滿意的Offer!
- 6年的程式設計師還不會寫委託很嚴重?不會封裝才叫可怕!程式設計師封裝
- 這些程式設計師到底有多搶手?真相在這裡…程式設計師
- Java程式設計師不喜歡Golang的地方 - GavinJava程式設計師Golang
- 一個低學歷程式設計師開發逆襲大廠的心路歷程,看完真心給跪了程式設計師
- 從大齡程式設計師現狀聊聊出路程式設計師
- 程式設計師高薪盛宴背後:未來有哪些程式設計師會被淘汰?程式設計師高薪
- 程式人生|從網癮少年到微軟、BAT、位元組offer收割機逆襲之路微軟BAT
- 程式設計師到底有沒有必要考研程式設計師
- 中外程式設計師到底有啥區別?程式設計師
- 程式設計師到底有沒有女朋友?程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 程式設計師必看的書之Java程式設計師程式設計師Java