我是LakeShen,專注大數(shù)據(jù)技術(shù)、互聯(lián)網(wǎng)科技見解、程序員經(jīng)驗分享。
作為一名軟件開發(fā)工程師,我現(xiàn)在從事的就是大數(shù)據(jù)方向。結(jié)合我當年校招找工作的經(jīng)歷,個人認為,大數(shù)據(jù)中不同崗位對于編程能力的要求是不一樣的,如果你選擇的是大數(shù)據(jù)平臺開發(fā)或者大數(shù)據(jù)基礎(chǔ)組件開發(fā),這兩種崗位會對你的編程能力有一定的要求,如果你選擇數(shù)據(jù)研發(fā)(ETL)、大數(shù)據(jù)分析師(BI)、大數(shù)據(jù)運維這三種崗位,那么你的代碼編程能力就不是那么重要(
如果你選擇大數(shù)據(jù)平臺開發(fā),首先第一點,你需要掌握一門編程語言,比如Java語言。對于Java語言的基礎(chǔ)語法、集合底層原理源碼的實現(xiàn)、Java多線程、Java虛擬機等等,如果你希望能夠進入到大廠的話,這些知識點你都必須掌握的非常牢固。對于大數(shù)據(jù)平臺開發(fā)同學,其工作主要使用Java語言編寫用戶使用的大數(shù)據(jù)平臺,用到的后端技術(shù)主要是SpringBoot。你也需要學習Spring和SpringBoot相關(guān)技術(shù)、Mybatis、Json使用等等。Spring技術(shù)中最基礎(chǔ)的技術(shù),AOP(面向切面編程)和IOC(控制反轉(zhuǎn))。
如果你大數(shù)據(jù)組件開發(fā),由于大數(shù)據(jù)很多組件都是使用Java進行編寫,你最好也能夠有一門自己擅長的語言,同時,由于你是對大數(shù)據(jù)組件進行開發(fā),你必須對你所選擇的大數(shù)據(jù)組件的原理和源碼要有很深的理解,比如你選擇Hadoop,你需要了解到Hadoop的MapReduce原理、HDFS上傳數(shù)據(jù)和下載數(shù)據(jù)的流程原理、Yarn是如何管理資源的等等。你也需要有一定的大數(shù)據(jù)組件運維能力,因為你需要保證線上大數(shù)據(jù)組件的穩(wěn)定性。
ETL同學、數(shù)據(jù)分析同學(BI)、大數(shù)據(jù)運維同學對于代碼編程能力的要求沒有那么高,ETL同學在應(yīng)聘的時候,更多的是考查你的SQL語言的使用以及數(shù)據(jù)倉庫方面的理論知識,對業(yè)務(wù)數(shù)據(jù)的建模思想。數(shù)據(jù)分析同學,需要考查你對于數(shù)據(jù)中隱藏價值的洞察力,同時你的PPT能力也是你的加分項,所以對于數(shù)據(jù)分析同學,并不是只有計算機專業(yè)的同學才能選擇,有很多其他專業(yè)的同學也可以選擇大數(shù)據(jù)分析。大數(shù)據(jù)運維同學,可能更多的是考查你Linux命令的使用,你對Linux系統(tǒng)的理解、相關(guān)Shell腳本的編寫等等,因為現(xiàn)在互聯(lián)網(wǎng)企業(yè)幾乎都將服務(wù)器安裝在Linux系統(tǒng),你以后做的也主要是對這些機器穩(wěn)定性運維,所以你需要對Linux系統(tǒng)有很深的理解。
總結(jié)
總體來說,對于大數(shù)據(jù)不同的崗位,其對于代碼編程能力的要求是不一樣的,你可以結(jié)合你自己的個人興趣以及以后的職業(yè)發(fā)展,來選擇適合自己的職業(yè)。當然,如果你有時間可以鍛煉自己的代碼編程能力的話,這對你以后的工作或多或少會有一定的幫助,沒準在以后的那一天,你就用上了你的這門技能。
如果我的回答對你有一定幫助的話,希望你能點贊轉(zhuǎn)發(fā)或者關(guān)注我,你的小小的鼓勵,就是我持續(xù)分享的動力,感謝。