2年6個月11天,外包到阿里的修仙之路

目錄

前言

正文

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

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

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

總結


前言

估計有同學會有疑問,爲什麼要精確到天?是爲了裝逼嗎?

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

肯定有同學心裏會吐槽:真的是外包嗎?估計又是個標題黨,吹牛逼,*&¥%¥

答:真的是外包哈,但是不是阿里的外包。是某傳統外包公司,主要做項目外包。還有就是如果從我離職的那天算起,應該是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 頻繁等。

 

除了列舉的這幾個,還有很多其他的,只要我們在碰到項目難題時,能迎而上,找到自己的項目亮點是順其自然的事。

 

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

 

總結

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

 

但是要堅持下來真的不容易,囧輝現在回憶起那無數個寂寞的夜晚,眼角不禁溼潤了。這邊有本武林祕籍可能對堅持學習有一點幫助:如何養成學習的習慣,希望能助你成功。

 

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

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

 

怎麼判斷自己有沒有走火入魔?

答:如果你覺得自己在這過程中學到了不少東西,但是發現不懂的東西更多了,說明你大概率是走在正確的修仙路上,祝大家早日修成正果。

 

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

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

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

 

越努力,越幸運。老鐵們的【點贊】【轉發】是囧輝創作的最大動力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章