主頁 > 後端開發 > 程式人生|從網癮少年到微軟、BAT、位元組offer收割機逆襲之路

程式人生|從網癮少年到微軟、BAT、位元組offer收割機逆襲之路

2020-11-09 14:37:45 後端開發

有情懷,有干貨,微信搜索【三太子敖丙】關注這個不一樣的程式員,

本文 GitHub https://github.com/JavaFamily 已收錄,有一線大廠面試完整考點、資料以及我的系列文章,

引言

今天給大家分享一個我的讀者的故事,這個故事很長,從游戲boy到offer收割機,從富士康到百度再到微軟,國內知名大廠的公司他都拿了一遍offer,

這當中有太多心酸和努力,在他的身上我也能看到一些自己的影子,希望大家可以從他的文章里有所識訓,有所感悟,

話不多說,我們來聽他的故事,

正文

國慶節的第一天,自習室里已經沒有什么人了,窗外,西安的秋天飄一點點雨,坐在電腦前心情十分平靜,想在這個難得的閑暇里,想起記錄一下自己這些年的經歷,也是給自己留一點以后可以回憶的故事,

個人2014年入學,武漢某大學計科相關專業,學科評估200名開外,

大一上學期一門專業課差點掛科,直接奠定了無法保研的局面,開始渾渾噩噩混了兩年,除了高數上下,其他能逃的課基本都用來列印雄聯盟了,

16年升大三的暑假,一個偶然的機會看到隔壁院的師兄發在群里的一條實習招聘,是武漢富士康招聘軟體測驗實習生,

暑期崗位,能簽實習證明,有班車來學校接送,一天還有220工資,我覺得這是個很好的機會,起碼富士康這個廠也算有些名氣,能賺個實習經歷還有點工資,

我向師兄報了名,簡歷里面特別注明了大學C語言92分,班級第二,簡歷通過的還算順利,也沒有面試,直接就讓去了,

當時負責的任務主要是Windows 10 SP1的多國版本測驗任務,跟我以為的進去的寫代碼相差甚遠,就是個黑盒測驗吧,或者再說直白些,就是點點點的無腦操作沒什么技術含量,

不過由于是對接外企,所以任務都是英文下達的,有時候翻譯還是得花點功夫,英文能力倒是得到些許鍛煉,測驗需要自己組裝機器,選擇各型號的cpu和顯卡等配件,

因為是第一份實習,我學習的非常認真,直到現在我仍然能夠閉上眼睛,清晰完整的回憶出一臺整機的拼裝全程序,

CPU的引腳,記憶體條的金手指和各式各樣的SATA線束是那段時間接觸最多的東西,

機器點亮后就開始做DASH(從服務器上下載測驗版本的系統并安裝),然后是激活系統開始對照著測驗用例展開測驗,

差不多兩個星期之后,常規的操作已經比較熟練了,任務也顯得逐漸無聊了起來,由于DASH的程序很漫長,我經常會在三樓到四樓的樓梯口望著窗外的太陽,不知道是哪個有趣的同事在窗臺用礦泉水瓶養了一個小葉子,我看著這抹綠色總是很舒服,

富士康的生活很規律,八點半到工位,五點半出公司,日復一日的裝配著各種方案讓我在想,以后我要從事這種枯燥但是輕松的作業嗎? 想了想還是寫代碼做需求比較有意思,

由于本科學校不太好找作業,而我自認代碼能力還可以,所以我決定通過考研來獲得一個更好的教育背景或者說,一個讓公司能夠看上的背書,

image-20201019231955243

大三暑假正值備考,跟我關系不錯的老師給了我一個機會,說有個師兄在美團,想把我的簡歷推給他,我當然很激動,花了一下午的時間準備了一份簡歷:xx學校,計算機專業,主語言java,曾經做過xx校園app的后端功能以及一個在線OJ評測網站... ...

簡歷發給了老師,一天,兩天,一個星期過去了,老師說那邊認為簡歷還是太單薄了,不能發起面試,

