以前就談過很多次算法崗和開發(fā)崗的取舍,也建議過普通人不要去找算法崗的工作:為什么我苦口婆心勸你不要找算法崗
我現(xiàn)在還記得今年三月份有個東北某985在讀的師弟跟我說現(xiàn)在轉(zhuǎn)開發(fā)還來不來得及。。。因為去年八月份的時候他是鐵了心要走算法,他是做圖像的,具體好像是做特診提取的,結(jié)果三月份來問我轉(zhuǎn)開發(fā)來不來得及。。。
今天分享一位算法轉(zhuǎn)開發(fā)的上岸經(jīng)歷,這位師弟研究生時期是做計算機視覺的,也就是CV方向,今年三月份之前他跟上面那位師弟一樣也是走算法崗,在春招過程中發(fā)現(xiàn)崗位要求跟自身很不匹配,所以果斷轉(zhuǎn)了C++后端。
自此踏上了全心全意的轉(zhuǎn)開發(fā)之路,下面是他的分享和總結(jié),其中的“我”代表這位師弟本人,希望能對你有所幫助,這是本文大綱,友情提示一下文末有驚喜:
一、個人背景
二、實習&秋招
三、美團面積(兩輪技術(shù)面 + HR面)
四、大半年的總結(jié)
五、過來人的看法
一、個人背景
簡單介紹一下自己,中流985本碩,工科專業(yè),本科學習C++,做過一些嵌入式比賽,飛思卡爾、智能機器人、光電設計大賽,后來保研至本院。
實驗室方向是計算機視覺應用,碩士期間做過兩個橫向項目,有一篇三作論文、一篇N作專利;
簡歷項目一個是實驗室的視覺終端項目,一個是人手一個的Web服務器項目;
說出來你可能不信,我是在開始找實習的時候才確定找工作的方向,最后也沒找到實習,讀研期間也沒什么競賽。
截止到九月為止,自己投了不少公司了,目前拿到3個口頭offer,分別是美團后端、銳捷軟開和tplink軟開,其中一些比較典型的,我列舉一下
- 華為車BU軟開:泡池子
- oppo系統(tǒng)工程師:泡池子
- 美團后臺:已OC
- 銳捷軟開:已意向
- tplink軟開:已offer
- 科大訊飛:已做筆試
- 度小滿:已筆試
- SHEIN:筆試掛
- 網(wǎng)易雷火后端:筆試掛
- 網(wǎng)易互娛:即將一面
- 網(wǎng)易互聯(lián)網(wǎng)C++:已筆試
- 大疆C++:復篩
- 4399后臺:一面結(jié)束
- ??低曑涢_:等待面試
- 小紅書后端:簡歷擱置,這個招人很少
- 快手后端:同上
- 字節(jié)后端:簡歷掛,聽說也是基本不招
二、實習&秋招
1、實習
我是在3月份開始找實習的,因為實驗室方向是計算機視覺應用,一開始想找算法實習。
但是面了一兩次之后發(fā)覺崗位要求與自己很是不匹配,果斷轉(zhuǎn)C++后端;
由于沒有提前準備,實習也沒能找到,不過也好,至此開始全新全意的開發(fā)學習之路了。
2、秋招
實習沒找到反而有種安心的狀態(tài),可以踏踏實實學習積累,于是結(jié)合之前背的面經(jīng)以及相應的視頻教程,開始系統(tǒng)的學習操作系統(tǒng)、計算機網(wǎng)絡、數(shù)據(jù)庫,拓寬知識面;
然后就是研究秀哥的學習網(wǎng)站中的問題,加深知識深度;在這個過程中將相關問題自己整理一份答案,時常翻閱(看自己的筆記好像能瞬間激活腦子里的記憶);
秀哥的學習網(wǎng)站:https://interviewguide.cn/notes/03-hunting_job/02-interview/01-01-01-basic.html
算法題個人感覺要先度過開始的困難期,慢慢加大題量;沒有思路或者需要看著解析做的題目,隔一天再做一遍;我自己做題也不是很多,但是我會把做過的題反復做,反復體會;隨著時間推移,個人感覺對于代碼的把控更加細致,這才是算法的精妙之處;
另外一點,經(jīng)典算法的模板十分重要,按照自己的思路整理一份,然后把關鍵點抽象出來,做題的時候按照實際情況處理一個個子問題,化整為零,各個擊破,往往比提筆就寫,然后不斷debug來的舒服;
C++的基礎知識主要看面經(jīng),本科研究生都學過,有一點印象,但是不深,還是依靠經(jīng)典八股來學習,另外實驗室有個學弟苦心研究C++ Primer,有不會的問題可以問他(哈哈)
數(shù)據(jù)庫對我來說比較抽象,第一次接觸概念,背八股,發(fā)現(xiàn)面試的時候根本答不出來,于是進行一波系統(tǒng)學習,真正吸收知識,然后總結(jié)相關問題;
實驗室的項目不是很匹配,自己選擇人手一個的Web服務器;進行系統(tǒng)學習之后,提煉相關技術(shù),與八股結(jié)合一下,應對面試卓卓有余了。
這部分的學習路線我就不介紹了,可以看下這篇文章:7天五面,提前批順利上岸飛書后端
三、美團面經(jīng)
美團跟阿里一樣,是有名的Java大廠,我是C++技術(shù)棧,但是自己也去投了,沒想到也給我面試機會了。
所以有時候真的是柳暗花明又一村,不去試試真的都不好說,機會往往就只需要你往前走一步就能拿到。
下面是我的美團面經(jīng),是的,一個CPPer在Java大廠的面經(jīng)。
一面8.24
- 自我介紹
- 項目難點,怎么克服,為什么選擇這個技術(shù),過程是怎么樣的,成果是否投入使用
- 做題
- 中等力扣1143 最長公共子序列
- 困難 力扣37 解數(shù)獨
- 面試官首先給時間思考,然后闡述思路,最后實現(xiàn);可能第一題太快了(畢竟太熟了),又給了第二題;
- 場景題
- 數(shù)據(jù)庫相關:如何設計賬戶余額字段
- 考慮業(yè)務,從精度、非空、非負考慮,采用float;面試官提出float精度問題,引申到存儲原理,如何判0;
- float數(shù)(1-0.9)與(0.9-0.8)相等嗎?
- 面試官引導思考,面對精度丟失,如何改進?
- 引申到整型,把余額×100,轉(zhuǎn)整型;
- 第二種,MySQL提供高精度數(shù)據(jù)類型,面試官說可能沒接觸過
- MySQL索引結(jié)構(gòu),引申B樹與B+樹,為什么選擇自增整數(shù)ID做主鍵?
- 分庫分表、主從復制(簡歷有寫,不過我說只是了解,沒有深挖)
- 字符串如何簡歷索引?
- 數(shù)據(jù)庫事務?什么是幻讀?InnoDB如何解決?
- 死鎖形成條件?如何避免死鎖?(這塊答的不太好,提到銀行家算法,但是沒深問,應該是破壞四個條件)
- 延時與吞吐率的區(qū)別?
- 什么是多路復用?為什么要用?引申epoll與select的比較;epoll底層原理:紅黑樹、就緒鏈表;
- epoll如何判斷接收到了數(shù)據(jù)?
- mesi協(xié)議了解嗎?不了解,cpu緩存一致性問題
- 什么是內(nèi)存泄漏?有沒有排查經(jīng)驗?(回答結(jié)合項目闡述)
- 文件授權(quán)?如何給文件增加運行權(quán)限?使用U+X;為什么不用777?
- http與https在那一層?https如何保證安全?加密、身份認證、校驗
- 加密算法有哪些了解?RSA與ECDHE
反問
- C++面Java崗位,個人怎么看;
- 自己能力與崗位是否匹配?有什么建議?(可以旁敲側(cè)擊面試官的評價)
- 業(yè)務相關?相關介紹?打車結(jié)算業(yè)務介紹
- HC多不多?答不太了解;
- 后續(xù)結(jié)果?一到兩周;
二面8.26
- 自我介紹
- web服務器項目?做項目的目標?有參考開源項目嗎?
- C++基礎相關
- C++與設計模式的關系
- 為什么要有設計模式;引申到單例、工廠等模式;
- 五個設置原則?沒太答上來;詳細說了其中一兩個
- 堆棧區(qū)別?引申到內(nèi)存泄漏、智能指針、shared_ptr原理;
- 如何利用C++中的異常
- 開放題
- 方法設計問題,函數(shù)能不能返回對象?
- 深拷貝與淺拷貝,自定義拷貝構(gòu)造函數(shù)
- 多次拷貝問題
- 返回局部變量非法
- 考慮到對象存儲位置,給出解決辦法,傳入雙指針,調(diào)用new使其分布在堆上
- 做題
- 困難 劍指offer51 數(shù)組中的逆序?qū)?
- 還是先說思路,再實現(xiàn)
- 智力題(面試官只要答案,不讓講思路)
- 三層的二叉樹多少種?
- 連續(xù)整數(shù)之和為1000,有幾組?
- 平常怎么學習?
- 論文能應用嗎?
- 比賽幾個人?簡單介紹,自己引申到如何分工、自己做了什么;
- 誰做的最好?回答各司其職,都好;(感覺是個坑)
- 一等獎多少?你排名多少?
- 華為軟挑介紹,自己負責的東西;
反問
- 能力匹配嗎?應屆生看中學習能力,基礎扎實、公司學習時間充足、進步比較快
- 多久反饋?一周
- 后續(xù)是hr面試還是技術(shù)面?hr;
HR面8.31
- 哪里人?獨生子?父母工作?父母對工作城市選擇的建議?
- 個人規(guī)劃?有喜歡的城市嗎?
- 對互聯(lián)網(wǎng)行業(yè),北上廣深杭可選,怎么選?答工作機會
- 非科班轉(zhuǎn)碼契機?
- 大三就決定轉(zhuǎn)碼,有沒有考慮放棄保研,跨考計算機?
- 什么時候加強計算機相關知識的學習?
- 學習C++語言的方法,抽象說一下?
- 沒有實習經(jīng)歷?后端項目介紹?大概說了web服務器的流程;
- 做項目的目的?有推廣給身邊人使用嗎?外部能用嗎?
- 最大收獲是什么?
- 休息的時候做什么?
- 畢業(yè)第一份工作關注什么?順便提問薪資待遇;
- 答先發(fā)意向書、然后再薪資排序;
- 結(jié)構(gòu):base×15.5;年終獎4~5月份發(fā);
- 還有其他的offer或者面試中的嗎?字節(jié)、騰訊、阿里有嗎?
- 后續(xù)流程:與前邊面試官溝通,4~5個工作日通知?
- 先發(fā)意向書、與其他候選人一起排序等級(S、A、B);
OC9.2
- 溝通意向
- 詢問手上offer
- 如何選擇offer(愿不愿意來美團)
四、大半年的總結(jié)
說些有的沒的吧,也算是自己這大半年的心得體會和總結(jié)
1、弄清定位
自己一開始想沖算法崗,無奈實力不允許,轉(zhuǎn)戰(zhàn)后端,但是來不及找實習。
即使看著身邊人一個個出去實習,自己也不慌,安心進行系統(tǒng)學習、刷題,然后繼續(xù)學習、刷題,按部就班的走自己的就行。
2、知己知彼
我認為自己的優(yōu)勢在于學歷,但是真論技術(shù),我的水平真的一般,也就正常的學生水平,比不上群里的大佬們。
另外我想說,學歷只是優(yōu)勢,并不是唯一。
校招群里好多大佬學歷一般,但是技術(shù)極其硬核,實習經(jīng)歷異常豐富,這都不是天上掉下來的,都是經(jīng)過自己努力得來的。
還能自己擼項目,更有已經(jīng)上線的產(chǎn)品,這都是我等凡人達不到的高度,他們收獲的就是巨香的offer。
你要問我我羨慕嗎?
肯定羨慕啊,他們的優(yōu)勢就是他們的技術(shù)
3、擺正心態(tài)
被拒的時候,我一開始也會自我懷疑,不過這都是正常的;
一方面是開始的時候自己沒有經(jīng)驗,另外一方面自己可能確實知識體系還不夠完善,還有最重要一點,你永遠不知道企業(yè)到低有沒有HC;
4、戰(zhàn)略意識
我認為面試的時候更像陣地戰(zhàn),你的簡歷就是你的陣地,面試官就像是在攻城,你陣地任何一個部分被攻破,你也隨之失敗;
所以簡歷需要好好經(jīng)營,實在不行縮減陣地規(guī)模也行啊;
如果你苦心經(jīng)營的陣地連一輪進攻都抵擋不了,那確實應該好好考慮一下問題所在;
如果可以的話建議去找人給你看看簡歷是不是有大問題,特別是投了很多家公司都沒消息的。
最后說一下很高興能和大家分享,也很感謝秀哥能給我這次機會。
老實說,我認為自己還有很多的知識技術(shù)還未掌握,還有巨大的上升空間。
我的學習不會隨著秋招結(jié)束而結(jié)束,大家一起加油吧!
五、過來人的看法
老實說,阿秀看到他的分享就明白他能上岸是應該的,他清楚自身的優(yōu)勢,也會好好利用自身的優(yōu)勢。
更重要的是他如饑似渴,不放過任何一個機會,從他是C++的去投遞Java大廠就能看出一二。
阿秀也很認同他說的應該要知己知彼,學歷不是唯一,學歷不好就好好加油好好學技術(shù),而不是整天在那里自怨自艾,抱怨別人不給你機會。
阿秀自己就是普通學校畢業(yè)的,也是很多人口中的雙非仔,也通過自己的努力在校招中拿了百度、華為甚至是字節(jié)跳動的SP offer。
對于我們這樣的普通學校的學生而言,機會有時候會在你面前溜過,但你要抓得住,抓不住,給你再多的機會都沒用。
同樣也很認可他說的戰(zhàn)略意識即簡歷很重要,簡歷就像你的戰(zhàn)略地,如果你苦心經(jīng)營的陣地連一輪進攻都抵擋不了,那確實應該好好考慮一下問題所在。
以前就分享過很多簡歷相關的文章,這里就不再一一細細展開了,比如這兩篇:如何寫好簡歷中的項目經(jīng)驗、簡歷,要這樣改才能突出重點!!
目前這名同學已經(jīng)加入阿秀的學習圈,如果你想與他交流可以在學習圈中精華區(qū)找到他的文章進行交流。
下面給自己的學習圈打個廣告,老實說,運營這個學習圈比我想的要辛苦,經(jīng)常忙到一兩點才能休息,但也得到了很多人的認可,幫到了很多人。
我自己也是一名互聯(lián)網(wǎng)大廠的工作黨,字節(jié)跳動的工作壓力本來就不小,何況阿秀還在抖音這邊寫代碼,我手底下還帶著兩個實習生,工作壓力就不小,所以日常工作就很忙。
所以綜合考慮下,自己的學習圈后期可能會慢慢關閉加入渠道,從而限制加入的人數(shù),最后徹底關閉,不再加人。
目前已經(jīng)突破 1000 人了,明天就會漲價了。
老實說,這個世界上需要幫助的人太多,相較于大家認為的人數(shù)越多越好,我認為只要能幫到一小撥人就足夠了,一個人的精力是有限的,人多了服務質(zhì)量肯定會下降,這是我所不想也絕對不愿意見到的。
下面是一些阿秀的學習圈的歷史文章摘錄,如果你想在校招中找到一份不錯的工作,這也許會對你有所幫助:
面經(jīng)?:7天五面,提前批順利上岸飛書后端
面經(jīng)?:上岸快手,我選擇一條不一樣的路
面經(jīng)?:三無人員簡歷掛麻了,磕磕絆絆終上岸字節(jié)后端
面經(jīng)?:不管那么多,offer先接了再說
面經(jīng)?:非科班轉(zhuǎn)碼,上岸小公司我也很滿意了
面經(jīng)?:順利上岸字節(jié)電商后端,但也真的很不順利
面經(jīng)?:研一一整年都在搞深度學習,研二醒悟打算轉(zhuǎn)開發(fā)
簡歷?:這周改了90多份簡歷,如何寫好自己的項目經(jīng)歷...
實習總結(jié)?:雙非本科上岸抖音技術(shù)崗,我是這樣準備的!
實習?:在大廠實習,表示很慌!
實習?:實習一直在CRUD,想跑路...
面試?:校招面試中需要注意的地方,一般人我不告訴他
面經(jīng)?:百度、滴滴OC,卻掛了字節(jié)
算法?:為什么我苦口婆心勸你不要找算法崗
準備?:不想再擺爛了,再給自己最后一次機會!
準備?:秋招準備時間不夠?那就優(yōu)先挑性價比高的
準備?:對自己目前的秋招進度產(chǎn)生懷疑了...
心路歷程?:三本,身邊人都在擺爛....
轉(zhuǎn)行?:研一一整年都在搞深度學習,研二醒悟打算轉(zhuǎn)開發(fā)
學習計算機的都知道一個局部性原理,其實你現(xiàn)在踩的坑,你的學長學姐其實都已經(jīng)踩過了。如果可以的話建議你多看看他們踩過的坑,阿秀自己組建的學習圈置頂帖中有個「知識圖譜」和「精華區(qū)」(如下圖),其中有很多計算機大學四年學習以及校招的內(nèi)容和問題,多看看這些能夠幫你走的更穩(wěn)、更順。
此外也陸陸續(xù)續(xù)沉淀了不少自己這么些年收集和整理到的學習編程的資料,一些校招面試經(jīng)驗和內(nèi)部資料分享等,這部分內(nèi)容只會在學習圈里更新和迭代了,比如一些面試中殺時間的利器,讓你光明正大的耗面試時間同時還能增加自己在面試官心目中的印象分,為啥我會這么說呢?因為我以前就是這么干的,這些都是我在實戰(zhàn)中運用過的一些技巧。