
大一大二都是土木工程專業(yè),看了峰哥的轉(zhuǎn)專業(yè)經(jīng)歷后,堅(jiān)定了轉(zhuǎn)專業(yè)的想法。于19年的9月轉(zhuǎn)專業(yè)到計(jì)算機(jī),開始自學(xué)編程。3月份先后拿了趣頭條、今日頭條的后端實(shí)習(xí)offer,目前已實(shí)習(xí)一個(gè)月。我盡量用簡潔的語言說一些關(guān)鍵性的東西,希望對轉(zhuǎn)行和對學(xué)習(xí)方向迷茫的小伙伴有一點(diǎn)幫助。
轉(zhuǎn)專業(yè)的起因是土木發(fā)展前景比較差,又發(fā)現(xiàn)自己對編程很感興趣,在mooc上學(xué)了下浙大的數(shù)據(jù)結(jié)構(gòu)。因?yàn)槌煽儾诲e(cuò),大三開學(xué)正式轉(zhuǎn)到計(jì)算機(jī)專業(yè)(其實(shí)當(dāng)時(shí)轉(zhuǎn)專業(yè)承受的壓力還是蠻大的)。
大三上學(xué)期同時(shí)修大一大二大三上學(xué)期的計(jì)算機(jī)專業(yè)課,當(dāng)時(shí)一直想的是想考浙大的研究生的,于是按部就班地去教室上課,但是學(xué)著學(xué)著我又開始質(zhì)疑我學(xué)這些知識(shí)的意義,就像我當(dāng)初質(zhì)疑學(xué)土木工程的意義一樣,還是準(zhǔn)備找工作吧。
但是一學(xué)期有十多門計(jì)算機(jī)的課,課業(yè)負(fù)擔(dān)還是比較重的,那段時(shí)間也還是很努力的,我學(xué)習(xí)一門課程的思路幾乎都是:先搭好知識(shí)框架,把重要的知識(shí)點(diǎn)找出來并明白它們在整個(gè)課程脈絡(luò)中的地位,然后考前瘋狂刷題突擊。用這種學(xué)習(xí)方法我在每門課上花的總時(shí)間都不長,以比較短時(shí)間學(xué)到了大部分核心知識(shí),既以平均80分的成績通過了期末考試,也在這期間也能騰出一些時(shí)間來自學(xué)一些我感興趣(對面試有用的)的技術(shù)。
當(dāng)然啦,很重要的前提就是要求你得有分清主次、規(guī)劃自己的能力。1月10號放假后正式開始準(zhǔn)備春季實(shí)習(xí)生招聘,從mooc網(wǎng)上找了些課程看,參考了峰哥提供的幾個(gè)項(xiàng)目,網(wǎng)絡(luò) 數(shù)據(jù)庫 操作系統(tǒng)跟著面經(jīng)貼著重學(xué)習(xí)了下高頻考點(diǎn),面試前一周刷了50道leetcode上的高頻題目。
進(jìn)入三月份開始投遞簡歷,我投遞的都是后端實(shí)習(xí),第一個(gè)面試是趣頭條,面完立刻發(fā)offer。
先問這個(gè)項(xiàng)目是怎么做的吧,說說
NIO和BIO的區(qū)別吧,如果客戶端突然斷了服務(wù)器怎么檢測,服務(wù)器怎么知道哪幾個(gè)包是一個(gè)請求的。
又聊了聊我
S
pring
Boot的項(xiàng)目。
說說
MySQL索引,出了一個(gè)建索引的題,給定查詢需求,讓你確定復(fù)合索引的各字段順序。
浮點(diǎn)數(shù)為什么會(huì)有精度問題
數(shù)據(jù)結(jié)構(gòu)自學(xué)過???說說常見的排序算法吧?巴拉巴拉,說說快排吧?
就是每一輪隨機(jī)選一個(gè)隨機(jī)數(shù)把它的放到正確的位置上...
如果不隨機(jī)的話時(shí)間復(fù)雜度在原數(shù)組有序的情況下容易n方
String,StringBuffer,StringBuilder區(qū)別
說說ThreadLocal和它可能出現(xiàn)的問題
實(shí)話實(shí)說:在刷leetcode題
給你個(gè)反饋吧:
覺得你很有沖勁,我看好你,但是還達(dá)不到阿里實(shí)習(xí)生的標(biāo)準(zhǔn),這次不能給你過,但是會(huì)放在簡歷池子里。
第三個(gè)面字節(jié)跳動(dòng),從第一天技術(shù)三面,第二天hr面,第三天拿offer。
面試官:你數(shù)學(xué)好嗎?我說還行吧,那我給你出一個(gè)偏數(shù)學(xué)一點(diǎn)兒的題:實(shí)現(xiàn)一個(gè)shuffle函數(shù),就是給你一個(gè)數(shù)組你把它隨機(jī)打亂順序,要求完全隨機(jī)。
我第一次說的是新開一個(gè)數(shù)組,每次隨機(jī)從原數(shù)組中選擇一個(gè)元素放入新開的數(shù)組中。面試官追問如果不能開辟額外空間呢?我說那就交換吧,遍歷數(shù)組每個(gè)位置上的數(shù)組都和其后面隨機(jī)一個(gè)數(shù)字做交換。面試官說你證明一下正確性,想了一會(huì)兒給出了證明。
LeetCode42接雨水:我知道比較優(yōu)雅的做法是動(dòng)態(tài)規(guī)劃,奈何不會(huì)啊,最后面試官提示說也可以用單調(diào)棧解決,于是
在面試官提示下
手撕
掉
。
面試官一上來就笑呵呵的問我前兩面感覺怎么樣啊,我說發(fā)揮不太好但是面試官都給過了。他說那我們做一個(gè)算法題吧:搶過紅包吧? 你設(shè)計(jì)一個(gè)函數(shù),輸入金額總數(shù)m和紅包個(gè)數(shù)n,要求返回一個(gè)長度為n的數(shù)組代表n個(gè)紅包,要求每個(gè)紅包金額隨機(jī)。注意紅包最小單位是分。
我問了能用什么api嗎,回答說給你一個(gè)random(n)函數(shù)可以1~n之間隨機(jī)一個(gè)數(shù),一共十分鐘,現(xiàn)在還剩五分鐘,寫代碼吧。
我的思路是求出總金額sum用分做單位,然后隨機(jī)生成n-1個(gè)sum以內(nèi)的數(shù),用b
ool
marked
[sum]
來標(biāo)識(shí),如果生成重復(fù),則需要再次生成。最后遍歷這個(gè)sum數(shù)組每兩個(gè)marked=true的點(diǎn)之間的部分都是一個(gè)金額隨機(jī)的紅包。
三面面試官應(yīng)該是部門領(lǐng)導(dǎo)了,問我最近半年在看什么書呀,我說我半年前才轉(zhuǎn)到計(jì)算機(jī)系,現(xiàn)在在看Java并發(fā)編程的藝術(shù)。問我以后打算學(xué)點(diǎn)啥呀?我說Spring Cloud 和 Netty。
hr面:大學(xué)期間你最驕傲的事,為什么不考研,怎么看待加班,我說加就完了哈哈(不是原話哈),然后又說其實(shí)我們是彈性工作日的... 最快可以什么時(shí)候入職
第一天連續(xù)三個(gè)小時(shí)的技術(shù)面試,第二天半個(gè)小時(shí)的hr面,第三天
發(fā)
offer。
三面都問了一些常規(guī)的基礎(chǔ)知識(shí),比如
HashMap細(xì)節(jié)相關(guān)的,cookie和session,ThreadLocal是什么,使用會(huì)帶來什么問題(不會(huì)),redis的相關(guān)讀寫策略(我也不是很清楚),NIO和BIO的概念區(qū)別(我做過一個(gè)Java NIO的項(xiàng)目),Spring IoC(做過Spring Boot的項(xiàng)目),TCP四次揮手,還有兩位面試官都讓手寫了SQL(實(shí)在好久沒有寫了,基本的語法都忘了,尷尬)
①把深入了解過的知識(shí)點(diǎn)盡量在簡歷上著重描述下,我其實(shí)準(zhǔn)備了不少 和 鎖、線程池相關(guān)的內(nèi)容,不過一點(diǎn)兒也沒問。
② 一些東西不會(huì)很正常的,面試過程中不要有太大心理壓力,面試官也不會(huì)太難為:比如我簡單的SQL都不會(huì)寫了,面試官說:沒事看來你這塊不熟,我說:確實(shí),很久沒練習(xí)了。
③但是代碼題還是字節(jié)比較看重的,主要分別說說我遇到題目吧(每一面都有一個(gè)手撕代碼題):
1.做決定前深思熟慮,做決定時(shí)要果斷和堅(jiān)定。迷茫的時(shí)候可以請教他人,但需自己認(rèn)清現(xiàn)狀和自身情況。
2.時(shí)間和精力是很寶貴的,花點(diǎn)小錢學(xué)習(xí)一些優(yōu)質(zhì)的資源就是在走捷徑(我用的比較多的是mooc網(wǎng)和極客時(shí)間)
3.學(xué)會(huì)抓大放小,分清主次。比如對于學(xué)校課程我只是考前突擊,想讓我平時(shí)去課堂里聽課和完成作業(yè)是不可能的,相反我會(huì)在規(guī)劃和探索適合自己的學(xué)習(xí)路線上花費(fèi)很多時(shí)間。
4. 總是由學(xué)習(xí)收獲/花費(fèi)時(shí)間這個(gè)值的大小和變化,來驅(qū)動(dòng)自己進(jìn)行高效和有價(jià)值的學(xué)習(xí)的。 比如學(xué)技術(shù)或者做項(xiàng)目的時(shí)候不要太過沉迷細(xì)節(jié),要帶有比較強(qiáng)的目的性。我做一個(gè)項(xiàng)目是用到了微信支付相關(guān)內(nèi)容,看了兩個(gè)小時(shí)微信文檔沒耐心了,遂想:我花精力搞這干嘛,有意義嗎,于是果斷跳過這個(gè)章節(jié)繼續(xù)學(xué)后面的模塊。
特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:

長按訂閱更多精彩▼

如有收獲,點(diǎn)個(gè)在看,誠摯感謝
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!