那天我感到一陣失落,我以為起碼能有個面試機會,結果卻是簡歷都過不了,

我對自己的代碼水平還是比較有信心,但恰恰是這種信心帶給了我更大的失落,我生氣的跟舍友說,以后絕對不去美團,他求我去我都不去,這當然是一個大話,只是孩子心氣地不肯承認罷了,

考研歷時五個半月,還算順利地通過了初試復試,來到了西安的一所高校開始了研究生階段的學習,

那時候有同學說,一個叫位元組跳動的公司能開很高的工資,不過對演算法題的要求很高,

這也是我第一次聽說位元組跳動,研究生的課和本科其實沒有太大的區別,至少對我來說都是不怎么聽的進去的(當然也有部分非常優秀的課程,這是后話了),

但我在課上發呆的時候,慢慢地卻不會再去想我要怎么操作我的英雄站在兵線前面干掉對面的玩家,LOL至今都沒時間再玩了,時不時看看比賽倒也對青春有個交代,

研究生階段無聊的時候,一般我會打開牛客網,在上面做幾道題目,看著各種計算機網路和作業系統的知識,總覺得自己永遠也學不完了,在瀏覽討論貼的程序中,我漸漸發現網友會去做一些演算法題的訓練,一般在leetcode上,我也隨之注冊了這個網站,全英文的界面讓我覺得很有范,

沒多久我就決定要開始我的刷題之路,我仍然記得第一題好像是求兩數之和,其實這個題目我在備考時的九度OJ上做過,感覺應該難度不算太大,磨了一些邊界之后,當一個綠色的Accept出現在眼前,我覺得這種感覺就像是我用XX√√√完成了一局BO5晉級賽,

于是我的生活變得更簡單了,能逃的課就在寢室和圖書館刷LEETCODE,不能逃的課就在課上刷LeetCode,我盡量保持在一天6+的題量,有時候會做到10+,我喜歡看到登錄界面上的綠點連成一片的樣子,

不過由于課程作業和考試原因,有時候也會中斷好一會,我非常清楚的記得在一個下雪的午后,我完成了在Leetcode上的第一百個Accept,那一題調了兩個小時,是LRU置換演算法的實作,我激動的發了一條朋友圈,拍下100/1300的標記,

我覺得我好像會離位元組這樣的公司近一點了,在刷題的程序中我也會穿插著學習一些計算機網路的東西,主要是為了應付面試,搜索的資料很雜,大部分來自博客和B站,

包括在刷題的程序中我看的演算法視頻也是在B站搜羅的盜版,主講人是左程云左神,也是我心目中永遠的真神,那一版的視頻左神的桌面還是齊天大圣飄著紅色披風的背影,后來在北京時期我補上了欠左神的正版課,這也是后話了,

研一暑期我也開始投一些公司的實習,我驚奇的發現,大部分的筆試都攔不住我了,反正基本沒有因為筆試掛過的公司,也拿到了一個不錯的機會,但因為一些原因未能成功去實習,

后來看著同學們都出去了外面的公司實習,我的心里又開始癢癢了,打開牛客網,翻查著有限的實習資訊,看到一個愛奇藝的招聘機會,

一輪大概50分鐘左右的面試,主要是針對OJ專案,后面問到了Java例外機制,泛型的實作,FutureTask的實作思路,以及一些執行緒池的問題,執行緒池這個我沒用過所以就說不會,

當天晚上八點,面試官問我公司在北京,能不能來實習,我想都沒想就說地點絕對不是問題,于是我定了第三天最早的一班高鐵,花了一天的時間收拾東西,其實我不是為了帶走什么,只是要把它們放在朋友那里,

我帶走的只有一個背包,里面放了兩天的換洗衣物,我的各種證件,一小盒谷維素(改善失眠)和一本深入理解Java虛擬機,我覺得做Java的人,這個東西帶在身上就很有安全感,有信仰陪著我,雖然我從來也沒有翻開過,

