數(shù)據(jù)分析師寫的代碼與程序員寫的代碼有什么區(qū)別?各自的發(fā)展前景怎么樣?
網(wǎng)友解答: 謝謝邀請!數(shù)據(jù)分析師編寫的代碼以數(shù)據(jù)分析和呈現(xiàn)為主要任務(wù),目的是給人看的,而程序員寫的代碼主要以實現(xiàn)系統(tǒng)功能為主,目的是給人用的。數(shù)據(jù)分析師編寫的代碼包括算法設(shè)計、算法實現(xiàn)、
謝謝邀請!
數(shù)據(jù)分析師編寫的代碼以數(shù)據(jù)分析和呈現(xiàn)為主要任務(wù),目的是給人看的,而程序員寫的代碼主要以實現(xiàn)系統(tǒng)功能為主,目的是給人用的。
數(shù)據(jù)分析師編寫的代碼包括算法設(shè)計、算法實現(xiàn)、算法驗證、算法應(yīng)用幾個關(guān)鍵步驟,關(guān)鍵在于發(fā)掘數(shù)據(jù)背后的價值(規(guī)律),數(shù)據(jù)分析往往與場景的結(jié)合比較緊密。數(shù)據(jù)分析師通常并不需要考慮程序的性能、安全性、分布式架構(gòu)等系統(tǒng)級問題,所以往往數(shù)據(jù)分析師選擇的編程語言都非常實用,包括Python、R等語言,看兩個Python實現(xiàn)的例子:
程序員編寫的代碼主要是給用戶使用的,需要考慮的內(nèi)容就比較多了,比如程序的穩(wěn)定性、簡潔性(友好)、速度、并發(fā)、資源管理、權(quán)限管理等等內(nèi)容,這里面既包括邏輯性問題又包括系統(tǒng)級問題。程序員往往分為應(yīng)用級程序員和研發(fā)級程序員,研發(fā)級程序員解決系統(tǒng)級問題(容器開發(fā)),而應(yīng)用級程序員往往解決功能實現(xiàn)的問題,可以說程序開發(fā)是一個非常系統(tǒng)化的流程,每個環(huán)節(jié)還要有嚴(yán)格的測試。看一下Zookeeper Session的流程圖:
數(shù)據(jù)分析師在完成數(shù)據(jù)分析任務(wù)之后,如果需要把這部分數(shù)據(jù)分析功能進行產(chǎn)品化封裝,通常情況下就需要程序員來做相關(guān)的工作。舉個例子來說,數(shù)據(jù)分析師往往采用Python來做數(shù)據(jù)分析的算法實現(xiàn),但是程序員在進行功能封裝的時候,往往會采用Java等語言對其代碼進行重寫以滿足系統(tǒng)對性能的要求。
有的研發(fā)團隊會設(shè)置專門的算法設(shè)計崗位和算法實現(xiàn)崗位,算法設(shè)計專注于算法本身,而算法實現(xiàn)則專注于算法的程序化實現(xiàn)。但是現(xiàn)在很多團隊的算法設(shè)計師即要做算法設(shè)計也要做算法實現(xiàn),所以現(xiàn)在的算法設(shè)計師往往也要懂得編程。
作者簡介:中國科學(xué)院大學(xué)計算機專業(yè)研究生導(dǎo)師,從事IT行業(yè)多年,研究方向包括動態(tài)軟件體系結(jié)構(gòu)、大數(shù)據(jù)、人工智能相關(guān)領(lǐng)域,有多年的一線研發(fā)經(jīng)驗。歡迎關(guān)注作者,歡迎咨詢計算機相關(guān)問題。
網(wǎng)友解答:謝邀,簡單說兩句吧。剛好我自己是偏做數(shù)據(jù)分析工作的,周圍也很多寫代碼開發(fā)的程序員。題主備注的意思沒錯。數(shù)據(jù)分析師寫代碼,自然偏向數(shù)據(jù)的統(tǒng)計分析挖掘,并且在語言選擇上也偏向R,Python這些專用的,入門快的編程語言,Python的科學(xué)計算庫豐富且強大,語法簡潔易懂,深受分析師歡迎。但軟件開發(fā)工程師,很少見用Python去開發(fā),多是Java體系,C#等,個中原因請自行百度。Python不是萬能的,各種語言都是自己合適的場景。
一般情況,數(shù)據(jù)分析師不要求完整的代碼素養(yǎng),一般寫的代碼也就自己看,追求快速出結(jié)果,快速驗證自己的想法。程序員多要求嚴(yán)謹?shù)拇a邏輯,保障程序穩(wěn)定持續(xù)地運行,要求高并發(fā),低占用內(nèi)存等等。而分析師則巴不得自己的程序在允許范圍內(nèi)盡量多的使用內(nèi)存以加速計算,二者的目標(biāo),代碼產(chǎn)出物的受眾有比較大的區(qū)別,分析師的代碼一般要求即用即寫,用完可能廢棄,產(chǎn)出數(shù)據(jù)一般也就自己做記錄分析,內(nèi)部分享,或者出研究報告。程序員普遍意義上要求程序面對廣大的人民群眾,兼容各種IE8,firefox等瀏覽器,適配安卓蘋果五花八門的手機,不能閃退,崩潰,應(yīng)對各種不可思議的神操作且不能出錯。
分析師一般自己就是需求,要自己挖空心思去想如何做如何分析數(shù)據(jù),而程序員多是別人說怎么做,你只管實現(xiàn)就好了,產(chǎn)品原型都畫好了。
認同我的看法,歡迎點擊右上角紅字“關(guān)注”,謝謝。