错误No.1:缺乏目标
错误No.1:缺乏目标
数据科学现在正是媒体的宠儿。原因很直接:有效地收集和分析数据的公司往往可以找到新的利润渠道,也可以改善公司的决策。
虽然这么说,但有些公司其实并没搞清楚数据科学到底是什么,其又能给公司带来多大收益的时候就匆匆加入了这个大部队。我把这种现象叫做上缴“数据科学虚荣税”,他们使用数据科学只是为了说自己在使用数据科学。
如何知道自己公司在数据科学方面的努力是会有所成效的呢?你可以向自己和其他决策层同事们提几个问题,比如投资预期回报率(ROI)是多少,或者数据科学的使用可以对公司带来什么样的好处。模糊的、不切实际的,或者无法实现的答案—比如“我们可以用机器学习解决这个棘手的特别复杂的问题!”—都不是好兆头。
解决方案: 想清楚公司“要做什么”以及“为什么要做”。
忽略媒体炒作和营销代理商的宣传手段,请关注你的商业模式和公司理念。问一问自己为什么对数据科学感兴趣,并弄清楚它可以带来什么收益。最重要的是,弄清楚“数据科学”和“机器学习”到底是什么,这样可以方便确定如何在公司的业务中使用它们。
错误No.2:缺乏计划
错误No.2:缺乏计划
你的目标在很大程度上决定了你想做什么。这是愿景,但愿景只是第一步。数据科学在战略和战术层面对你到底意味着什么?你又有没有整理出如何执行这个宏伟愿景的计划呢?
如果你没有一个详细的计划,就仿佛无头苍蝇一样,其结果只是浪费时间、精力、士气和金钱,但什么都收获不到。没有计划比没有目标更糟糕,因为即使你有做事的潜力,但实际上最终并没有真正做成什么。
解决方案:制定数据策略路线图。
请把“想做什么”和“怎么做”联系起来。其要点是:把想要解决的问题列成表,相应创立几个数据相关的项目,找到完成这些项目所需的数据集和技能。关键是要够具体。纸上谈兵或者过于简化问题只会徒增失望。
另一篇关于开发数据策略的文章:
http://qethanm.cc/2016/02/17/what-is-a-data-strategy/
错误No.3:初始阶段尝试太复杂的数据分析
错误No.3:初始阶段尝试太复杂的数据分析
媒体和营销代理商经常单独谈到数据科学,这导致人们误以为他们可以直接上手先进的数据科学项目,比如最近流行的深度学习。
事实上,一个成功的数据科学项目是有很多层基础的,即使在第一阶段的数据处理之前,还必须要清洗数据和拥有一个稳健的基础技术设施。
解决方案:从基本的工作开始,然后慢慢深入。
开发收集所需数据的机制,并部署存储系统以保证数据的保存和检索。然后,检查已有数据,确保它们可以进行分析。如果你发现“我们不知道有什么或者需要什么数据”,那说明你跳过了开发数据策略的步骤,参见上一条建议。
如果你已经有了这些数据和基础设施,为了让之后的处理更方便,你可以先尝试一些商业智能(BI,即business intelligent)技术,如计数,摘要和汇总。 商业智能技术不仅对公司整体有益(比如大家都希望得到的按地区划分的销售额数据),它还可以快速而廉价地测试数据。
通过摘要和汇总,我们可以快速找到数据中的不一致或者有问题的地方。如果商业智能的测试失败了,那么更高端的数据科学处理也无法进行。
错误No.4: 让招聘人员毫无准备地开始接触候选人
错误No.4: 让招聘人员毫无准备地开始接触候选人
你希望求职者做好万全准备,对吗?其实你自己也应该这样做。从有经验的数据科学家那里,我听到的最常见的抱怨就是在接到一个冷冰冰的电话或者一封邮件之后,发现电话或邮件另一边那个吹嘘某知名公司开了个很好的岗位的那个人,并没有提供这个岗位的详细信息。
当然,你应该告诉这些求职者休假政策和办公环境是怎么样的。 你还应该详细讲解他们在加入公司之后将要做的事情。有经验的从业者(甚至一些聪明的的职场新人)都会想要知道公司使用了哪些工具,他们可能会参与什么样的项目,以及他们的工作对公司有什么用。
有些招聘人员在这里会用一些模糊的回答敷衍了事,比如说“团队用Python写代码”或“在聘用你之后,我们会告诉你具体负责的工作”。这么做很容易让求职者失去兴趣。如果这么做了,不要指望他们之后会接听你的电话。
解决方案:找个经理,招人的接洽工作自己来做。
在正式的面试之外,其实有很多可以找到不错潜在雇员的机会。拥有招聘权的你,有能力—也有责任—走出办公室,自己找人才。 你可以参加小型聚会或行业会议,甚至自己在公司里举办一个和数据相关的会谈。这样就可以在轻松的环境中,积极主动地面对潜在的职位候选人。
在参加活动的时候,不要一见面就说“我们在招人”然后把他们直接送到HR。相反,你可以和他们讨论几个目标职位,问一问他们想做什么样的项目。评估一下他们的兴趣、技术水平,看一看他们和自己的团队合不合的来,最后再找到HR,正式确定这次招聘。
错误No.5:要求提的太高
错误No.5:要求提的太高
你遇到过数据科学的岗位开放几个月之后还是没招到人的情况吗?甚至都没人来投简历?如果这是你第一次招聘数据科学相关工作时遇到的事,就可要加倍注意了。
在这种情况下,有可能出问题的不是候选人而是工作描述和对求职者的预期。这个领域很多岗位描述要求的简直是个全能王:不仅经验丰富,用得惯各种工具,scikit-learn,TensorFlow,神经网络,文本分析和流失预测(churn predictions),还要有统计学博士学位 。
对了,他们是不是还需要把他们的模型整合到产品的网站上?或者还要管理数据库?
我明白。我也相信这句老话:如果你不说,你就找不到符合要求的。但这里还有另一面:提出了要求,也并不意味着一定会被满足 。
如果你一直在找符合每个要求的候选人,那多半会等待很长时间。而且,符合这些条件的少数几个人在很久以前就很有可能已经被抢走了,这意味着这些人根本不在你的搜索范围之内。
更糟糕的是,符合大部分要求的人将会从字里行间了解到,写着这样招聘信息的公司都不怎么样,所以这种方式是找不到知识渊博并且很抢手的数据科学家的。
解决方案:把职位要求放现实一点。
这个问题经常会在还未建立数据策略时发生。如果缺乏这样的策略,说明你并不清楚自己需要什么,所以以防万一,你更倾向于向求职者要求所有可能会用到的技术。
这个时候,虽然符合条件的数据科学家可能会出现,但多半不太可能。你应该做的就是把这个岗位分成不同的角色,也可以把这些技能分成“必须有的”和“可以学的”两类。符合要求的申请人会看到你有实际可行的期望,所以更有可能申请这个工作。
错误No.6:不切实际的面试方法或衡量标准
错误No.6:不切实际的面试方法或衡量标准
对数据科学的报道中经常提到薪水:年纪轻轻往往就享有高薪,不仅如此,公司还把薪水当作激励脑力工作的手段。这样的待遇谁不想要呢?然而,有些公司的面试流程却让人看不到录取希望。其中有些流程的设置既不让人开心,也不切实际,以至于公司自己赶走了他们本想聘用的候选人。
例如,假设你的公司使用scikit-learn之类现成的工具,但你却仍然希望求职者可以在白板上写出实施K均值聚类算法(K-means clustering)的代码;或者,你向某候选人发了一个需要花好几天才能完成的项目作业;又或者你不接受没参加过Kaggle竞赛的人,或者在GitHub上没什么东西的人,又或者没有特定学术背景的人。
与其说这些是对优秀人才的甄选,还不如说是招聘人才的障碍。这些条件的设置并没有真正衡量出候选人的实际技能,更重要的是,这么做反而会赶走合格的申请者。这些人都知道自己很受欢迎,可以去其他地方找工作。
解决方案:更实际的面试。
最基本的,把面试中的技术性题目限制在公司真正会用的工具上,而且也请按照实际使用这些工具的方式来问问题。你可以在理论层面深入一些,询问候选人在处理一些问题时如何使用(或者更简单点,是否使用)某种技术。
面对经验丰富的候选人时,可以问一些关于他们之前工作的开放性问题,并给他们足够的发挥空间,从而了解这些人在过去是怎样解决问题的。
如果你非常想在面试中保留类似demo或者在白板上写程序的话(实话说,其实并不需要),那么一定要确保这些环节和他们在工作中真正做的事情相关。
错误No.7:先聘用数据科学家
错误No.7:先聘用数据科学家
除非你的公司已经有了可靠的数据基础架构和内部的商业智能(BI)实践,否则你将需要找个数据工程师来构建数据管道(data pipeline),或者给数据科学家们准备好可用的数据。很多公司因为并不觉得这是真正的数据科学而跳过了这一步,然而实际上他们犯了一个昂贵的错误。
如果你直接先聘请了数据科学家,那他们将会因为没有数据可用而觉得无聊,最终离开公司。 或者,他们也许会承担数据工程师的角色但却对此感到不快(记得,他们入职的并不是这个岗位!)这一点通常是他们离开的先兆。
不过,所有这些发生的前提都是你有能力让他们成功入职,好的数据科学家其实在面试中就会发现你没有做好准备,而拒绝你的offer。
解决方案:先聘请数据工程师。
虽然这么做的话,你的同事们或上级可能会有些质疑:“我本以为我们要做的是数据科学,但你雇的这个人整天都在弄数据库!”但是你需要坚定你的立场,并向他们解释为什么聘用数据工程师是必要的第一步。
其额外的好处是,聘用数据工程师会缩小数据科学家的工作范围。这是因为你的数据科学家进行数据准备的时间会减少。基于此,你可以降低对数据科学家的要求来更快速地招到符合标准的人。
如果你的第一位数据领域聘用人员是非常有经验的数据专业人士(除了拥有非常完善的数据技能外,还拥有全面的技术背景),并且你的公司内部已经有功能强大的商业智能技术时,则可以降低这项要求。
在这种情况下,大部分数据基础已经到位,数据科学家可以在最初自己上手所需的数据工程相关工作。不过,这样做的前提是未来这个数据团队在规划上是会扩张的。数据科学家可以去雇用专职数据工程师或其他数据科学家来接管自己的部分工作。
但是这引出了我的下一个论点:
错误No.8:先聘用初级数据科学家
错误No.8:先聘用初级数据科学家
市场对数据科学家的强烈需求产生了一些副作用,其中一个就是,他们期望高额的薪水。一些公司(尤其是初创公司)会对经验丰富的专业人士对薪资的预期感到畏缩。所以他们试图通过聘用一个工作经验很少或没有工作经验的人来节省资金,无论是刚毕业的学生还是仅仅在类似新手训练营的培训项目里接触过数据科学的人。
乍一看,这决定看起来不错,因为节约的薪资很容易被量化。然而事实上这种方式并不好,主要是因为这种方式对被聘用的人很不公平:作为第一个也是唯一的数据科学家,当他陷入困境时根本无法找更有经验的人寻求帮助(他有时候甚至可能都意识不到自己陷入了困境)。
必须自学所有东西的结果就是难以发挥自己的技能。这个人甚至有可能会因此感到沮丧并离开公司。
解决方案:最开始先找一位经验丰富的数据人员。
这里指的是那些熟知各个环节,只需极少的帮助就能够迅速行动的人。在他们的帮助下公司将更快地看到在数据科学投资上的回报。这些人的薪水确实高于入门级人员,但这笔花费其实很值。
那你还应该去聘请初级数据科学家吗?当然!不过关键是要首先建立一个经验丰富的数据科学家团队,不然就是创建一个能够帮助这个人成长的环境。
错误No.9:坚持DIY(所有的事情都自己来)
错误No.9:坚持DIY(所有的事情都自己来)
这是一个鸡生蛋蛋生鸡的问题:为了实现(数据科学相关的)解决方案你就需要聘用一位数据科学家,而聘用数据科学家你就需要有数据科学经验的人来梳理设计解决方案和匹配人才需求。可如果你的公司或团队本身已具备一定的数据科学经验,那么这解决方案早就应该已经实施了,何必招人!
一些公司试图摆脱这种困境。这些公司将软件开发人员和数据科学家安排到同一个团队中(都是技术相关的,对吧?),并任命首席开发人员或CTO去领导公司的招聘。这样的领导往往跳过开发数据策略的步骤来直接开始写岗位描述。
虽然他有技术经验,但缺乏数据背景,因此招聘信息根本没有用。然后,HR和猎头就开始了对候选人的盲目地大范围追逐。等到候选人接受面试时,就会意识到公司内部并没有数据科学人才,没有人能听懂他们在说什么,所以没有人能够真正评估自己技能和经验。最终,面试失败了。
而那些经历过面试的人呢?领导会说:“他们确实不错,但并不是我们正在找的人......下一个!”这个位置毫不意外地保持开放几个月,有时甚至还超过一年。
解决方案:写招聘信息和面试候选人的时候寻求外部帮助。
如果你的公司本身还没有什么数据科学方面的经验,请聘请经验丰富的数据专家与你一起写岗位描述或者做面试。这位专家不会取代你的人力资源和招聘团队,但可以缩小寻找候选人的范围,也可以和候选人有交流合作,从而加强招聘部门的工作成效。
错误No.10:太急躁
错误No.10:太急躁
希望你已经能用上文中提到的技巧来改进数据科学人才的招聘方式了。这个时候,你已经制定了一套现实的数据策略,调整了面试过程,也从外部聘请了一些有经验的人士来撰写岗位描述,帮助你面试候选人。然后怎么办呢?你现在已打开了大门,数据学家就会蜂拥而入,对吧?事实上并不是如此。
解决方案:请耐心等待。
文章中提到的所有解决方案都可以帮助你做足最好的准备,拿到一手好牌。然而,你仍然需要积极地搜索,以便找到候选人和面试候选人。即使你做的都是正确的事情,你仍然在与其他公司竞争数据人才。别太急,要有耐心!