用了2年6個月11天,從屌絲外包到阿里的逆襲之路

 

前言html

估計有同窗會有疑問,爲何要精確到天?是爲了裝逼嗎?程序員

答:僅僅是爲了證實咱的嚴謹(其實就是爲了裝逼)面試

確定有同窗內心會吐槽:真的是外包嗎?估計又是個標題黨,吹牛逼,*&¥%¥數據庫

答:真的是外包哈,可是不是阿里的外包。是某傳統外包公司,主要作項目外包。還有就是若是從我離職的那天算起,應該是2月3個月24天。2年6個月11天是從我這條鹹魚忽然萌生了想翻身的想法那天算起,拒絕作標題黨(づ ̄3 ̄)づ編程

當一條鹹魚多好,怎麼忽然想不通,想要翻身了?多線程

答:併發

外包也有厲害的,你是否是菜的沒那麼明顯?框架

答:我當時連成員變量是啥都不知道,要比菜沒怕過的。高併發

面經都發了那麼久(19年8月),如今才寫這篇文章,最近半年也沒有技術文章(水文)產出,是否是墮落了,又過上鹹魚的日子了?源碼分析

答:其實19年就想着要寫這篇文章,但願能幫助到那些跟曾經的我同樣的同窗(鹹魚)們,當時想着是找個有空的週末!有空的週末!有空的週末!寫一下,結果到今年5月還沒寫,剛纔業務還打電話找我對需求(週六),已經被榨乾。。。

文章介紹的修仙教程適合全部人嗎?會不會走火入魔?

答:本教程僅適合單身狗修煉,有家室者請勿偷偷修煉,不然一切後果(輕則吵鬧不休、雞犬不寧,重則妻離子散...),本人概不負責

我公交車都快到站了,你還不開始?

答:好嘞,容小弟爲大爺您細細道來

正文

修仙第一步:煉體(菜鳥期)

首先,我到網上搜了一堆 Java 基礎面試題,啥也不說,先背了個幾天幾夜,這個方法看似粗暴,實在暗藏玄機。

當時的我菜的很真實,不少基礎概念都不懂,背面試題能讓我快速掌握 Java 核心基礎知識。

放到如今來看,對於 Java 初學者,我仍是建議能夠採用此方法,由於面試題基本都是比較重要的內容,也能起到必定的篩選做用,避免初學者漫無目的的學習(瞎搞)。

有些人可能會以背題爲恥,垃圾才背題,我纔不背,我要裸面,展現本身的實力。

結果大機率是二面掛、一面掛、簡歷篩選掛,而後默默的背題,而後。。。

我我的以爲背題其實挺正常的,大部分人的平常工做基本就是CRUD,不少面試的知識點平常基本都用不到。我一個QPS不到10的系統,你問我高併發、熔斷、降級、秒殺系統的設計?

在阿里,大多數人要出去面試時,我相信即便不是背題,確定也要溫習準備一段時間 。阿里內網還有個老哥寫了篇文章「那些年,爲了進阿里背過的面試題」,截至目前獲得487個點贊,1755個收藏。。

背完基礎面試題後,估計有些同窗已經膨脹了,以爲本身很能打了,就出去面試了,而後出去大機率被面試官一頓瘋狂操做,最後收到那句已經聽過無數遍的話:今天的面試就到這,若是有結果咱們會再通知您。

小結:該階段主要作兩件事:1)幫助本身快速掌握 Java 的核心基礎概念;2)全部第二階段要系統學習的東西在這邊都要了解個大概,至少要知道核心概念。

通常花1個月左右的時間學習,能學習的時間有公交車上、地鐵上、午休、晚上下班後、週末、帶薪拉????時,能利用的時間都要利用起來。可能有同窗說週末要陪女友,女友?不存在的。

修仙第二步:練氣(學徒期)

熟悉了 Java 的核心基礎概念後,第二階段咱們要開始系統的學習一些 Java 核心知識點:集合、IO、反射、併發、鎖、多線程、數據庫原理、JVM基礎、經常使用中間件(Dubbo、Kafka、Redis、Zookeeper)核心原理和框架(Spring、Mybatis、SpringBoot、SpringCloud)核心原理等。

學習方式我建議以看源碼和看書爲主,看博文和看視頻爲輔。可能有的同窗據說要看源碼就懵了。

看源碼是吃一手飯,其餘幾種方式是吃別人嚼過的飯,別人的東西咱們沒法保證其質量,所以仍是優先吃一手飯。另外,看源碼是對本身學習能力的一種鍛鍊,剛開始痛苦,可是摸清套路後,其實也沒那麼難,而且會讓本身受用終身。

剛開始看源碼的話我這邊牆裂推薦 ArrayList,ArrayList 比較經常使用而且很簡單,很是適合初學者。

JDK1.8 中 ArrayList 的源碼有1400多行(註釋估計佔了一半),可是咱們不須要所有看,咱們只須要看其中重要的內容:基礎屬性、構造方法、get 方法、set 方法、add 方法、remove 方法、擴容方法等。

看完 ArrayList 以後再繼續看它的老婆類 LinkedList,面試中這2個類通常會被拿來一塊兒問。看完這兩個類的源碼後,再結合源碼看看面試中會問的題目,這個知識點基本就掌握的差很少了。

看完 ArrayList 後,估計有同窗又膨脹了,源碼也不過如此,渣渣。

這時候建議能夠開始看複雜一點的,優先推薦 HashMap,HashMap 是如今面試中被問的最多的基礎知識點應該沒有之一,HashMap 的源碼比 ArrayList 複雜的不是一點半點,再加上 JDK 那寫的賊不規範的源碼,看着就腦袋疼。

