设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 创业 > 点评 > 正文

深扒一个独角兽公司标配,但仍被低估的岗位(4)

发布时间:2017-01-02 12:10 所属栏目:27 来源:峰瑞资本
导读:▲纵轴表示技能,横轴则表示相对偏差(Relative Difference:某一次测量的绝对偏差占平均值的百分比)。深蓝色、天蓝色、橘色分别代表三种公司规模:1-200人、200-1000人、1000人以上。越接近图表顶部,该技能越应

▲纵轴表示技能,横轴则表示相对偏差(Relative Difference:某一次测量的绝对偏差占平均值的百分比)。深蓝色、天蓝色、橘色分别代表三种公司规模:1-200人、200-1000人、1000人以上。越接近图表顶部,该技能越应用于较小的公司,反之,位于底部的技能更普遍地出现在 1000 人及以上的公司里。

看完表,我们可以用数据回答先前的猜测:NO。

真实情况是,在规模更大的公司,数据工程师更在意 “企业级” 相关的技能,比如 ETL(Extract-Transform-Load)、BI(Business Intelligence:商业智能)、数据仓库等,而在较小的公司,数据工程师更多的把心力花在 Python、Java 等编程语言上(编者按:Python 和 Java 作为普通的编程语言,可以用来构建产品,这对于小公司来说属于核心业务。)

专家洞见

Will Smith,MIT 的主数据工程师 / 架构师:“数据工程 @大公司 VS. 初创公司”

Will 曾为 Nokia、Warner Bros Games 这种大公司打造过数据技术。在他看来,数据工程师所仰赖的技术,不那么取决于公司规模本身,而更应该从这么一种角度出发:你所负责的数据是“写时模式”(schema-on-write)还是“读时模式”(schema-on-read)?

他认为,大公司往往在处理数据工程的 BI 方面有所积累,Informatica、Oracle、SAP 都会接触和使用。这类公司往往在“写时模式”的环境里工作。

但现如今,很多打造数据科技的公司实际作业的环境是“读时模式”。“想象一下,公司交给你几个 TB 的日志数据,用的 JSON,是关于广告效果的。数据工程师不知道能从这堆数据中挖掘出什么,所以你需要开发者写代码去做数据发掘,而不是一上来就直接套用 SQL。这和大公司在 ‘写时模式’ 的环境中做事很不一样。”

2011年时,Will 正效力于诺基亚 (Nokia)。尽管当时主要经手 “企业级的数据”,但团队却选择“读时模式”的思路去开展相关工作。

“现在很多数据工程师都这么做,比较适合规模化的需求。这样设计和开发出来的东西,可以消化掉来自于各种来源的数据。传统老旧的 BI 系统就没这能耐——主要是因为以’写时模式’为基础吧,这种老技术不知道在一堆数据里都有什么,这么一来我们这些工程师也没啥头绪了。”

9、数据工程师与数据科学家的技能差异是怎样的

这个数据集体现了数据工程师与数据科学家之间的明显的技能差异,由此可以将数据工程师与数据科学家的技能构成看作一个频谱的两个对立面。

以下这张图表显示了一张数据技能频谱图,频谱图顶端的技能在数据工程师的简历中更为常见,而频谱底端的技能更常出现在数据科学家的简历中。

【图表:数据工程师与数据科学家的区别】

▲从图表的技能构成可以看出,数据工程师更倾向于掌握 “战术层面” 的具体数据技能,专注于使数据可用并能够在生产环境中对数据进行处理,如具体的编程语言、操作系统与数据库等;而数据科学家更倾向于“战略层面”的数据技能,如数据分析、数据挖掘、统计分析、机器学习等。

10、数据工程师与软件工程师的技能差异是怎样的

数据工程师与数据科学家之间的差异是十分明显的,那么数据工程师与软件工程师之间的技能差异又是怎样的呢?毕竟,正如我们之前所展示的那样,大部分的数据工程师都具有软件工程师的背景。

【图表:数据工程师与软件工程师之间的区别】

▲以数据工程师为中心的最多人选择的技能是 Hadoop,数据仓库和 BI——正如你所期望的那样。与之相反,在软件工程师端列出的所有技能几乎都与 web 前端开发相关。最大的两个例外是 C 语言和 C++ 语言,这是在现代大数据技术栈开发中不常用到的编程语言。

虽然许多数据工程师具有软件工程师背景,但他们并不是简单的为了博取加薪而转换一个新的工作头衔;他们不得不通过学习新的技能来适应新的角色。

专家洞见

Ryan Orban,Galvanize CTO:“在数据工程师和数据科学家之间建立更好的关系”

“想一想设计师和前端开发工程师之间的关系,” Ryan Orban 说,“一个角色负责通过想法完成工作,而另一个角色负责将想法付诸实施,这之间可能会导致很多的紧张对立情绪。” Ryan 认为,数据工程师和数据科学家之间的关系与之类似,因此缓解两者之间的紧张情绪的方法也是相似的。“正如设计师经常被告知需要学习编写一些代码,而前端开发工程师也经常被告知要制作一些原型,我鼓励数据科学家和数据工程师相互学习一些对方所需要掌握的数据技能。”

那么,数据工程师需要多深入的了解数据科学家的世界呢?

“数据工程师应该对机器学习有一些基本的了解”,Ryan 说,“他们不需要了解所有的数学理论,但是他们应该能够判断效率和准确性。相反,数据科学家应该了解架构,以及如何对架构进行扩展,并初步了解生产级的编程语言。”

这种深入了解其他相关学科专业知识的转变也发生在其他领域。公司习惯于聘请数据科学家来负责市场、产品或者业务分析方面的工作,而聘请数据工程师来完成更广泛的工程功能。这造成了目标错位。Ryan 认为这种趋势正在改变:“ ‘数据团队’ 是由数据科学家和数据工程师共同构成的这一概念越来越受欢迎。这一如此简单的改变将很大的改善两组人员之间的关系。”

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读