小碼農(nóng)我長期埋頭搬磚惠毁,但也定期抬頭跟老板吐槽各種不夠人啊不夠人崎页。去年公司里發(fā)生了個有趣的人事和部門重組,本菜雞居然開始面試開發(fā)了——這種事情當然不是重點了——重點是后來又經(jīng)過了一系列神奇的項目變遷蜈膨,我們開始急招數(shù)據(jù)平臺相關(guān)的工程師翁巍,招平臺運維招數(shù)據(jù)工程師招算法工程師各種招~本菜雞主要面數(shù)據(jù)和算法相關(guān)的筒子啦~然后本碎碎念主要想念一念的就是休雌,通過這段時間的工作加面試經(jīng)驗,我對這個職位慢慢產(chǎn)生的一些理解驰凛。當然這里還是粗識淺見恰响,很不全面也不太追求全面涌献,只說幾個感觸比較深刻的點,偶爾也說得比較偏激间唉,大家隨意感受多多包涵利术。
說起數(shù)據(jù)工程印叁,好像是最近幾年突然就火起來的一個方向。仿佛一夜之間轮蜕,所有的公司都想從自己的日志里跃洛、數(shù)據(jù)庫里、和各種通用社交平臺上挖點錢出來——于是乎葱蝗,一大票統(tǒng)計相關(guān)專業(yè)的盆友們就嗨起來了:不就是數(shù)據(jù)分析嘛,我在行皂甘!還有另一票的CS盆友們也露出了自信的圍笑:跑代碼悼凑,我們更專業(yè)户辫!
在當下的IT浪潮中,數(shù)據(jù)分析看起來是整個行業(yè)的一大新興主干支柱無疑了捺萌,這里統(tǒng)計知識自然是迫切需要膘茎,CS的基礎(chǔ)也不可或缺;但是披坏,也許是產(chǎn)業(yè)發(fā)展太快棒拂,太多的公司一口氣押寶太多在這個方向帚屉,讓數(shù)據(jù)工程師這個頭銜不小心就沾上了水分。題圖引用了一句非常非常出名的話喻旷,正說明產(chǎn)業(yè)里過于浮躁的一面牢屋。
一個產(chǎn)業(yè)浮躁的話烙无,最直接的結(jié)果是什么?當然是工資開高了——經(jīng)濟學原理嘛~員工們在賣自己涮拗,當老板們來不及好好檢查員工水平的時候多搀,信息不對等就發(fā)生啦,信息不對等的時候,就出現(xiàn)了賣方市場啦赌髓,賣方市場的時候锁蠕,售價就上去啦~有些人的技能點其實并不適合做上量級的數(shù)據(jù)工程和分析荣倾,他們在行業(yè)里做的也并不一定和傳統(tǒng)的分析員二致悯搔,但是就有公司愿意以新興產(chǎn)業(yè)的價碼養(yǎng)著,不過估計隨著行業(yè)慢慢成熟舌仍,這樣的情況應(yīng)該會越來越少妒貌。
為什么上來就先說這個結(jié)果呢?因為傳統(tǒng)的分析性工作铸豁,在我個人淺見灌曙,已經(jīng)到了非常成熟的階段,一個崗位空缺開出來节芥,面試官們對應(yīng)聘者的水平在刺,已經(jīng)有相對清晰的衡量標準,可競爭的邊際優(yōu)勢實在太少太激烈头镊;如果這時一個應(yīng)聘者只有傳統(tǒng)統(tǒng)計背景的話蚣驼,很可能就必需非常搶眼非常聰明,才能在好的對口崗位上脫穎而出相艇。但是如果在這時候應(yīng)聘者表示自己能編程,或能用編程方法做數(shù)據(jù)分析,那情況就大大不同了——由于產(chǎn)業(yè)較新欲鹏,若面試官是業(yè)務(wù)背景為主的話赔嚎,他可能就比較難對應(yīng)聘者說的編程水平做出衡量侠畔;而若由一個程序員來面試的話,他也可能出于對團隊分析能力的需要,而在應(yīng)聘者的編程水平考量上降低標準瘦棋。
這樣的結(jié)果便造成了一種現(xiàn)象:一些非CS專業(yè)背景的人,在MOOC上學了一兩門課之后沛慢,就可以理直氣壯地說自己能編程——但是負責任地說,這樣的水平下只能做非常非常簡單的原型伐庭,對于任何上規(guī)模的分析,數(shù)據(jù)源和服務(wù)器給這樣的人玩集乔,至少有一個是要跪的。那換一個視角汗唱,程序員出身的領(lǐng)隊想給自己項目里的數(shù)據(jù)分析助力授霸,能不能讓這樣背景的人就只做簡單原型框弛,做出了原型再由程序員實現(xiàn)呢愉阎?竊以為也是不太可取的——如果真是有大量的數(shù)據(jù)要分析出點有價值的東西,小原型的一點偏差可能就是一個模型選擇的方向錯誤。而且真要把一個原型生產(chǎn)化的時候猿挚,如果里面的算法細節(jié)真啃清了之后绩蜻,做實現(xiàn)的工程師估計統(tǒng)計背景也差不多過關(guān)了……(貴廠場景如果真復(fù)雜到一定程度的話請忽視我的這段逼逼)
既然說到了做實現(xiàn)的工程師姚淆,就正好說一說另外一種背景的人——黑一黑我們CS自己人〗祷矗現(xiàn)在的MOOC實在是太平(lan)民(da)化(jie)了,尤其拜Andrew Ng所賜,Machine Learning的理論門檻被很好地降低到了一個足夠直覺的程度淑玫。這些本來都是初衷非常好的事情,但是“無意”之中佛寿,有一部分CS的童鞋,在缺少系統(tǒng)編程背景和基礎(chǔ)統(tǒng)計背景的支持下,憑著“我會ML了”的自我優(yōu)越感肢专,大搖大擺地往數(shù)據(jù)工程師方向找工作。其實這樣的選擇也是非常危險的。因為本質(zhì)上一個算法要被真正工程化狈醉,還有兩關(guān)要過:如果結(jié)論真是跑一個標準庫就出一個夠好的結(jié)果莺匠,那算我沒說摇庙,但是真正的調(diào)優(yōu)单匣,是要基于對整個推算和證明過程的理解码秉,想通過盯著API文檔瞎調(diào)試就把結(jié)果優(yōu)化……祝好運须鼎,即使調(diào)好了也沒有系統(tǒng)性的經(jīng)驗提升姓赤;另一關(guān)就是生產(chǎn)代碼的組織和維護——想讓一個代碼規(guī)整習慣良好的碼農(nóng),俯首貼耳地重構(gòu)一個長得隨性又寫意的原型岖食,提供原型的人要么得是大牛羡鸥,要么得是個美女(而且碼農(nóng)是單身雄性),否則沒兩天這個代碼規(guī)整習慣良好的碼農(nóng)可能就跑路了。
說到底我覺得大部分公司里真正招的人才應(yīng)該是增長黑客,如果這個詞聽著陌生宪祥,可以理解成運營導(dǎo)向的程序員——需要具備把運營需求轉(zhuǎn)化為數(shù)據(jù)細節(jié)的能力,并能有效利用代碼,合理地獲取數(shù)據(jù),再用統(tǒng)計方法驗證自己的猜想,最后還要在迭代中改進自己的算法或者系統(tǒng)。不論是“大數(shù)據(jù)”咽笼,或是各種新奇的算法和模型施掏,都只是浮在半空中的噱頭狸驳,說到底峦筒,真正應(yīng)該在意的物喷,是算法的效果和系統(tǒng)的可維護性,而這兩點,正好對應(yīng)了良好的統(tǒng)計和軟件工程基礎(chǔ)。
突然想起最近有一個同事跟我說,她以前覺得Python挺好的,Scala學習曲線太高不夠親民,直到最近才悟出原來Scala的學習曲線優(yōu)勢在于汇跨,真下了決心要搞數(shù)據(jù)工程這一行的人蚪黑,如果連Scala都搞不定掠剑,要么是心不夠決眠寿,要么是智力硬傷狡逢;如果對編程和統(tǒng)計都只是半桶水的話明吩,公司業(yè)務(wù)和線上平臺可能都因此而暴露在危險之中——而Python就太容易出結(jié)果仍律,讓太多人對這個行業(yè)誤解了……仔細想想還真是有些道理草则,是我上面這么一大坨夢囈一個不錯的總結(jié)。
一不小心扯了這么多,其實自己也是在這兩個方面努力中的小猿猿一只盒让。如果有人想來新加坡一起成長,或是有大牛來提攜本菜雞炒辉,帶我裝逼帶我飛屏轰,都請給我簡信喲(靠本來一開始沒準備發(fā)招人廣告的……我要找老板說說,跟部門HR美女分工錢)