房子是在高鐵上租的,轉租的人是個位元組跳動的運營,地點就在人大旁邊,離愛創大廈很近,

我還記得當時我的leader在做完新手教程后,就過來幫我搬電腦,帶我整理工位,簡單的交代了一下之后,就慢慢的開始了開發流程,

第一次進入大公司實習,第一次來到首都北京,紅綠燈前等待的全部都是清一色年輕的面孔,有那么一個瞬間我恍惚地看到,斑馬線變成了律動地音符,而這個城市年輕人的心跳就是它的節拍,

我喜歡早上騎著師兄傳給我的美利達,再放一首Young For You, 我覺得我就是屬于這個時代的年輕的人兒,

作為新人,要學習的東西很多,一般我會十點半以后下班,而且我喜歡前緊后松,所以會把心中的工期排的靠前一點,

我驚訝于自己學了一年沒學懂的Spring框架在公司搗把搗把竟然就能上手一些專案了,這種學習的速度是我從來沒有想過的,

周末我也會在公司趕需求或者自我學習,累了就去對面吃一個麥當勞甜筒,有時候也會去咖啡廳坐會,那通常是因為我解決了一個困擾很久的Bug.雖然在愛奇藝的生活很充實,但是心中還是有一份大廠夢,

19年的國慶,整整八天我都呆在公司看著各種位元組跳動的面經和演算法題,只要有一題我覺得我可能不能100%實作,我都會上Leetcode立馬把它AC掉,

行內的朋友可能知道這是怎樣的痛苦,因為一道題有思路和真正穩穩地實作它,中間的差距實在太大了,

7號的晚上,我坐在電腦前,關上所有的頁面,打開Eclipse,花一分鐘或者幾十秒擼了一發快排,測驗用例直接寫在main里,一把過,我關上了電腦回家,

這是我自己的習慣,每逢大戰,我都會在最后以一個快排收尾,因為當年就是這個代碼斷了我的保研路,開發的時候我用的更多的是IDEA,但是寫演算法題我只用Eclipse, 因為演算法題對依賴環境的要求很低,基本上有個JDK就足夠,

而我是個戀舊的人,所以我把自己最擅長的方面,留給我的老朋友Eclipse,

結果并不像程序一般順利,也不是每個幸運都會眷顧努力,

12號一天兩個公司面試,分別在早上10點和晚上7點開始,紫金數碼園成為了我永遠的痛,我記得他們問的都是比較深入的問題,諸如TCP,UDP能不能綁在同一個埠,Java的執行緒底層是如何實作的,TCP和IP的詳細報文結構,報頭,行程切換的背景關系到底包括什么,哪些暫存器,CFS演算法如何實作的等等,

最后我實在煩了,我說我就不會作業系統,他又問了個字串匹配演算法,我給他詳細的講了KMP的實作,然后他讓寫個樹的深度遍歷,我火一下子上來了,我覺得你可以掛我,但是不要用這種簡單的東西來拖一下面試時間讓我體面的離開,

我就說:這個東西太簡單了,我不想寫,你可以問個難點的,

他讓我寫Linux的定時器演算法,我想了很久,沒想出來,事實上我都沒聽過這個東西,自己設計了一個類似哈希表的結構希望來存放這些定時任務,他表示搖頭,我知道今天就到這里了,

現在回想起來,我并沒給到面試官足夠的尊重,多少年少輕狂了點,

image-20201019232124720
image-20201019232124720

直到最近這個月,我開始認真的閱讀深入理解Linux內核,才明白當時我到底錯在哪(當然時間輪演算法是我在第二天就去看了的),

位元組的面試是在晚上,七天的努力好像什么效果也沒有,因為我準備的面經基本一點也沒被問到,

走在中關村大街上,我覺得今天有點格外的冷,只能把耳機的聲音調的再大一點,寶石老舅的Disco讓我的情緒稍微得到了一些緩和,

