宾:我先自己介绍,我本科就读于南开大学软件专业。毕业后第一份工作是在创业公司酷讯负责垂直搜索频道技术业务。人生的第一份工作,自然受益匪浅。我后来在百度工作,在一个技术驱动型非常强的公司学习实践云计算技术。
董老师 在硕士期间,有机会去了Amazon实习,参与Amazon Web Services EC2的基础架构建立。亚马逊云计算是全球领先地位。这与我当时的大数据研究项目有很大的相关性。在技术的广度和深度有了一定的积累以后,我把更多关注放在了互联网产品上,我个人对消费者互联网一直都非常感兴趣。在杜克大学毕业以后,去了职业社交网站LinkedIn工作。选择LinkedIn有一大原因是因为我一直是它的深度用户,自身对探索不同人的成长轨迹和职业发展历程非常感兴趣。LinkedIn就提供了一个很大的职业社交平台,让用户主动上传简历并很方便搜索到,让榜样的力量在这个平台上发扬光大,我也看到所有名人都不是一夕成名,一步步成长的履历。另外它是一个比较开放式的公司。不管是对待员工,还是工作的自由性上都很好得体现了硅谷典型的管理模式。加入公司后我在广告部负责首页Sponsor Update的技术构架搭建。此类技术和我们熟悉的Facebook及Twitter的投放广告非常类似,但当时是LindedIn的一个新产品。这段经历让我对产品的开发流程,特别是技术架构和广告系统有更深入的把控,也成功帮助公司赢得巨大移动收入,完成了一个很关键的战略布局。很快就晋升为了资深工程师。
董老师:在我第一份工作时,因受金融危机和其他一些因素的影响,工作中出现了一些不顺利。如一些IT人一样,我对硅谷这样一个集人才,技术和资本于一体的肥沃土壤有着异常的渴望和憧憬。带着这样的硅谷情节,在当时工作上没有合适外派机会的情况下,我选择了出国读书。在杜克读书时候,刚好我的导师就是在大数据方面做一些实践,我也很欣喜可以把研究和最新的工业实践Hadoop平台结合,当时做出了很好的结果发表在VLDB,SOCC国际数据库和云计算大会上
董老师:在国内工作的时候,对技术有着狂热的追求。当时大学刚毕业,学习的热情非常的高,玩各种开源技术,编程语言,框架,工具。但从酷讯到百度让我知道,正规的互联网公司在做到一定规模以后,还是需要挖掘技术上的深度。我意识到了自己在技术上有广度而缺乏深度的问题。举例,百度云计算非常讲究高性能,对代码的要求和质量把控非常严格。当时的工作对自己是一个非常好的训练,让我懂得不能因草率和贪图一时的hack,而牺牲了产品长远的稳定性和可维护性。百度文化就是简单可依赖,我们开玩笑,早上起来第一件是 就是上百度,不是要搜索什么,而是检查网络是否可用。
我记得印象深刻的面试:面试者岁数大些,当时我面的时候也没出众,我准备给他一个一般的分,但他回去马上给我写了一篇长信,解释当时我问的问题,给出详细参考,我对他的回答非常佩服,至少态度很积极,也许是当场没有发挥好,我立马改变了印象,给他很高评价,但其中有个初级面试官居然给他1分,什么概念(if you hire him, I will go), 这样就把他平均分给拉下来,我觉得这样不公正,就在招聘会议上为他说话,最后他也拿到Offer顺利来到公司,事实证明这是一个挺优秀的技术人员。
董老师 招聘流程:一般是没有笔试。如果HR发现简历的一些关键字和背景符合职位需求,简单介绍公司,安排1,2轮电面,如果通过,邀请onsite面试,里面会有4-7轮,里面涉及到不少白板编程
董老师 也喜欢举办公开技术讲座,邀请社会各界参加,注册时留下联系方式。或者写一些技术博客,开源产品,通过他们做的有意思的项目来间接吸引人才。有时也举办一些hackathon比赛,24小时做出一个小产品原型,欢迎各类技术人才挑战。当时我也参加LinkedIn的编程马拉松,每人发一件T-shirt,写着 Eat, Code, No Sleep。我记得内部统计表示,2/3的人都是通过内部推荐进来的。
董老师 一般公司都有自己的Refer和面试系统,HR人员寻找候选人,在LinkedIn上就有丰富全面的简历库,通过对毕业学校,就职公司的过滤去挖掘潜在员工。还有一些高水平的学术会议,工业界愿意支持和参与,像SIGMOD,VLDB顶级数据库大会
下面说说硅谷公司招人的渠道
董老师 很有幸拿到过很多公司的offer,最后选择Coursera主要是非常认同在线教育的社会意义。虽然从事这一领域报酬不一定很优渥,但是它的社会价值可以一直激励我前进。我希望可以通过自己的努力,改变世界,哪怕是提高微小的一点也是令人振奋的。还有公司规模也是比较合适,当时100人左右,我觉得还有很大的成长空间。
董老师 因为自身对创业公司氛围的喜爱,决定去寻找其他的机会。决定离开LinkedIn觉得当时的工作被限制在广告领域,而个人对广告方面兴趣并不大。我认为广告行业是发展较成熟的行业,创新机会相对偏少。当时除了跳槽之外的另一选择是转换到其他的部门,但这样就是不够挑战,我一直希望自己Step out of your comfort zone,于是开始了自己的面试之旅,借面试这个渠道去了解LinkedIn外面的世界。
格式 除非你想面试体验或者设计相关的职位,否则简历的格式尽量以简介清晰为主。标题及名字等重要信息可以适当加粗或者增大字体,其他文字描述尽量统一字号。字体选定一种即可,不建议用不同的字体去突出不同的内容:不同的字体会显得版面杂乱,并且对排版造成困难。英文简历Calibri是比较适宜的字体,中文可以用宋体。简历可以用Word,Latex,Pages或者InDesign制作,但是最后务必导出成PDF,确保在不同的平台上,对方看到的格式与你一致。
董老师 简历是招工求职的第一关,尽管简历不能决定最后的录取结果,但是一份结构清晰,内容充实且具有针对性的简历可以给你带来宝贵的面试机会。本节将从格式,内容安排和描述技巧等方面介绍如何生成一份对HR有吸引力的简历。简历可以根据不同的职位描述适当更改一些内容,但不建议准备太多份区别过大的简历,以免自己投递的时候产生错误。如果你真的需要这么多简历以应对不同职位,则应当考虑下自己的优势在哪些方面,适当减少求职目标。
董老师 下面说说简历的注意问题
面试官提出质疑的时候,第一,不要觉得面试官什么都不懂,怎么这都不知道(其实他只是看一下你是否真的懂),第二,面试官比你经验丰富得多,很有可能就是你犯错了,赶紧想想是不是真的有问题。
让面试官时刻明白你的意图,不要闭着眼睛不停写。对于面试官来说,他根本不知道你的解题进行到哪一步了。你可以反复和面试官交流自己的想法,得到面试官认可以后再动手写。可以讲讲你怎样想到这个思路的。记住,你并不是要说服他接受你的想法,而是要把你的想法解释给他听。
如何表现自己体现沟通能力? 首先你要站在面试官的角度,面试官招你进去当同事,他希望同事怎么样的人就决定了他的立场。学会换位思考。
哪些是不可取的人: 1 不愿意学习,对他说的或者写的很自大,但却不虚心接受其他人指出的问题和建议。 2 企业文化不合,对公司的使命和价值观有一些偏差,这个比技术功底更致命,主要是找志同道合的。
比如好奇和热情,如果面试者说不清为啥要申请,或者没啥主动提问的,我会觉得对公司兴趣不大,没有好好做功课,态度上不够积极,而就算最后技术很出色,在评价上也是要打折扣。另外如果他技术面很狭隘,技术兴趣不广泛,可能也要考虑是否能胜任创业公司不断变化的环境。
4 系统设计:包括设计大型系统的架构选型,各种不同组件的tradeoff,数据库系统,网络系统,分布式系统。比如什么时候适合用NoSQL,如何做一个推送系统,缓存系统如何搭建。
3. 交流:用到的英文都比较浅显,听和读应该问题不大,但最好在说和写方面下大功夫,这能突破一些天花板,更多融入团队交流。
2. 代码简洁优美没有bug,常见算法的应用,优化技巧,比如如何把一个O(n^2)的算法优化成线性。好的编程习惯一定要坚持,格式:缩进可以良好排版,括号要对齐,变量名起的有意义。边界检查,参数检查,异常处理,单元测试。主动写出合理的Test case,一些常见的null检查。
董老师 如何选拔技术人才:1 平常扎实的技术积累,包括系统知识点,不同编程语言,开源工具,团队合作工具,比如, Restful架构有哪些特点,动态语言的优劣
这是Hortonworks提出的data platform,这个公司比较强势,有最多的Hadoop committee成员,是真正的标准制定者。2.0就是由它们提出。在Hadoop 1.0之前,0.20,还有一只是0.23进化成现在的2.0。主要区别是 1.0只能支持MapReduce框架,资源和数据处理限制在一起。而2.0首先抽象出Yarn这个资源管理器,然后上层可以支持各种插件机制,便于扩展,Hortonworks还研发了Tez作为加速引擎把一些相关任务合并共享或者并行来优化。
而Hadoop则是大数据真正应用的龙头,首先看Hadoop从哪里开始的,不得不提Google的先进性,在10多年前,Google出了3篇paper论述分布式系统的做法,分别是GFS, MapReduce, BigTable,非常NB的系统,但没人见过,在工业界很多人就想按其思想去仿作,当时Apache Nutch Lucene的作者Doug Cutting也是其中之一,后来他们被Yahoo收购,专门成立Team去投入做,就是Hadoop的开始和大规模发展的地方,之后随着Yahoo的牛人去了Facebook, Google, 也有成立了Cloudera, Hortonworks等大数据公司,把Hadoop的实践带到各个硅谷公司。而Google还没有停止,又出了新的三辆马车,Pregel, Caffeine, Dremel, 后来又有很多步入后尘,开始新一轮开源大战。
大数据相关技术,最紧密的就是云计算,主要是Amazon Web Service和Google Cloud Platform,在国内还有阿里云,金山云,百度云,腾讯云,小米云,360云,七牛。。每个里面都是大量技术文档和标准,从计算到存储,从数据库到消息,从监控到部署管理,从虚拟网络到CDN,把所有的一切用软件重新定义了一遍。
这张是hadoop生态系统的图,大家先了解一下
董老师 下面说说大数据方面知识
简历中另一个十分关键的内容是之前做过的项目描述,包括工作经历,实习经历或者课程项目经历,这些部分的目的在于展示你具有相关经验,具有较强的技术实力,能够加入团队一起完成一个复杂的项目。这里,我们主要介绍如何选择合适的项目,在描述技巧部分,会进一步介绍如何描述使得你的项目更有趣。就项目内容而言,你需要优先选择和职位描述相关的项目,相关性包括:需要相似的知识,需要使用相同的软件或开发环境,需要类似的编程语言或编程模式,需要实现类似的功能等等
MapReduce,首先是个编程范式,它的思想是对批量处理的任务,分成两个阶段,所谓的Map阶段就是把数据生成key, value pair, 再排序,中间有一步叫shuffle,把同样的key运输到同一个reducer上面去,而在reducer上,因为同样key已经确保在同一个上,就直接可以做聚合,算出一些sum, 最后把结果输出到HDFS上。对应开发者来说,你需要做的就是编写Map和reduce函数,像中间的排序和shuffle网络传输,容错处理,框架已经帮你做好了。
HBase:是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化数据集群。像Facebook,都拿它做大型实时应用
上面的hadoop生态系统图没有解释,我还是介绍几个常用的吧
比如你想验证一个算法,你也不知道到底效果如何,但如果能在秒级就给你反馈,你可以立马去调节。其他的如比MapReduce灵活啊,支持迭代的算法,ad-hoc query, 不需要你费很多力气花在软件的搭建上。
为啥用Spark,最直接的就是快啊,你用Hadoop跑大规模数据几个小时跑完,这边才几十秒,这种变化不仅是数量级的,并且是对你的开发方式翻天覆地的变化
Spark简单说就是内存计算(包含迭代式计算,DAG计算,流式计算 )框架,之前MapReduce因效率低下大家经常嘲笑,而Spark的出现让大家很清新。 Spark性能超Hadoop百倍,算法实现仅有其1/10或1/100。在去年的Sort benchmark上,Spark用了23min跑完了100TB的排序,刷新了之前Hadoop保持的世界纪录。
其实Spark出现就是为了解决上面的问题。先说一些Spark的起源。发自 2010年Berkeley AMPLab,发表在hotcloud 是一个从学术界到工业界的成功典范,也吸引了顶级VC:Andreessen Horowitz的 注资. 在2013年,这些大牛(Berkeley系主任,MIT最年轻的助理教授)从Berkeley AMPLab出去成立了Databricks,引无数Hadoop大佬尽折腰
MapReduce模型有什么问题? 第一:需要写很多底层的代码不够高效,第二:所有的事情必须要转化成两个操作Map/Reduce,这本身就很奇怪,也不能解决所有的情况。
数据在前端后端会经过不同的存储或者平台,每个平台都有自己的格式,如果没有一个unified log,会出现灾难型的O(m*n)的数据对接复杂度,如果你设定的格式一旦发生变化,也是要修改所有相关的。所以这里提出的中间桥梁就是Kafka,大家约定用一个格式作为传输标准,然后在接受端可以任意定制你想要的数据源(topics),最后实现的线性的O(m+n)的复杂度。
在Linkedin,有很多数据产品,比如People you may like, job you may be interested, 你的用户访问来源,甚至你的career path都可以挖掘出来。那么在Linkedin也是大量用到开源技术,我这里就说一个最成功的Kafka,它是一个分布式的消息队列,可以用在tracking,机器内部metrics,数据传输。
给大家看一张图,先感受一下
在Linkedin都采用了哪些大数据开源技术
Hive:Facebook领导的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计。像一些data scientist 就可以直接查询,不需要学习其他编程接口。
Pig:Yahoo开发的,并行地执行数据流处理的引擎,它包含了一种脚本语言,称为Pig Latin,用来描述这些数据流。Pig Latin本身提供了许多传统的数据操作,同时允许用户自己开发一些自定义函数用来读取、处理和写数据。在LinkedIn也是大量使用。
董老师 创业当然有很多选择,大数据方向我很期待,但目前对技术门槛要求很高,国内又比较缺乏人才,我个人建议如果不是有资源的积累,还是不要贸然走纯技术,数据产品还是要借鉴一些硅谷的
不是伪命题,现在大家都讲究精益创业,如何从数据中提炼出价值,节约试错的成本,通过数据来找到合适的产品方向和用户喜爱度。比如Linkedin当时做招聘解决方案,他们也不知道一开始能做多大,但数据表示增长很快,后来居然占50%的收入来源。传统企业主要招聘到一些数据分析师,通过定量管理,发现瓶颈和改进
问题:大数据是否是伪命题?企业如何通过大数据盈利?除了marketing端 大数据如何在其他端口起作用?传统企业如何导入和运用大数据?如何利用大数据创业?
临时转行时间短,找一个容易入手的准备,如果你以前做的事情跟数据有关,就申请Data Analyst。本来就会一些基本技术的,可以做前端,JavaScript, HTML, CSS,去真正做一个自己博客。如果对产品感兴趣,就玩Django, ROR这样的网站框架,了解一个网站是怎么搭建起来的。如果对Mobile感兴趣,就用IOS或者Android写2个APP。
我觉得为进入IT行业准备,比较有效的方式是通过在学校上课,一起做project。这种方式确实能带来很多启发。在做项目的过程中,也会激发学习动力。很多时候一个人看书不一定学得进去,而且闭门造车不合时宜。
董老师 首先,在职业发展的选择上,要考虑到市场的需求,不要墨守成规,固守在自己本来的专业。毕业后虽然有很多坑可以跳,但是大的坑(比如IT)还是比小的机会要多,也不容易饱和,值得选择。
问题:本科和研究生都是工程专业,现在研二,现在想转型做IT,董老师有什么建议吗?如何转型?能给出一个明确的转型路径吗?
我基本上就先分享到这,下面回到一些问题
最后还是要多加练习,大数据本身就是靠实践的,你可以先按API写书上的例子,能够先调试成功,在下面就是多积累,当遇到相似的问题能找到对应的经典模式,再进一步就是实际问题
学习Hive,Pig这些基本工具,如果做应用层,主要是把Hadoop的一些工作流要熟悉,包括一些基本调优,如果是想做架构,除了能搭建集群,对各个基础软件服务很了解,还要理解计算机的瓶颈和负载管理,Linux的一些性能工具。
其次是选择目标,如果你像做数据科学家,我可以推荐coursera的data science课程,通俗易懂
如果想从事大数据方面的工作,是否可以推荐一些有效的学习方法?有哪些推荐的书籍? 我建议首先还是打好基础,Hadoop虽然是火热,但它的基础原理都是书本上很多年的积累,像算法导论,Unix设计哲学,数据库原理,Java设计模式,一些重量级的书可以参考。Hadoop 最经典的the definitive guide
如果大家觉得说的太深奥,大家只要理解 从乘法变成加法的过程
挺好前景的,现阶段没有成熟的解决方案,很多时候也不是数据大小问题,而是数据稀疏,模型太overfit,建议一些数据挖掘常用算法熟练使用,对工具也要与时具进,比如ipython,spark
问题:现今对于各种互联网模式的企业,大数据是否可以作为核心技术呢 数据挖掘行业的潜力很巨大,对于从事相关行业的人您对于数据挖掘行业有什么理解呢 谢谢老师
对我的面试感兴趣,可以看我的程序员面试白皮书,知乎专栏:http://zhuanlan.zhihu.com/donglaoshi/19994258
我刚才已经说了一些书籍,如果对hadoop技术感兴趣,参考 http://www.zhihu.com/question/24965053/answer/29612377
问题:对于一个想往大数据方向发展但只有c++基础的童鞋,需要学哪几块内容才能入门,直到最后精通?有没有相关书籍或网络资料推荐
我们组里面还有个人是经济学博士,但她时哈佛毕业的,做一些数据分析工作
问题:计量经济学背景的学生能从事大数据工程师这项工作吗
很多公司都需要啊,并且我个人觉得现在前端,设计需求很大
问题:请问UI,UX,适合在硅谷哪些公司哪些部门工作?
比如tableau, splunk, sumo logic
时间: 2024-10-14 17:00:33