大数据工程师 = 系统工程 + 大规模数据处理 + 数据分析 + 机器学习 + 商业智能
大数据工程师首先是一个系统工程师,也是一个软件工程师。同时,他还得有一些特定的技能,会做大规模数据处理,比如当你的数据有PB量级甚至ZD量级时,你需要会Leverage云平台等,通过几千台机器并行处理,解决大规模数据处理的问题。
大数据工程师还和数据科学家有重叠,二者都要有很强的数据分析能力,比如会用Matlab,R,Python等。仅仅做简单的数据分析可能也不够,大数据工程师还得做机器学习模型,最终我们希望大数据工程师做到的是商业智能。
大数据工程师的最终的目的,是帮助公司提供更好的用户体验,做出最优决策,获取更多的利润。他的工作成果是帮助企业挖掘出数据里的价值,从而实现Data-driven decision making。在个性化、在线广告领域,大数据工程有巨大的商业价值,Yahoo,Facebook,Google的80%以上的收入都来源于广告。通常,大数据工程师要解决的问题是,当一个用户在网站上出现时,如何显示一个与该用户喜好最相关的广告,使他最有可能去点击,从而提高公司的广告收入,这些都是需要通过大数据分析和机器学习建模,帮助做决策。
如果你是New grad,面试官期望你熟练掌握一门面向对象的通用语言 (如Java)。如果你只会C++,进公司后可能还是得去熟悉Java,因为很多时候编程语言的选择是与所用框架相关的, 比如Hadoop就是用Java编写的,用C++写Hadoop的应用就不是很方便。
另外,熟悉一门脚本语言 ,如Python,Go. R和Matlab不认为是一个Decent的脚本语言。
对候选人更重要的要求是基本的程序设计素养。如果程序设计功底足够好,熟悉一个新语言就是一两周的事情,面试官可能会从他平时工作的项目里提炼一些问题,看你能不能找到合适的解决方案。