細心的朋友可能發現,那天的面試有兩場,這個機會說來很巧,我某次跟同學提到我想換個更大的廠,她說百度給她打過電話面試,是個私人號碼,她自己已經有公司了所以不想面試,

我意識到這是個機會,招聘資訊里面大部分是郵箱或者作業電話,其實聯系的成功率并不高,但是這種私人電話基本是點對點,中間不存在郵箱這種輪詢或者作業號碼背后的一層Nginx,

我直接把號碼撥過去,詢問對面是不是需要招收實習生,表明了自己的學校和來意,希望對面能安排一個面試機會,

答復是肯定的,我特意要求在跟位元組同一天,這樣子免得我需要頻繁請假,所有才有了一天之內位元組和百度的兩次面試,

來北京的第一個星期我就去拜訪過百度大廈,西二旗地鐵的一側靜靜躺著一個熊掌,當我近距離看到這個標志的時候心中翻起的是澎湃和向往,

?

不過這次的面試在百度科技園,如果說大廈給我的感覺是大氣,那么科技園就是真正的氣勢恢宏,

回字型的無限大標志由七棟大樓構成,K2和K1的連廊接在三樓,直接跨過了一個雙向車道,面試的整體程序比較順利,給我的面試體驗也非常好,面試官會針對我簡歷上的技術堆疊由淺入深的進行詢問,有些原理還會給我講解,

三輪面試一共做了四個題,剛好打在了我的強項上,分別是最短編輯距離,最長回文字串,變態跳樓梯和樹的最長直徑,我把這些題全部通關,中間還在百度食堂吃了個飯,

面試耗時3個半小時,到我出公司的時候已經是下午兩點半了,

我非常感謝百度,不僅僅是因為它給了我實習的機會,更多的是對我這樣一個要強的人來說,一天內連續掛掉兩家公司的局面可能真的是無法接受的,

特別是位元組的面試讓我覺得毫無還手之力,在這種情況下,熊度就顯得格外可親,

進入百度是一個新的開始,我需要做的事情很多:學習一門新的語言,學習服務器上的開發,學習百度的一些內部工具以及...學習使用Mac,

在這些需求里面我直接砍掉了Mac的學習,把重心放在了語言和Linux上,具體的做法是我向Mentor提出把Mac換成ThinkPad,

我Mentor奇怪地跟我說:大部分人都是Windows本想換Mac,很少有你這樣Mac想換Win的,我就笑笑說我時間不夠用,

其實很巧的是我的Mentor也是ThinkPad,而他的技術非常強,是我們組絕對的實力擔當 ,我覺得我技術路線的盡頭應該就是我Mentor的樣子,白天我看公司內部的各種檔案,八點半下班以后我會花兩個小時看Linux視頻,并且做一些筆記,因為我覺得在作業時間看視頻總給人一種在偷玩的感覺,

十點的西北旺還是燈火通明,出了科技園會看到旁邊的網易,新浪和騰訊北京,我順著騰訊的大樓先走到馬連洼地鐵站,回中關村的地鐵一共要倒兩趟,然后再從蘇州街走回人大,

通勤時間大概在一小時四十分鐘,所以到家一般都是十一點多了,我經常會在樓下的KFC買個吮指原味雞或者雞米花,靜靜地坐著吃完再回去洗澡睡覺,

期間我也想過換個住處,但是想了想,現在的房子地段很好,各種生活用品和娛樂都很多,西北旺那片還是有些冷清,還是算了,

還有一個原因是我特別喜歡人大,我在任何一個地方租房都喜歡租在學校旁邊,校園的景色和人文氣息都讓我很舒服,

在百度的周末我一般也用來學習,通常是花一天的時間看Linux,另外一天去公司看檔案,我看的書是Linux編程手冊,這是我一個大牛同學推薦給我的,他初中就開始玩Linux,在社區比較活躍,

