近期畢設(shè)差不多已完成,現(xiàn)在可以開始補上這兩個月見計劃寫但沒寫的文章了??
緣起
還要從去年年底說起涧黄。那會兒快放寒假了漓帚,大四上學(xué)期即將結(jié)束母债。我的時間還算充足,就想著抓緊時間提高一下自己的技術(shù)尝抖。但是仔細思考過后毡们,發(fā)現(xiàn)自己并沒有一個擅長點前端還沒入門,Java 相對熟悉點昧辽,之前做過幾個課設(shè)都是用 Java 編寫 Swing 界面衙熔。。搅荞。C++ 大一學(xué)的红氯,后面再也沒碰過,連語法都忘得差不多了咕痛。
這就是意識不行的后果啊痢甘,很多人四年的狀態(tài)都是大一自由發(fā)揮??,大二玩到 high 起??茉贡,大三苦逼考研??塞栅,大四渾渾噩噩??。我還算幸運的腔丧,雖然大一大二也是懵懵懂懂放椰,沒在技術(shù)上下功夫,但是好在后來沉下心來學(xué)習(xí)愉粤,最終有個研究生讀砾医。之前聽說過一句話,大意是說技術(shù)不好的才去讀研究生科汗,給自己更多的時間學(xué)技術(shù)。這話有一定道理绷雏,因為現(xiàn)在越來越發(fā)現(xiàn)時間真的很少头滔,在工作以后更是如此,想擠出時間學(xué)習(xí)提高真是難上加難涎显。在學(xué)校雖然雜事不少坤检,但是如果你想學(xué)習(xí)的話時間還是夠的。所以在學(xué)校期間一定要好好抓緊時間期吓,這不是一句空話早歇。可惜包括我在內(nèi)的很多人意識到這一點的時候已經(jīng)比較晚了。
但是種一棵樹最好的時間是十年前箭跳,其次是現(xiàn)在啊晨另,雖然意識得晚,但好歹還有幾個月的時間才畢業(yè)谱姓,還不快抓緊時間=枘颉!屉来!于是從寒假前大半個月開始路翻,我選擇了自己相對有那么一丁點優(yōu)勢的 Java 方向,開始學(xué)習(xí)茄靠。
當(dāng)時想的是寒假找個互聯(lián)網(wǎng)公司實習(xí)茂契,這樣進步應(yīng)該很快了。于是慨绳,在過了一遍 Java 基礎(chǔ)知識以后掉冶,我就開始在牛客網(wǎng)上找實習(xí)崗儡蔓。于是看到了一家公司叫字節(jié)跳動郭蕉,感覺很強誒,抖音都是他們出的喂江。要不先試試這家吧U傩狻(現(xiàn)在回想起來,自己真的是 too young too naive获询,一開始就這么頭鐵涨岁,還是宇宙條,要知道他們的面試難度可是僅次于阿里的吉嚣。梢薪。。其實最好應(yīng)該先找?guī)讉€小公司面試鍛煉一下尝哆,邊面試邊調(diào)整并查漏補缺)
經(jīng)過精心挑選崗位秉撇,最終投了七八個日常實習(xí)崗位,有的是后臺開發(fā)的秋泄,有的是服務(wù)器端開發(fā)的琐馆。然而不到半天,就發(fā)現(xiàn)自己投的崗位紛紛黃了恒序,簡歷關(guān)都沒過瘦麸,只剩下兩個崗位。兩天后歧胁,突然收到了 HR 的電話滋饲,約面試時間厉碟,掛了電話以后感覺可激動了!于是立馬開始準備面試相關(guān)的東西屠缭。我先是在殴抗模客網(wǎng)上各種查面經(jīng),然后把它們都整理下來勿她,開始像復(fù)習(xí)考試一樣背密密麻麻的知識點袄秩,什么 GC,虛擬機逢并,并發(fā)與線程啥的之剧,先背起來再說!
然后就看到了趴沉模客網(wǎng)上的同學(xué)們對頭條面試難度的吐槽背稼,發(fā)現(xiàn)原來是這么難啊??還喜歡考算法,于是又專門把面經(jīng)里的算法題挑出來百度咋做玻蝌。還有人說要刷劍指 Offer蟹肘,但是我只有幾天的準備時間,哪有時間啊俯树,只能心慌慌地繼續(xù)背知識點和百度算法題思路帘腹。(現(xiàn)在回想起來,自己真的是 too young too naive许饿,復(fù)習(xí)可以說是毫無章法阳欲,沒有自己的計劃和安排。一般來說陋率,應(yīng)該先復(fù)習(xí)最重要的球化、最有可能考察的知識點,而不是看面經(jīng)瓦糟,因為上面的點太多太散了筒愚,有些問題還是根據(jù)簡歷項目問的,是因人而異的菩浙,其次算法的練習(xí)重在平時積累巢掺,臨時刷劍指 Offer 也有點幫助,但是似乎頭條的算法更多的是從 Leetcode 上找的劲蜻。陆淀。。)
被虐
終于到了視頻面試的時候了斋竞。面試官是個年輕的微胖小哥哥倔约,比較平和秃殉,能看出來是經(jīng)常敲代碼的坝初。(下面說的可能會有點遺漏浸剩,但是大部分我都還記得,現(xiàn)在都過去四五個月了v邸)上來先是一個自我介紹绢要,然后就是兩道算法題都不難,但我答得并不好拗小,磕磕絆絆重罪,最后在面試官的提示下才完全答對,手寫代碼也沒完全寫對哀九,調(diào)試了一會還沒調(diào)試出來剿配。。阅束。當(dāng)場就感覺自己涼了??面試題目如下:
1.給出一個單鏈表呼胚,求離尾節(jié)點距離是 k 的節(jié)點,要求時間復(fù)雜度 O(n)息裸,空間復(fù)雜度 O(1)
思路:兩個指針蝇更,一個先走 k 步,然后兩個一塊移動呼盆。注意處理特殊情況和邊界條件年扩。
2.給出一個數(shù)組,將其向后循環(huán)移動 k 位访圃,給出結(jié)果厨幻,要求時間復(fù)雜度 O(n),空間復(fù)雜度 O(1)
思路:通過循環(huán)讓兩個元素交換值就可以挽荠。注意處理特殊情況和邊界條件克胳。
3.有 100 只狼??和 1 只羊??,狼可以吃草但更喜歡吃羊圈匆,現(xiàn)有假設(shè):
(1)狼吃了羊會變成羊
(2)狼是聰明且理性的漠另,都想生存下來
問最初的那只羊會不會被吃
思路:這里面試官提示我如果是兩只狼,三只狼會怎樣跃赚,我還是沒想到笆搓。后來百度,如果是兩只狼纬傲,那么羊不會被吃满败,因為兩只狼都知道,如果自己吃了羊叹括,就會變成羊然后被對方吃掉算墨。但是如果是三只狼,那么羊會被吃汁雷,因為搶先吃了羊的狼知道净嘀,他吃了羊然后變羊报咳,剩下兩只狼不敢對他怎樣,這一點上面已經(jīng)說了挖藏。
4.解釋數(shù)據(jù)庫的索引及其使用場景
5.解釋數(shù)據(jù)庫的 inner join , left join
當(dāng)時感覺就是暑刃,看了一大堆網(wǎng)上的面經(jīng),準備了很多后臺 Java膜眠、操作系統(tǒng)岩臣、網(wǎng)絡(luò)相關(guān)的知識,感覺問的不到 1 % 宵膨。架谎。。而且可以發(fā)現(xiàn)辟躏,一面中考察的算法并沒有那么難狐树,更多的是看你的功底扎不扎實,有沒有考慮到特殊情況鸿脓,能不能完整地實現(xiàn)抑钟。還考察了一個邏輯分析的題目,可以說考察得很全面了野哭。只是我回答得不全面在塔。。拨黔。
不出意外的蛔溃,幾天以后收到了 HR 的不合適郵件回復(fù)。現(xiàn)在想想篱蝇,雖然一面就被虐贺待,但是我還是收獲了很多,知道了自己接下來努力的方向零截,也見識到了大廠的面試風(fēng)格麸塞。感覺自己還是挺幸運的,因為我的簡歷其實很一般涧衙,能有面試的機會就很好了哪工,沒準因為頭條缺人,才會邀請我面試弧哎。
不知不覺已經(jīng)寫這么多了雁比,這篇先寫到這里吧 : ) 下篇繼續(xù)分享之后的實習(xí)經(jīng)歷??