数据科学家和工程师:各霸一方,一旦联手,所向披靡

简介:


我们都可以独立工作

但若联手,便所向披靡


结对编程是指特地安排两名软件工程师坐在同一台工作站前,共同进行工作。


我参与了数百场技术讲坛、公司宣讲等活动遇到的第一个问题都会是为何我会热衷于结对编程的工作形式。我的回答是:高效稳定学习好,质量更可靠,没有信息孤岛,结对让工程师真正帮到彼此。我在Pivotal公司最大的办公室有125对,也就是250名工程师从事结对编程,所以我对此非常清楚。


由于结对编程的这些优势,让我们想要在公司将其从高强度学习扩展至机器智能领域。



结对是最有效的学习方法


结对编程是快速创造高质量产品的最好方法,将机器智能元素融入产品,更不会拖你的后腿。


把数据科学家与工程师结成对子,将会使工程师快速具备机器学习研究的能力,让工程师如虎添翼,同时,数据科学家也有机会了解自己的研究成果是如何应用的,还可以写一些代码,做出产品雏形。


如此一来,每个人都能看到系统全局,而不会囿于自身专业的一隅。合作的两个人都能深入理解产品是如何端到端工作的,并尝试更快地构建系统。最重要的是,工程师和数据科学家互相帮助,取长补短,破解难题,所向披靡。


如果是两个工程师结对的话,彼此持续分享知识,省去了过多的头脑风暴会议。结对的做法源自于人类社会属性,因而能令人持续专注。工程师能够在一起互学互助,心无旁骛地每天工作超过8小时,简直就像在玩Facebook和看搞笑视频一样。


最终,代码的质量就会提高。要知道,代码的行数其实是越少越好。当两名工程师一起写代码的时候,他们能够互相交流,最终你会发现代码质量在飞速提高。


Ben Rady: 如果所有的工程师都结对了,他们每个人的代码数量不是减半了么?


数据科学家过于学术化


经验丰富的软件工程师和数据科学博士们,像是来自于两个完全不同的世界,他们创新和解决问题的方法是大相径庭的。数据科学家通常热衷于深入研究而比较少去接触实际问题,他们善于开发新的机器学习理论,但并不会把这些理论用到实际产品中去。


与之对比鲜明的是,很多工程师对机器学习很有兴趣,但是没有接受过理论培训或专业学习。在这一点上,我认为工程师并不需要博士学位才能有效应用机器学习。特别是,当他们能够和博士们并肩工作的时候,他们就能够快速积累相关知识。如此说来,还有什么学习方法比与专家共事更为有效呢?


对我们来说,结对就意味着打破理论和实践之间的壁垒。我们认为,数据科学家不应该在一个产品研发环境中进行纯理论研究。研究的终极目的是为了将其成果付诸于产品。只有机器学习使我们的用户受益,方能体现出我们的价值。


孤立的团队无法获得成功


曾经(甚至现在),很多公司会设立独立的研究团队。这个团队会将孤身奋战,那些伟大的想法,可能要十年以后才能实现。到最后,只有少部分成果会慢慢地转化为实际产品,而大多数成果可能就此湮灭,很多研究实验室的工作就是这样令人扼腕。


这样的做法是有缺陷的,它把产品开发的研究阶段和应用阶段割裂开来。数据科学家得不到足够的反馈,而工程师也有很多客观限制,无法把研究转化为实际产品。一旦你把研究成果堆在墙角,产品设计理念也就无法实现,因此,这个方法必须改变。


结对编程,使我们能够立即将学术理论以非常灵活的方式付诸于实践。一些初创公司让机器智能专家独立于其他团队工作,这些专家大门不出二门不迈,根本没有真实客户信息来验证自己的想法。而我们恰恰反其道而行之,结对编程使我们能够将最新的机器智能理论快速用于实际场景。


在Helpful公司,我们整个团队的工程师和数据科学家都是结对工作的。我问过一些之前没有结对编程经历的工程师,在这里感觉如何。他们回答说,第一,颇具成果;第二,学习力Max。有一名工程师说,我现工作能够全情投入,并且大家也已经习惯于结对来解决问题,整个团队充满活力。


在Michael Lewis的新书 中,他采访了Daniel Kahneman关于他与Amos Tversky合作荣获诺贝尔奖项的事情。Daniel再度将此成果归功于他们之间的关系,归功于他们结对工作,在关键思想中互相支持,最终创建了行为经济学。Kahneman的回答非常简洁:我们可以独立工作,但若联手,即为天才。

原文发布时间为:2017-02-06

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
存储 关系型数据库 MySQL
轻松入门MySQL:揭秘MySQL游标,数据处理的神秘利器(16)
轻松入门MySQL:揭秘MySQL游标,数据处理的神秘利器(16)
381 0
|
7月前
|
SQL 人工智能 JSON
借助大模型提升甲方安全黑白灰运营效率实践
背景 随着大模型时代的到来,许多领域都能够借助大模型提高生产效率,安全领域也不例外。本文通过实践探索了如何借助大模型提升甲方安全运营中的漏洞发现效率和漏洞修复推荐效率。 甲方安全运营过程中,不仅需要能够发现漏洞,还需要将漏洞推进给业务线修复,本文实践主要围绕,通过GPT来提高漏洞审核效率,以及漏洞推进效率而进行。 本文使用 AWVS、DongTai IAST、CodeQl 等工具,并整合到安全工具集成平台 QingScan 中,以便实践和测试。
156 9
|
程序员 开发者
IDEA插件-Grep Console彩色控制台
IDEA插件-Grep Console是一款用于增强IDEA开发环境的工具,它可以帮助开发者更好地搜索和过滤控制台输出。
1923 0
IDEA插件-Grep Console彩色控制台
|
前端开发 Linux PHP
Composer 入门与 Laravel 安装指南
【8月更文挑战第31天】
402 2
|
JavaScript Windows
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 1x.x
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 1x.x
687 0
怎样将Beyond Compare添加到系统右键菜单
怎样将Beyond Compare添加到系统右键菜单
2166 0
|
Java API Spring
Spring5入门到实战------1、Spring5框架概述、入门案例
这篇文章是Spring5框架的入门教程,概述了Spring框架的核心概念和特点,并通过一个创建普通Java类的案例,详细演示了从下载Spring核心Jar包、创建配置文件、编写测试代码到运行测试结果的完整流程,涵盖了Spring IOC容器的使用和依赖注入的基本用法。
|
运维 监控 Dubbo
阿里云互联网中间件五剑客之——企业级分布式应用服务EDAS
阿里云互联网中间件五剑客之——企业级分布式应用服务EDAS自制脑图, 企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )、HSF 等微服务运行环境,助力您的各类应用轻松上云。
627 88
阿里云互联网中间件五剑客之——企业级分布式应用服务EDAS
|
SQL 关系型数据库 MySQL
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
1447 1
|
存储 缓存 小程序
详细讲解缓冲区
详细讲解缓冲区