很難想象我這么一個不愛學習的人能靜下心來看一本大部頭的書看一下午,最深的原因是,我在北京有個漂亮的女同學,我一般都會喊她陪我在她們學校的自習室看一下午,然后去吃個飯看個電影啥的,如果這我都看不進去的話,那我真的不知道該說對不起誰了,

那段時間可能是我在北京最快樂最回憶的時光,每當地鐵報站到了芍藥居的時候,我都會有些悸動,

我們一起去過中關村的店,后海的店,印象最深的是第一次在萬泉河的一家西餐廳,

那天她穿黑色的裙子,化了妝,坐在西餐廳的白色桌布前,我直接想到了十年以后,天是那么藍,花靜靜躺在路邊,我覺得我一定要好好寫代碼,成為一個厲害的人因為... ...

這樣規律的日子我過了大概有三個月,也是我在百度呆的大半時間,我每周最大的期待就是周末可以看書的時光,因為去別人學校學習知識當然讓人快樂啊,

百度樓下的蛋糕店有很好吃的慕斯蛋糕,有時候我會六點就下班,然后大概一個多小時通勤給同學帶一個吃,因為這個蛋糕到六點以后基本上就買不到了,

不過很認真的說,我能堅持看Linux很重要的原因也是在位元組的面試給我的打擊太大了,讓我認識到我在Linux這塊就是一片空白,并且作業中確實遇到了相關的問題,有一次我做了一個定制化的HDFS上傳程式,fork的時候在父行程中沒有wait,導致服務器上產生了大量處于僵死狀態的行程,

這些行程的執行流已經結束了,可是由于父行程未對它們進行最終處理,導致行程號一直被占用,久而久之可能會影響到服務器上其他行程的pid分配,

還有我們的HDFS資源比較有限,處理的資料量很大,大家的MR任務和Spark任務都在一個HDFS空間上,細碎的檔案很多導致INode被占用的很嚴重,有時候還有磁盤,卻沒有足夠的INode能分配了,導致任務執行失敗等等,后來這種類似的問題我都在Linux編程手冊中找到了對應的知識點,也讓我越來越認識到它的重要性,

差不多兩個月之后,我對Python和服務器上的開發已經有了一點點認識了,也開始接了一個新的專案,這個專案在作業計劃上的執行人其實是我Mentor,不過他比較忙,我看了下這個活應該可以做,我就接了下來,專案的具體內容在此不方便多提,但是這個專案讓我真正的接觸到了很多開發中的交流,合作,踩坑,出坑,設計等等等等,

印象最深的是來自Google回應報文里面一個隱式編碼的問題,Chunk協議在一些報文中會被使用,用作資料交流格式的標準,

Google的回應報文中使用了這種編碼,卻沒有顯式地宣告出來,我在對報文進行了DOM樹構建和重寫之后,改變了報文的字符數,而Google用一個16進制的數字宣告了這個長度,這個細節直接導致所有被我篡改的報文均不能在瀏覽器端被正常決議,表現為無限等待的界面,

這個Bug我足足改了七天,中間有一天我已經無限接近這個答案了,我把一個疑似表示長度的十六進制數進行了還原,想看看它是否指代長度,坑爹的是在服務器上看到的長度是位元組數,中間涉及到編碼的問題,而這個16進制數指代的是字符數,中間的差值讓我一直不敢確定這個是代表長度(其實就算知道了也不可能改對,因為中文字符的位元組數在UTF-8下是不同于字符數的),

在這個開發周期中我熬過最多的夜就是這個時期了,以至于之后的需求性開發我都很輕松的完成,因為我覺得應該沒有比這個Bug更加難弄的情況了(中間還有其他的問題,比如URL編碼例外,Gzip的隱式刷流,開源庫的DOM化缺陷,但是這些慢慢處理就好),

這期間最讓我印象深刻的是在我解決了這個問題之后一天的晚上,隔壁組對接的開發過來問我的經歷我是今年的新同事嗎,作業多久了,