固然,一手飯當然香,可是難度會比較大,因此咱們也要適當吃一些二手飯(軟飯,阿姨,我不想努力了)。

若是要吃二手飯,咱們也要有選擇,否則你吃到的可能不是飯,而是泔水。在這些中,書通常比較有保障,特別是那些豆瓣評價不錯的書都是通過不少人檢驗的。還有就是一些堅持原創的優質公衆號/博客,例如公衆號程序員囧輝(老臉一紅)。

看書的話,我當時最早看的是那本在大學時候買的,被我墊在枕頭下面,陪伴了我無數個夜晚的《Java 編程思想》,可是說句實話,我我的感受這本書不是很適合初學者讀,給我帶來的幫助也沒那麼大,因此若是時間不是不少的話,我這邊不推薦先看這本書,可是用來墊枕頭仍是香的,賊厚。

我看過的書中,在這個階段,我我的推薦的是:《Java 併發編程的藝術》、《Java 併發編程實戰》、《深刻理解 Java 虛擬機》(最近出了第三版)、《Redis設計與實現》。當時的我仍是個小菜雞,可是讀這幾本書,並不會以爲有讀不下去的感受,所以我以爲適合在這個階段去讀。

小結:本階段的學習是持續不斷的,在這個階段咱們主要把一些重要的知識點進行了系統的學習,夯實本身的基礎,提高本身的知識廣度。

源碼學習集中在 JDK 源碼(JDK 1.8),其餘的主要是學習其核心原理。若是不知道某個知識點的核心原理,則能夠對照着面試題去學,面試題問的通常就是核心的東西。

若是你當前在外包公司或者是一些傳統公司,修煉完本階段以後,能夠嘗試先跳一波。從外包直接跳阿里也不是沒有,可是少。所以,咱們要先找一個平臺來看成跳板,最好是獨角獸,就是喊出來你們至少能知道有這麼個公司的。

修仙第三步:築基(入門期)

本階段主要在第二階段的基礎上,進一步提高本身的知識深度和項目實踐。說的直白點就是提高本身的亮點,讓本身在面試時有裝逼的資本。

本階段咱們會挑選一到兩個經常使用的中間件或框架,來深刻學習其源碼,例如:Spring、Mybatis、SpringBoot、SpringCloud、RPC(Dubbo、gRpc、公司自研)、MQ(Kafka、RocketMQ、公司自研)、Redis、Zookeeper、JVM、數據庫中間件(TDDL、MyCat)等。

JDK 源碼直接肉眼看的話問題不大,可是若是你直接肉眼看中間件和框架源碼的話,你會知道什麼叫作殘忍。比較合理的的學習方法是反覆debug源碼+作筆記,我通常是把源碼下載到本地,而後直接在源碼上作筆記。

除了源碼,本階段另外一個重要的內容是要提高本身的項目亮點。估計大部分同窗在面試時都被問到過這個問題:你在項目中有什麼亮點嗎?此時本身心裏的OS是:我TM一個QPS不到10的項目,有個雞兒亮點。

若是你的項目自己就有高併發、大數據量的狀況,那麼找亮點應該不難。不然,咱們能夠從如下幾個方向去找:1)比較複雜的場景方案設計;2)系統穩定性保障方面的設計:限流、熔斷、降級等(6位數的密碼保護2位數的存款);3)線上問題的排查和解決:死鎖、宕機、Full GC 頻繁等。

除了列舉的這幾個,還有不少其餘的,只要咱們在碰到項目難題時,能迎男而上,找到本身的項目亮點是順其天然的事。

小結:本階段主要是集中於提高本身的知識深度和項目中的亮點。讓本身在面試的時候,能有裝逼的資本。可是切記,裝逼要把握好尺度,切勿過火,畢竟咱們是來討飯恰的,不是來裝逼的。

總結

修仙之路很苦,無數個寂寞的夜晚,無數的誘惑(馬路對面的洗腳城是我不敢奢求的夢)。若是能堅持下來,我相信大多數人都能輕鬆的討一口飯恰,混我的模狗樣也是頗有可能的。

可是要堅持下來真的不容易,囧輝如今回憶起那無數個寂寞的夜晚,眼角不由溼潤了。

有同窗可能會有疑惑,修仙不是有十層,怎麼只介紹了三層?

答:小弟才疏學淺,自認爲目前在第四層修煉中。

怎麼判斷本身有沒有走火入魔?

答:若是你以爲本身在這過程當中學到了很多東西,可是發現不懂的東西更多了,說明你大機率是走在正確的修仙路上,祝你們早日修成正果。


若是對軟件測試有興趣,想了解更多的測試知識,解決測試問題,以及入門指導,
幫你解決測試中遇到的困惑,咱們這裏有技術高手。若是你正在找工做或者剛剛學校出來,
又或者已經工做可是常常以爲難點不少,以爲本身測試方面學的不夠精想要繼續學習的,
想轉行怕學不會的,均可以加入咱們644956177。
羣內可領取最新軟件測試大廠面試資料和Python自動化、接口、框架搭建學習資料!

 

囧輝你變了,你不再是那個安靜的美男子了。

答:聽到這句話,囧輝的眼角又一次溼潤了。囧輝曾經勵志要作一個有骨氣的技術博主,不搞花裏胡哨的,可是後來偶然的機會囧輝回看了一篇本身1年前的博文時,心裏的OS是:這是什麼狗屎,又臭又長。

所以,後續囧輝在創做時,會盡可能避免通篇源碼分析,儘可能以更通俗易懂(騷氣)的文字和圖片來呈現。

越努力,越幸運。老鐵們的【在看】是囧輝創做的最大動力。

相關文章
相關標籤/搜索