材料學博士轉(zhuǎn)型大數(shù)據(jù)開發(fā),是一種什么體驗?
一、自我介紹
本碩博都是985材料化學專業(yè)(一條路黑到底。。。),之所以一直讀化學專業(yè)是因為學得還好,一路保送讀研、讀博,溫水煮青蛙,就這么一路走來了。我想著有博士文憑,總歸不會混的太差。
直到完成了博士學業(yè)開始打算找工作的時候才知道行情是多么的慘淡、多么的坑,費了很大勁兒,找到了化學材料類的目前最好的企業(yè)的offer,開的薪水一年打包下來和計算機專業(yè)類碩士的起薪差不多。薪水低就算了,還是在偏遠的工作地址,工作環(huán)境惡劣,對身體危害極大,各種接觸有毒有害的化學品,考慮到以上種種,果斷選擇跳出這個大坑。
我平時愛折騰,也寫過python啥的,參加過數(shù)學建模競賽拿了獎,對編程了解些。之后看了峰哥的微信公眾號文章,加了微信,峰哥也蠻熱心和負責的,反復詢問我是否堅定了轉(zhuǎn)大數(shù)據(jù)的決心,畢竟現(xiàn)在已經(jīng)是博士了。我回顧了之前讀研經(jīng)歷,打消了顧慮,毅然決定轉(zhuǎn)行。
二、學習面試過程
按照峰哥提供的學習路徑:Java SE -> 項目 -> 多線程 -> JVM->大數(shù)據(jù)框架的路線開始學習。有不懂的地方,我先去搜索引擎查,查不到了再去請教峰哥。
大數(shù)據(jù)框架的很多,需要根據(jù)自己下興趣選擇框架學習,也盡量結合企業(yè)的需求學習。我選擇的方向是數(shù)倉開發(fā)方向,包含離線和實時數(shù)倉,因此學習了Spark和Flink這兩個框架,以及對應的實戰(zhàn)項目。
一邊學習一邊面試,通過面試倒逼著自己去學習和理順知識點,還有刷算法題。聽了峰哥的建議,我先從上海的初創(chuàng)公司開始面試,剛開始比較順利,直到面試到一家D輪的公司,之前都面試的還好,技術二面問了兩道簡單的算法題,沒寫出來,結果直接掛掉。因此我意識到,算法的重要性,開始補充數(shù)據(jù)結構和算法的知識,狂刷算法題。
春招開始之后,廣投大廠的實習崗位。有一點要注意的是,很多企業(yè)的大數(shù)據(jù)崗位招聘是放在后端開發(fā)或者軟件開職位里面的,比如阿里就有數(shù)據(jù)研發(fā)崗和Java開發(fā)大數(shù)據(jù)方向,這些崗位都可以投遞。
具體面試題,我就不羅列了,??途W(wǎng)上面經(jīng)帖子很多。我就說下面試的幾個點:
Java語言基礎及JVM:
越是大廠越是注重基礎知識的掌握情況,基礎的知識一定要會,峰哥提供的面經(jīng)就是很好的資料。針對面經(jīng),有不懂的再去看書、看帖子進一步理解;最好準備一兩個高頻面試題的源碼解讀。
JVM是大廠的必考項,阿里,網(wǎng)易都是一上來就問JVM的。這部分內(nèi)容比較抽象,我自己學習是看JVM視頻入門的,在結合JVM書籍深入理解。JVM知識也很重要,后期學習內(nèi)存型的大數(shù)據(jù)框架(Spark、Flink)都需要用到JVM的知識作為基礎。
大數(shù)據(jù)框架及項目:
講解框架的時候可以結合簡歷上的項目去說,這樣的話,即使你將框架知識卡殼了也可以通過項目實例講解來糊弄過去(僅個人經(jīng)驗)。大數(shù)據(jù)的崗位主要有兩類,業(yè)務崗和技術平臺開發(fā)崗:
面業(yè)務崗的話,要好好準備SQL和業(yè)務模型這一塊,數(shù)據(jù)流的走向,數(shù)倉業(yè)務建模等。技術開發(fā)崗的話對大數(shù)據(jù)框架的基礎知識掌握很高,我面阿里云的時候全程深扣MapReduce原理和底層細節(jié),被虐的很慘。(面完后,兩天內(nèi)把MR的原理前前后后啃了個好幾遍,對,就是面試倒逼著你去學習去啃書)
計算機基礎知識:
數(shù)據(jù)結構和算法:這一塊內(nèi)容也是重中之重,而且要想走好IT這條路,是很重要的。我學的是極客時間上的數(shù)據(jù)結構與算法之美這們課,講的還蠻不錯(善用搜索引擎,很容易就能找到學習資源)。學好這部分內(nèi)容,也能加深理解框架的設計思想,也能看懂一些源碼。
算法題的話,劍指offer要好好刷,要多刷,好多公司真的就是直接出原題。《程序員代碼面試指南-左程云》這本書也建議去刷,按照算法題考點進行了分類講解,正好是Java語言寫的答案,答案解析寫的通俗易懂。這本書總結的都是高頻題目,這本書刷透了,國內(nèi)大廠算法面試都不是事兒了。
計算機網(wǎng)絡和操作系統(tǒng)看面試題學習就行了,高頻考點就那么幾個題目。操作系統(tǒng)可以和jvm放在一起學,很作點都是相通的。
數(shù)據(jù)庫要好好學,因為我自己是往數(shù)倉這一塊發(fā)展。
面試技巧:
要提前準備好自我介紹,最好兩份,一份針對技術面,多說點技術項目方面的內(nèi)容;一份準備HR面,多說些自己的學習,項目經(jīng)歷,自己的感悟以及學習、心得總結。
面試對話過程中的套路,我也是從峰哥學到的,盡量往自己知道的、懂的內(nèi)容引導。一場面試也就40-60分鐘左右,你答的內(nèi)容多,占據(jù)的時間長,面試官問的自然也就少了。盡量用下沉式的對話方式,比如問是否了解HashMap,你就可以回答這個式是什么,有什么特點,底層的實現(xiàn),數(shù)據(jù)結構的知識;
如果面試官沒打斷,還可以接著往下延申,講講CocurrentHashMap在不同jdk版本的實現(xiàn)以及并發(fā)等問題。面試中,你能主動說出來,面試官會認為你的基礎是很扎實的,這是個加分項。
到技術主管面或者HR面,對于轉(zhuǎn)行的,一般都會問到你為何轉(zhuǎn)行這個問題。這個要實現(xiàn)做好準備,這個回答還蠻重要的。我阿里技術boss面的時候,回答的不好,被一通diss。其實這個也不是學歷歧視,算是一種壓力面吧;提前準備一些說辭,在壓力面試之下,承認自己非科班的不足,同時能夠有理有據(jù)的回答,展現(xiàn)出自己的自信和底氣,這應該就是面試官想要的答案吧。
最重要的一點是面試后要及時總結復盤,針對面試總暴露的不足,趕緊查缺補漏,做到考后一百分。面試過程就是個升級打怪的過程,不斷反思總結,才會有提高。
三、總結
我現(xiàn)在也還在不斷學習和面試中,目前拿到了華為,網(wǎng)易以及好幾個創(chuàng)業(yè)公司的offer。校招求職之路還在進行中,接下來還得復習之前所學和深挖框架原理,同時還要多刷算法題(要認識到自己的不足,趕緊彌補~~)。希望秋招能拿更好的offer。
剛開始做決定,以及之后的學習過程,一路走來都不容易,身邊朋友同學的質(zhì)疑以及剛開始刷算法題的那種懷疑到自我智商是不是欠缺。。。尤其是讀到博士才想到轉(zhuǎn)行,壓力和阻力也是蠻大的。轉(zhuǎn)行一定要趁早,別像我這樣溫水煮青蛙到現(xiàn)在,壓力會大很多。執(zhí)行力很重要,執(zhí)行力就是定時定量的去做,去完成。多向優(yōu)秀的人學習,峰哥就是個很好的例子,多和優(yōu)秀的人學習、交流,自己慢慢也會精進起來。
特別推薦一個分享架構+算法的優(yōu)質(zhì)內(nèi)容,還沒關注的小伙伴,可以長按關注一下:
長按訂閱更多精彩▼
如有收獲,點個在看,誠摯感謝
免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!