|
前段時間,有位讀者激動地跑來跟我說,進(jìn)字節(jié)了。 經(jīng)過和他一番的交流后,發(fā)現(xiàn)他的校招經(jīng)歷也是比較坎坷的,去年秋招不理想,面試屢屢受挫。 但是,經(jīng)歷完后秋招后,他就開始立馬反思面試的過程,以第三人稱視角去審視當(dāng)時的自己,從中發(fā)現(xiàn)自己的不足,然后制定好計劃逐個突破。 最終,在今年春招終于拿下字節(jié)的 offer。 別看我說的簡單,其實他中途被字節(jié)撈了六七次,這非常考驗面試者的心態(tài)。 所以,今天就由這位讀者來分享他的校招心得。 希望這篇誠意之作,能對未來找工作的人或者正在找工作路上的人一些幫助和指引,也是希望能使你們少走一些彎路。 基本情況先來說一下我的基本情況,我是西安某211高校電子科學(xué)與技術(shù)專業(yè)的研究生(非科班)。 本科學(xué)過計算機(jī)相關(guān)的一些課程,如計算機(jī)網(wǎng)絡(luò),操作系統(tǒng)。編程語言方面本科除了學(xué)過開設(shè)的 C 語言外,自學(xué)了 Python 和 C++。 研一抽空才開始對數(shù)據(jù)結(jié)構(gòu)和算法進(jìn)行了學(xué)習(xí),所以我覺得自己一開始就是個小白,一點(diǎn)點(diǎn)成長起來的。 另外,因為顧及到女朋友,找工作比較考慮地域,可能有一些小伙伴與我有相同的經(jīng)歷。 我在秋招的時候簽了深圳的 Shopee,但是當(dāng)時為了和女朋友在一個地方,春招又開始找工作,最后經(jīng)歷了一個月的努力,杭州字節(jié)上岸。 有小伙伴可能會問我,為什么秋招沒有直接找杭州的。 其實,我在秋招的時候也找了杭州的,但是當(dāng)時杭州比較好的公司我都沒過。。。 這里我來說一下為什么我秋招如此的失利(菜是原罪/(ㄒoㄒ)/~~)。 在秋招一開始,也陸陸續(xù)續(xù)投了一些公司,有大廠提前批,也有二線廠。 但是,當(dāng)時怪自己復(fù)習(xí)不充分,有時候因為代碼問題沒過,有時候因為基礎(chǔ)答得不好導(dǎo)致與后續(xù)面試無緣。 后來經(jīng)過多次得復(fù)盤,在基礎(chǔ)和代碼題下了很多功夫,但是還是面試失利。 后來在復(fù)盤時,我發(fā)現(xiàn)我與面試官交流比較少,比如當(dāng)面試官問我一個比較偏實際業(yè)務(wù)的問題時,我基本都是在那思考好久,中途也很少和面試官交流。 這就會顯得很尷尬,就好像你和一個人在聊天,另一個人突然掉線一樣。 即使你最后回答出來了,但是給面試官的體驗不太好。畢竟如果有幸進(jìn)了公司,就成了一起共事的同事,肯定會一起交流業(yè)務(wù), 技術(shù)問題。 如果面試官覺得你在面試中與他交流甚少,那么會給他一個暗示,就是你不想和他交流(也許這不是你的本意),最終 pass 你。 你要找什么工作?可能這一點(diǎn)上你會考慮很多,比如崗位,地域,平臺,收入等。這些都是秋招前可能就要考慮的問題,特別是崗位,更是決定了備戰(zhàn)復(fù)習(xí)的方向。 作為過來人,我會給一些自己的看法,但是最終靠你自己決定。 崗位是我最先想聊的。 一般大部分人都會選擇找的崗位是算法、后端開發(fā)、測試開發(fā)崗位。而像前端、客戶端開發(fā)(IOS/Android)也有一些人會去做。 個人感受每年這兩種崗位投遞的人數(shù)不如上述三個崗位多,尤其是今年的算法崗位和后端開發(fā)可以說是一片紅海。 這些崗位在校招過程中的難度系數(shù)是:算法 > 開發(fā) > 測試開發(fā) > 前端 = 客戶端開發(fā)。 其中算法主要分三個方向,難度如下:計算機(jī)視覺 > 推薦系統(tǒng)(機(jī)器學(xué)習(xí)、大數(shù)據(jù))> 自然語言處理。 以上提到的難度不是指技術(shù)難度,而是獲得心儀 offer 的難度。 大廠的 cv 崗神仙打架,算法今年諸神黃昏,更加上疫情影響,許多海歸學(xué)子也加入其中,可以說今年是找工作最難的一年。 所以,在這里我的建議就是,心中要先有一個目標(biāo)崗位,然后去針對目標(biāo)崗位的一些技術(shù)棧進(jìn)行準(zhǔn)備。 如果要找開發(fā)崗位的,扎實的學(xué)習(xí)完計算機(jī)基礎(chǔ)、數(shù)據(jù)庫、算法和數(shù)據(jù)結(jié)構(gòu)、設(shè)計模式以及 C++ 或 Java 等編程語言相關(guān)的知識,準(zhǔn)備一兩個項目,并且熟悉項目中所用技術(shù)的原理細(xì)節(jié)。 如果有小伙伴要找算法崗位的話,那么要把自己研究的領(lǐng)域吃透,并且在其他領(lǐng)域也要有所涉及一些。 簡歷篇作為一名在校生,在進(jìn)入校園的那一刻起就要想著怎么充實自己的簡歷,因為大家不可能用半年的時間來填滿自己的簡歷。 簡歷上的各項榮譽(yù)都是你在校期間的積累。簡歷里內(nèi)容主要有:個人基本信息、聯(lián)系方式、教育經(jīng)歷、成績、 掌握的技術(shù)棧、 科研項目經(jīng)歷、比賽經(jīng)歷、獲獎經(jīng)歷、發(fā)表論文、其它等。 一般簡歷上可手寫意向崗位,因為不同公司對崗位的叫法差距蠻大,不能每一個都打印意向崗位。此外簡歷打印最好是彩印,讓面試官看著舒服。 對于在校生,簡歷內(nèi)容最好在兩頁以內(nèi)(也即雙面彩印時,一張紙可完成)。 紙質(zhì)版簡歷一般在現(xiàn)場面試要攜帶,但在網(wǎng)上投遞公司時,通常是按照公司要求填寫個人簡歷,這個過程會十分繁瑣,一個公司可能要填半小時,著實費(fèi)心。 在這里推薦大家使用牛客簡歷助手插件,可以幫助你快速填寫電子簡歷。 下面主要說簡歷里的技術(shù)體現(xiàn)。 面試官看重簡歷里的什么? 這個問題你可以換位一下,如果你是面試官,你覺得哪些內(nèi)容能體現(xiàn)一個人的水平? emmm 據(jù)個人面試經(jīng)驗,簡歷上的閃光點(diǎn)排名及說明如下表: 希望上述表格對大家有導(dǎo)向作用,另外說一下簡歷上的一下注意點(diǎn): 第一點(diǎn),每個閃光點(diǎn)的描述上要包含:這個項目或比賽是什么、你負(fù)責(zé)了什么、用了什么技術(shù)棧、最終排名如何。 項目、比賽、論文每個里面要有至少有一個自己非常熟悉。據(jù)個人經(jīng)驗,面試官通常會這樣提問“你挑一個印象最深的項目/比賽講一下吧”。 所以你們自己要提前預(yù)演怎么回答這個問題,一定要預(yù)演一遍。 第二點(diǎn),簡歷上寫的任何技術(shù),你都要會。不會的千萬千萬不要寫,被問到就死翹翹了。 拿捏好用詞,比如「熟悉 C++」和「熟練掌握 C++」 程度上是不一樣的,只是剛?cè)腴T的技術(shù),我建議就不要寫了。 簡歷上你寫的任何技術(shù)棧,只要面試官熟悉,他基本上都會問你。 比如,你寫你懂 Docker,恰巧面試官會,那他不出意外肯定會問一些相關(guān)問題。 項目篇各位找工作的小伙伴一定很在意找工作時面試官是不是特別看重項目經(jīng)驗,這里請小伙伴聽我娓娓道來。 以我個人的面試經(jīng)歷,我其實簡歷上是沒有什么和研發(fā)類崗位相關(guān)的一些項目的,我簡歷上的項目基本都是在校期間做的科研項目以及一些比賽(計算機(jī)視覺相關(guān)比賽)。 我在一開始面試的時候?qū)掖问Ю詾槲沂菦]有相關(guān)的項目經(jīng)歷。 但是后來通過聽自己的面試錄音(因為我們由于疫情是線上面試)進(jìn)行復(fù)盤,發(fā)現(xiàn)自己在回答一些技術(shù)問題時回答的也不是很好(這里的不好指的不是回答有誤,而是對于某一個問題,基本上都是兩三句話就講完了,個人感覺給面試官的感覺就是你懂得很淺)。 那么這里的項目經(jīng)驗到底重不重要呢? 其實對于國內(nèi)的一些互聯(lián)網(wǎng)大廠來講,像阿里、字節(jié),這些公司其實對于項目經(jīng)驗看的不是很重,更看重的是你的基礎(chǔ)(對于大廠來講一個基礎(chǔ)扎實的應(yīng)屆生可塑性是很強(qiáng)的)和代碼能力。 但是不看重,不代表不用準(zhǔn)備項目,如果你像我一樣是后期轉(zhuǎn)崗,沒有時間準(zhǔn)備,那么就把自己簡歷上的項目都搞明白,給面試官講清楚,面試官可能不懂你做的是什么,但是多年的工作經(jīng)驗,他們對于你做的東西,一聽就能洞察其中的要點(diǎn),可能還會深挖一下細(xì)節(jié)。 反之,如果你講的不好(不是你不懂,而是表達(dá)交流能力的問題),面試官可能聽的云里霧里,會大大減分的,畢竟以后你進(jìn)了公司都是同事,交流肯定很多,他們更喜歡和交流起來舒服的人一起共事。 但是如果一開始就打算找研發(fā)類崗位的小伙伴,時間充裕的話,還是準(zhǔn)備一下相關(guān)的項目,這里準(zhǔn)備的時候一定要吃透,具體分為以下幾個部分:
以上幾點(diǎn)最好自己用電子文章整理總結(jié),方便復(fù)習(xí)。 最后在多說一句,其實面試官都知道對于應(yīng)屆生生來講怎么會有和公司業(yè)務(wù)貼近的項目經(jīng)驗(除非你去實習(xí)過)。 因此,如果沒有項目經(jīng)驗,那就準(zhǔn)備好當(dāng)下自己所擁有的以及基礎(chǔ),盡力表現(xiàn)出自己的亮點(diǎn),如果有項目經(jīng)驗,就準(zhǔn)備全面一點(diǎn),基礎(chǔ)也不要落下哦。 技術(shù)篇由于我在校招過程中找的大都是測試開發(fā)崗位,客戶端和算法崗位也找過一些,因此主要說一下對于測試開發(fā)崗位考察的技術(shù)。 對于測試開發(fā)崗位,據(jù)我個人面試經(jīng)驗總結(jié)如下幾個部分:數(shù)據(jù)結(jié)構(gòu),計算機(jī)基礎(chǔ)(包括操作系統(tǒng),計算機(jī)網(wǎng)絡(luò)等),數(shù)據(jù)庫,設(shè)計模式、測試用例設(shè)計,測試的方法,代碼。 另外,對于算法,我這里也可以給小伙伴一些建議,因為本人在校期間是做計算機(jī)視覺算法的,算法崗位需要掌握的總結(jié)為 4 個部分:通用知識理論(不管什么崗位都要會的)、深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、代碼。 對于客戶端每個公司具體考察什么我也不好說,據(jù)我個人面試經(jīng)驗,字節(jié)客戶端崗位會招 0 經(jīng)驗,但是你的基礎(chǔ)和代碼要過關(guān)(二者不可缺一才能過關(guān)斬將)。 數(shù)據(jù)結(jié)構(gòu)筆試必考內(nèi)容。 對于數(shù)據(jù)結(jié)構(gòu),我是通過看《大話數(shù)據(jù)結(jié)構(gòu)》這本書進(jìn)行學(xué)習(xí)的,并自己通過代碼去實現(xiàn)一些常用的數(shù)據(jù)結(jié)構(gòu),如二叉樹,鏈表等。 筆試時很多編程題都與數(shù)據(jù)結(jié)構(gòu)有關(guān),比如堆棧隊列二叉樹等知識頻繁出現(xiàn)在筆試中,還有各種排序的變異程序題。 而面試時,面試官也喜歡提問相關(guān)知識,比如他們很熱衷提問快排和歸并排序,還喜歡提問 Top k、海量數(shù)據(jù)排序等。 編程語言一般 Python 都要會,鑒于經(jīng)歷有限,C++ 或 Java 二選一。 如果你偏向找 Java 開發(fā),機(jī)器學(xué)習(xí)和大數(shù)據(jù)的話選 Java 更好。 算法筆試時使用的語言一般就是上述三者之一。 不過這里講的掌握一門編程語言,不是簡單的用它寫代碼,需要更深層的掌握底層原理。 比如我在面試百度的時候,一個小時的面試,有 30 分鐘再問 C++ 的知識,在面試字節(jié)等其他公司的時候,經(jīng)常被問到 Python 的內(nèi)存管理機(jī)制。 如果你想快速概覽一門語言的知識點(diǎn),推薦看菜鳥教程,總結(jié)的短小精悍,適合學(xué)習(xí)和查閱。 由于我主攻C++,這里我說一下我主要在準(zhǔn)備秋招時看了哪些資料吧。 首先對于C++的基礎(chǔ)學(xué)習(xí),我看了《C++ Primer Plus》這本書,看完基本就入門了,看完之后看了《Effective C++》以及侯捷的《STL源碼剖析》(由于時間關(guān)系沒有看完)??赐陼缶褪菍φZ言的熟悉了,后期刷題基本上都用 C++ 去刷。 其他常考的 C++ 知識,我可能沒有總結(jié)資料,需要你們自己搜,比如:
關(guān)于 Python,我沒有直接的資料(也是由于在校期間做的科研項目Python 用的比較多,比較熟悉),印象中??疾斓狞c(diǎn)有:
以上我提到的最好看看,但不能作為唯一參考,真實考察的會比我上面提到的多。多搜搜面經(jīng)和真題,查漏補(bǔ)缺,學(xué)會記錄,好記性不如爛筆頭。 計算機(jī)基礎(chǔ)與數(shù)據(jù)庫計算機(jī)基礎(chǔ)包括計算機(jī)網(wǎng)絡(luò)和操作系統(tǒng). 這里首先推薦的就是小林的圖解操作系統(tǒng)和圖解計算機(jī)網(wǎng)絡(luò)了,講解通俗易懂,對于有一點(diǎn)基礎(chǔ)的人來說很快就能構(gòu)建起知識網(wǎng)絡(luò),對于 0 基礎(chǔ)的人來說可以突擊一下面試。 但是建議如果時間充足還是建議先系統(tǒng)學(xué)習(xí)一下,這里我推薦可以看《計算機(jī)網(wǎng)絡(luò)(第七版)》,看完基本上整體入門,然后再去看小林的圖解系列,把整個知識串起來形成知識網(wǎng)絡(luò)。 數(shù)據(jù)庫,我學(xué)習(xí)的是 MySQL,是在 b 站找的尚硅谷的視頻一整套(包括基礎(chǔ)和進(jìn)階)學(xué)習(xí)下來的。 包括操作系統(tǒng),我也是先在b站系統(tǒng)的學(xué)習(xí)了(看的是王道考研的操作系統(tǒng)),才去看小林的圖解系統(tǒng)對一些??嫉膯栴}以及怎么與實際問題結(jié)合進(jìn)行了學(xué)習(xí)和查漏補(bǔ)缺。 另外,在公司大多都是在 linux 環(huán)境下進(jìn)行開發(fā)工作,面試官多多少少會問一些 linux 指令,大家可以熟悉一些常用的指令。 這里我根據(jù)我個人的面試經(jīng)歷總結(jié)一下上述幾個方面常考的一些題。 計算機(jī)網(wǎng)絡(luò):
大家看小林的圖解網(wǎng)絡(luò)就好了!??! 操作系統(tǒng):
數(shù)據(jù)庫:
Linux命令:
筆試和面試的代碼題由于這個十分重要,所以我放到這部分最后單獨(dú)說明。 在我看來,筆試能力在秋招中要占據(jù) 60% 的重要程度。 首先筆試不過,你根本沒有面試的展示機(jī)會。 其次面試中也會反復(fù)讓你手寫代碼,以字節(jié)為例,每一輪面試都是 1-2 道編程題,有時候不怎么聊簡歷;百度每一輪面試有一道編程題。 現(xiàn)在公司的面試模式就是這樣,如果代碼沒搞出來,大概率會被淘汰。 并且最窒息的是這些代碼題都不簡單,一般都是 leetcode 中等到 hard難度。 刷題主要可從以下三個渠道。 第一個,劍指offer: https://www./ta/coding-interviews 第二個,leetcode: https:///problemset/algorithms/ 第三個,近期面試中??碱}: https://www./activity/oj 劍指 offer 作為大經(jīng)典,是一定要刷兩遍以上的,很多題都是面試時的原題,里面包含了很多筆試常用的思想方法,反復(fù)看,反復(fù)研。 我一開始每天 10 題,過兩遍以后,要求自己每天快速過劍指一遍。 leetcode 由于題目十分之多,刷完是不可能的。我的意見是 leetcode 作為你弱項的專項練習(xí)。 leetcode 右側(cè)有標(biāo)簽分類,如下圖: 另外在鞏固完弱項的情況下,建議將 leetcode 前 300 題刷熟練,據(jù)我個人面試經(jīng)歷,國內(nèi)大廠面試出的代碼題 80% 都是這個范圍內(nèi)的。 另外,我在刷題的時候看了 labuladong 總結(jié)的算法小抄,對算法的理解很有幫助。 最后根據(jù)我的面試經(jīng)歷,根據(jù)個人感覺,公司常考題有:
其實也沒有什么技巧,多刷題,多理解就好了。 心理篇校招期間要時刻關(guān)注自己心理狀態(tài), 這可能會起到最重要的作用。 焦慮、彷徨、孤獨(dú)、自我懷疑,校招期間會時常發(fā)生,相當(dāng)折磨一個人。 像我后期找字節(jié),就被字節(jié)撈了六七次(這里提一下,想被撈的話,你的面試評價一定要好),真的很搞人心態(tài),但是我堅持下來了,希望小伙伴在找工作的時候不管發(fā)生什么堅持下去。 希望你放下比較,不要因為別人先拿到了 offer 就開始焦慮,有人可以早早結(jié)束校招,那他也在后面付出了我們看不到的東西,也可能焦慮彷徨過。 你要做的是掌控自己的節(jié)奏,知識打磨的夠硬,簡歷夠充實,準(zhǔn)備充分就不用擔(dān)心沒有心儀 offer。 另外面試完不要深究面試結(jié)果如何,整個校招面試會很多,如果每一場結(jié)束后都不能釋懷,會很影響你接下來的狀態(tài)。 面試結(jié)束后,會不會被錄取不是我們焦慮就能決定的,你可以從面試中總結(jié),但不要從面試中懊悔。 如果你有一起奮戰(zhàn)的戀人、朋友,這個過程中互相鼓勵和幫助,體驗會好很多。 及早準(zhǔn)備,如果你有幸在提前批就拿到心儀 offer,那么你后面會過的很稱心。 早早準(zhǔn)備總不會差,加油~ 再說你已經(jīng)拿到本寶典,還!怕!啥! |
|
|