沒那么簡單:僅靠Python你沒法找到數(shù)據(jù)科學(xué)工作
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。
自從數(shù)據(jù)科學(xué)興起,Python成為必要的數(shù)據(jù)分析工具,大受歡迎,Python受到如此多贊譽(yù)和關(guān)注,主要是因為它的數(shù)據(jù)科學(xué)庫和它的用戶友好性。這并不奇怪,因為這種高級編程語言使用了類似英語的語法。
另一個讓Python無處不在的重要因素在于,它是一種開源的編程語言,這意味著它不會產(chǎn)生任何成本。
數(shù)據(jù)科學(xué)和Python相結(jié)合是一段充滿希望的冒險。開發(fā)者們可用它處理當(dāng)下的業(yè)務(wù)問題,從醫(yī)療健康到工業(yè)等涉及各個領(lǐng)域。從數(shù)據(jù)中獲得的洞見最終都要用于積極驅(qū)動市場,為企業(yè)和利益相關(guān)者創(chuàng)造雙贏環(huán)境。
隨著企業(yè)意識到數(shù)據(jù)科學(xué)的極大重要性,對數(shù)據(jù)科學(xué)家的需求便劇增了。由此,企業(yè)可應(yīng)用數(shù)據(jù)驅(qū)動的方式來優(yōu)化決策過程。
對于數(shù)據(jù)科學(xué)崗位的劇增,求職者的反應(yīng)可謂獨一無二。招聘人員發(fā)現(xiàn)他們收到的簡歷,不僅有來自與計算機(jī)科學(xué)相關(guān)背景的求職者,還有來自完全不相關(guān)領(lǐng)域,如人類學(xué)、社會科學(xué)和無學(xué)位的求職者。
數(shù)據(jù)科學(xué),只有Python就夠了嗎?
數(shù)據(jù)科學(xué)工作崗位需求的確在迅速增長。但與此同時,在這個領(lǐng)域獲得一份體面的工作仍然具有挑戰(zhàn)性,對新手尤甚。這是因為,數(shù)據(jù)科學(xué)在理論與現(xiàn)實生活應(yīng)用中存在著微妙區(qū)別,而后者與企業(yè)日常要處理的問題密切相關(guān)。
數(shù)據(jù)科學(xué)領(lǐng)域的學(xué)術(shù)界中,Python很受重視。教授們和講師們教授如何利用Python的庫,如NumPy, Pandas和Scikit-learn來理解數(shù)據(jù)。然而,雖然在某些情況下,單單Python就足以應(yīng)用數(shù)據(jù)科學(xué),但可惜的是,在企業(yè)界,它只是企業(yè)處理其大量數(shù)據(jù)的一小塊拼圖。
Python的局限性和其替代品
要追溯Python無法覆蓋從數(shù)據(jù)提取到模型評估的所有數(shù)據(jù)科學(xué)階段背后的原因,最重要的是要知道企業(yè)的數(shù)據(jù)首先儲存在哪里。大多數(shù)公司的數(shù)據(jù)儲存在服務(wù)器的數(shù)據(jù)庫上。這些數(shù)據(jù)庫需要被并發(fā)管理以保證效率和數(shù)據(jù)的可用性。
不幸的是,這項任務(wù)超出了Python的能力范圍,于是這里就需要SQL(結(jié)構(gòu)化查詢語言)來發(fā)揮作用。這就是為什么,可以理解,幾乎所有數(shù)據(jù)科學(xué)相關(guān)的工作崗位都會出現(xiàn)SQL。比如,數(shù)據(jù)分析師、業(yè)務(wù)分析師和數(shù)據(jù)科學(xué)家等。
此外,在著手處理數(shù)據(jù)科學(xué)中的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等具體細(xì)節(jié)之前,招聘經(jīng)理會測試應(yīng)聘者的SQL能力。問題在于,沒有了SQL,甚至無法獲得所需要的數(shù)據(jù)去處理。因此,從招聘者角度來看,SQL的使用經(jīng)驗比Python的更重要。
SQL VS Python
在專業(yè)人員中,SQL甚至比Python更受歡迎。2020年StackOverflow對47184位專業(yè)開發(fā)者進(jìn)行了關(guān)于最重要編碼語言的最新調(diào)查,其結(jié)論如下:

網(wǎng)絡(luò)開發(fā)語言占據(jù)榜首,如Javascript和HTML/CSS,分別占比69.7%和62.4%。SQL以56.9%的占比緊隨其后。Python以41.6%的占比排名第四,比SQL約低15%。
SQL vs Python: MOOCs
對網(wǎng)上教授SQL的課程進(jìn)行調(diào)查,得到了以下評論:首先,相比于Python,教授SQL的線上課程數(shù)量更少。舉例來說,在Edx搜索欄輸入“SQL”一詞,顯示課程量31,而輸入Python,這一數(shù)字是94。
其次,SQL的課程層次有缺口。簡單來說,要么是課程過于入門,要么是課程過于高級。前者是在SQL的表面上做文章,比如(SELECT、INSERT和UPDATE查詢)。而后者可能會顯得晦澀難懂,讓人無從下手。
雖然SQL在專業(yè)開發(fā)者群體中備受認(rèn)可,但奇怪的是,它在大多數(shù)線上學(xué)習(xí)平臺都被低估了。這對自學(xué)的人產(chǎn)生了負(fù)面影響,阻礙了他們向數(shù)據(jù)科學(xué)家前進(jìn)的腳步。
SQL在產(chǎn)業(yè)中的應(yīng)用
“競爭條件”是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)中經(jīng)常出現(xiàn)的問題。它發(fā)生在對一個數(shù)據(jù)庫同時進(jìn)行數(shù)百萬或數(shù)億次操作的情況下。舉個例子,當(dāng)社交媒體上的一個帖子被病毒式傳播,數(shù)百萬人同時與之互動,導(dǎo)致數(shù)據(jù)庫上的操作交織在一起,這將導(dǎo)致約束違反和更多不必要的結(jié)果。
細(xì)節(jié)就不多說了,在眾多解決方案中,有一種可能的方案來處理這些情況,那就是使用“鎖”。當(dāng)然,每種解決方案都有其用例和局限性。知道使用哪種方案及何時使用是一種技能,只有經(jīng)過專業(yè)的經(jīng)驗才可磨練出來。
啟發(fā)
圖源:Google
Python仍然是一門值得學(xué)習(xí)有趣的編程語言,特別是對于有抱負(fù)的數(shù)據(jù)科學(xué)家來說。它在數(shù)據(jù)科學(xué)中的重要性不容忽視或低估,但SQL仍然是領(lǐng)先的黑馬,在職位競爭激烈的時候,它讓你比其他候選人更有優(yōu)勢。
學(xué)習(xí)SQL不是走馬觀花。查詢語言不僅需要行業(yè)設(shè)置(如果在本地工作,則需要服務(wù)器),而且使用SQL工作涉及到使用多種數(shù)據(jù)庫軟件,MySQL、SQL Server和PostgreSQL等等。
SQL軟件的語法有輕微的差異。這可能會很煩人,因為不是所有的企業(yè)都使用相同的軟件。因此,至少應(yīng)該學(xué)習(xí)最常用的軟件,如MySQL和SQL Server。