經理哈哈大笑,說“怎么樣,xx牛*吧”,隔壁的開發說確實很不錯,我經理又補了一句“xx是我們的實習生”,隔壁的開發驚訝了說“我以為xx都早作業了”,

我全程背對著他們,那一刻我靠在椅子上,他們看不到我嘴角咧起的笑,我很喜歡看程式員生涯記錄之類的小說,《瘋狂的程式員》里面這樣子寫道“很多時候,我們開發一個專案,做一個需求,加班,熬夜,干耗,不是為了趕某個工期,或者是任務完成后領導給的拿一筆錢,更重要的是,我們享受這種克服萬難,成人所不能的感覺,這種感覺跟錢是不一樣的東西”,

正是這樣子的瞬間,讓我在程式的世界里真正的發現了自己,

故事直到這里,好像都跟微軟沒什么關系,可能有些朋友很想看如何去微軟的程序,但是我個人覺得此處實在是乏善可陳,同時這個事情本身也沒那么重要了,

一月下旬我從北京回湖北過年,沒幾天就遇到了疫情,在老家被輾轉著隔離,家里也有親人感染,可以說整個二月都是在隔離中度過,心里的壓力更多來自對親人健康的關心,到了二月中旬,情況漸漸好轉,基本處于康復期了,恰逢學校群里有人發布微軟春季實習生招聘,我就發了簡歷,

二月下旬開始,我在隔離的地方用手機開著熱點,抱著公司的ThinkPad開展了新一輪的征程,

實習期間大量的開發任務確實很難抽出時間做這種集中式的復習,這次刷題我的目標很明確,牛客上的劍指Offer和LeetCode148一題不漏全部寫完,

其實之前已經實作了大概80%,但是剩下的20%無疑是更加麻煩的,中間穿插著各種DP的訓練,還是老規矩,AC才算過,刷累的時候會去整理在愛奇藝和百度的專案,它們的需求點,難點和結果,

這中間還有天在群里吹水,跟人吵起來AVL和紅黑樹哪個更難,我為了證明紅黑樹更難還專門花了半天去實作了一個可用的AVL,

寫的時候我內心已經是很平靜了,記得大學剛學樹的時候,我覺得這種代碼只能靠背,而且還背不下來,

到現在,這種東西只是去看一遍它的思路,然后在心中大概的復現一次,遇到有問題的點就停下來詳細想想,一個資料結構無非ADT和對應的增刪改查,然后再想想哪塊的代碼可以復用,抽離出來,

接下來就是各種邊界和小case,頭一天晚上我看到兩點鐘,把全部的思路復現了一遍,第二天起來吃完隔離點送過來的早飯就開始寫,直接在記事本里面開始進行實作,然后微調了下,過我自己的case,沒啥磕絆就完成了,

后面的微軟面試一共做了五個題,最后一面的leader說我對邊界條件的分析很到位,是她今天面試的所有人里面最全面最準確的,我當她給了個好訊息吧,

同年的四月,我在師弟的幫助下,再次進行了位元組跳動的面試,一下午三面過關斬將,也在不久之后收到了位元組跳動的意向書,

坦白來說,這個時期的我心中已經沒有了什么波瀾,不會特別高興,也不會再對哪家公司產生特別的展開追逐的那種意愿,一來我已經呆過好幾個公司了,那種大公司的憧憬和新鮮感對我而言已經沒有那么大的吸引力,同時我也開始認為,一個程式員,他的目光不應該全部放在對哪家公司的追求上,

第一,我們服務于我們具體的業務和相應的技術,具體的業務是比公司這種平臺性的東西更加值得討論的,

第二,追求公司的本質是希望自我的提升,在這種前提下更應該把精力放在如何精進自己的技術水平上,因為公司本身并不能成為一個努力的方向和路線,它只是一個結果,

最后,又是一年的國慶,還是坐在電腦前,閉上眼睛,一路的回憶像浮光搬掠過眼前,

