大數(shù)據(jù)文摘作品,轉載具體要求見文末
編譯團隊 | 寒小陽 吳蕾 行者
我們都可以獨立工作但若聯(lián)手,便所向披靡結對編程是指特地安排兩名軟件工程師坐在同一臺工作站前,共同進行工作。
我參與了數(shù)百場技術講壇、公司宣講等活動遇到的第一個問題都會是為何我會熱衷于結對編程的工作形式。我的回答是:高效穩(wěn)定學習好,質量更可靠,沒有信息孤島,結對讓工程師真正幫到彼此。我在Pivotal公司最大的辦公室有125對,也就是250名工程師從事結對編程,所以我對此非常清楚。
由于結對編程的這些優(yōu)勢,讓我們想要在公司將其從高強度學習擴展至機器智能領域。
結對是最有效的學習方法
結對編程是快速創(chuàng)造高質量產(chǎn)品的最好方法,將機器智能元素融入產(chǎn)品,更不會拖你的后腿。
把數(shù)據(jù)科學家與工程師結成對子,將會使工程師快速具備機器學習研究的能力,讓工程師如虎添翼,同時,數(shù)據(jù)科學家也有機會了解自己的研究成果是如何應用的,還可以寫一些代碼,做出產(chǎn)品雛形。
如此一來,每個人都能看到系統(tǒng)全局,而不會囿于自身專業(yè)的一隅。合作的兩個人都能深入理解產(chǎn)品是如何端到端工作的,并嘗試更快地構建系統(tǒng)。最重要的是,工程師和數(shù)據(jù)科學家互相幫助,取長補短,破解難題,所向披靡。
如果是兩個工程師結對的話,彼此持續(xù)分享知識,省去了過多的頭腦風暴會議。結對的做法源自于人類社會屬性,因而能令人持續(xù)專注。工程師能夠在一起互學互助,心無旁騖地每天工作超過8小時,簡直就像在玩Facebook和看搞笑視頻一樣。
最終,代碼的質量就會提高。要知道,代碼的行數(shù)其實是越少越好。當兩名工程師一起寫代碼的時候,他們能夠互相交流,最終你會發(fā)現(xiàn)代碼質量在飛速提高。
Ben Rady: 如果所有的工程師都結對了,他們每個人的代碼數(shù)量不是減半了么?
數(shù)據(jù)科學家過于學術化
經(jīng)驗豐富的軟件工程師和數(shù)據(jù)科學博士們,像是來自于兩個完全不同的世界,他們創(chuàng)新和解決問題的方法是大相徑庭的。數(shù)據(jù)科學家通常熱衷于深入研究而比較少去接觸實際問題,他們善于開發(fā)新的機器學習理論,但并不會把這些理論用到實際產(chǎn)品中去。
與之對比鮮明的是,很多工程師對機器學習很有興趣,但是沒有接受過理論培訓或專業(yè)學習。在這一點上,我認為工程師并不需要博士學位才能有效應用機器學習。特別是,當他們能夠和博士們并肩工作的時候,他們就能夠快速積累相關知識。如此說來,還有什么學習方法比與專家共事更為有效呢?
對我們來說,結對就意味著打破理論和實踐之間的壁壘。我們認為,數(shù)據(jù)科學家不應該在一個產(chǎn)品研發(fā)環(huán)境中進行純理論研究。研究的終極目的是為了將其成果付諸于產(chǎn)品。只有機器學習使我們的用戶受益,方能體現(xiàn)出我們的價值。
孤立的團隊無法獲得成功
曾經(jīng)(甚至現(xiàn)在),很多公司會設立獨立的研究團隊。這個團隊會將孤身奮戰(zhàn),那些偉大的想法,可能要十年以后才能實現(xiàn)。到最后,只有少部分成果會慢慢地轉化為實際產(chǎn)品,而大多數(shù)成果可能就此湮滅,很多研究實驗室的工作就是這樣令人扼腕。
這樣的做法是有缺陷的,它把產(chǎn)品開發(fā)的研究階段和應用階段割裂開來。數(shù)據(jù)科學家得不到足夠的反饋,而工程師也有很多客觀限制,無法把研究轉化為實際產(chǎn)品。一旦你把研究成果堆在墻角,產(chǎn)品設計理念也就無法實現(xiàn),因此,這個方法必須改變。
結對編程,使我們能夠立即將學術理論以非常靈活的方式付諸于實踐。一些初創(chuàng)公司讓機器智能專家獨立于其他團隊工作,這些專家大門不出二門不邁,根本沒有真實客戶信息來驗證自己的想法。而我們恰恰反其道而行之,結對編程使我們能夠將最新的機器智能理論快速用于實際場景。
在Helpful公司,我們整個團隊的工程師和數(shù)據(jù)科學家都是結對工作的。我問過一些之前沒有結對編程經(jīng)歷的工程師,在這里感覺如何。他們回答說,第一,頗具成果;第二,學習力Max。有一名工程師說,我現(xiàn)工作能夠全情投入,并且大家也已經(jīng)習慣于結對來解決問題,整個團隊充滿活力。
在Michael Lewis的新書 原文鏈接:https://medium.com/@fnthawar/how-to-build-more-effective-machine-learning-teams-591f38601f76#.lg0j46lga 關于轉載 如需轉載,請在開篇顯著位置注明作者和出處(轉自:大數(shù)據(jù)文摘 |bigdatadigest),并在文章結尾放置大數(shù)據(jù)文摘醒目二維碼。無原創(chuàng)標識文章請按照轉載要求編輯,可直接轉載,轉載后請將轉載鏈接發(fā)送給我們;有原創(chuàng)標識文章,請發(fā)送【文章名稱-待授權公眾號名稱及ID】給我們申請白名單授權。未經(jīng)許可的轉載以及改編者,我們將依法追究其法律責任。聯(lián)系郵箱:zz@bigdatadigest.cn。 志愿者介紹 回復“志愿者”了解如何加入我們
往期精彩文章
利用Python進行深度學習的完整入門指南(附資源)