我喜歡看別人故事的原因是,幾千個字的篇幅其實寫盡了這個人很長的一段經歷,浮浮沉沉,故事中的低潮可能在幾行文字中就輕描淡寫的過去了,讀者喜歡去看走出這個低潮再見陽光的感動,其實對這個人來說,這一段恰恰是最難熬最難經歷的一段,

我們看著故事中的人,好像自己也會離開這樣的谷底,真實的說,這個故事中應該花大篇幅描述的難過我都略去了,

許多面試時候被否定的環節,被問到啞口無言的時刻,丹棱街SOHO微軟大樓明滅的紅光,冬天寒冷的西北旺東路到萬泉河路海淀中街,愛奇藝十點半下班回去還在床上抱著電腦看一兩個小時博客的那種追逐,西二旗人頭多過Integer.MAX_VALUE的地鐵站,一道題一個Bug困整整一個下午的糾結,二月新冠疫情落在家庭的恐慌,隔離時期對于家人的擔心,老家甚至沒有Wifi的手機熱點面試,包括出來實習需要頂住的學業壓力,

我把這個故事記錄下來,是因為我喜歡《瘋狂的程式員》里面的絕影,Boss絕,我想成為他那樣的程式員,一個執著于代碼,純粹于代碼的程式員,

本科期間我有些想做的事情未能完成,大三的時候武漢一個比中興還低的本地的國企IT公司我都覺得很不錯了,而時至今日我已經去過好幾家大型互聯網公司實習,拿遍了頭部互聯網的Offer,亦或者去到微軟,

這些東西其實我在那時候并沒想過,但是我也更加沒想過絕對到不了今天,在晚歸的中關村大街上,我經常會想到一首歌《奉獻》,這是電影[飛馳人生]的主題曲,長路奉獻給遠方,歲月奉獻給季節,我拿什么奉獻給你,我們經常提起奉獻,卻很少真正理解奉獻的樣子,

對啊,到這一步,做到純粹,更多的是熱愛帶來的奉獻,我不是要執著于哪個Boss,或者執著于哪個公司,我是執著于我所熱愛的程式,我所熱愛的行業,

因為熱愛,所以我不計回報,所以我做到比自己更多一點,因為喜歡,所以回憶里更多的是那些奉獻與努力的時刻,

再回望去年隨便收拾了兩件衣服就踏上北京的自己,有些面試官聽到我這個經歷的時候會先大笑一下,然后說這樣子是否有些冒進,也有些面試官因為這個性格將我掛掉,但是我已經過了那種因為別人評價感到疑問的階段,如果再給我一次機會選擇,或者說再給我一百次機會選擇,在愛奇藝的那個電話里給的回復也還會是YES,

因為年輕,就是有無限的可能,青春就是不設限的,

阿里的招聘頁面上有句話:If not now, when? If not me, who? 官方給出的翻譯是“此時此刻,非我莫屬”,我覺得差點意思,

時不我待,舍我其誰,

2020年10月3日于西安

寫在最后

故事結束了,但是屬于這個少年的未來才剛剛開始,

其實這個故事結尾最好的并不是他收到了多少offer,而是他終于找到了這份作業對于他的意義,找到了自已真正熱愛的事業,單從這一點來說,他就已經成功了,

而當他拿到那些曾經遙不可及的大廠offer之后再回首,那些在暗淡時的迷茫困頓卻不屈不撓用力生長的經歷,每一秒都熠熠生輝,

我是敖丙,你知道的越多,你不知道的越多,我們下期見,

文章持續更新,可以微信搜一搜「 三太子敖丙 」第一時間閱讀,回復【資料】有我準備的一線大廠面試資料和簡歷模板,本文 GitHub https://github.com/JavaFamily 已經收錄,有大廠面試完整考點,歡迎Star,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/207945.html

標籤:Java

上一篇:手寫一個 Redis 客戶端,So easy~

下一篇:050_面向物件

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more